From 042e7df8d470e9d17c40e9ef6fa36d2da2834d05 Mon Sep 17 00:00:00 2001 From: Eva Lott Date: Wed, 26 Oct 2022 13:35:43 +0100 Subject: [PATCH 01/16] set up the devices with PVs #26 Set up the PVs so they are broadcasted from a json. Will need to add setters --- s03_configs/oav.yaml | 33 ++ tickit_devices/oav/__init__.py | 0 tickit_devices/oav/db_files/DCCT.db | 14 + tickit_devices/oav/db_files/FILL.db | 18 + tickit_devices/oav/db_files/MSTAT.db | 51 +++ tickit_devices/oav/oav_edge_detection.py | 457 +++++++++++++++++++++++ 6 files changed, 573 insertions(+) create mode 100644 s03_configs/oav.yaml create mode 100644 tickit_devices/oav/__init__.py create mode 100644 tickit_devices/oav/db_files/DCCT.db create mode 100644 tickit_devices/oav/db_files/FILL.db create mode 100644 tickit_devices/oav/db_files/MSTAT.db create mode 100644 tickit_devices/oav/oav_edge_detection.py diff --git a/s03_configs/oav.yaml b/s03_configs/oav.yaml new file mode 100644 index 00000000..98223cd2 --- /dev/null +++ b/s03_configs/oav.yaml @@ -0,0 +1,33 @@ +- tickit_devices.oav.oav_edge_detection.OAVEdgeDetection: + name: sync_oav + inputs: {} + initial_exposurePV: 1.09 + initial_acqPeriodPV: 0.1 + initial_gainPV: 1. + initial_oavColourMode: 2. + initial_xSizePV: 1024. + initial_ySizePV: 1024. + initial_inputRBPV: 1. + initial_exposureRBPV: 1. + initial_acqPeriodRBPV: 1. + initial_gainRBPV: 1. + initial_inputPV: 1. + initial_enableOverlayPV: 1. + initial_overlayPortPV: 1. + initial_useOverlay1PV: 1. + initial_useOverlay2PV: 1. + initial_overlay2ShapePV: 1. + initial_overlay2RedPV: 1. + initial_overlay2GreenPV: 1. + initial_overlay2BluePV: 1. + initial_overlay2XPosition: 1. + initial_overlay2YPosition: 1. + initial_overlay2XSize: 1. + initial_overlay2YSize: 1. + initial_edgeTop: 1. + initial_edgeBottom: 1. + port: 25565 +- tickit.devices.sink.Sink: + name: oav_sink + inputs: + input: sync_oav:current \ No newline at end of file diff --git a/tickit_devices/oav/__init__.py b/tickit_devices/oav/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tickit_devices/oav/db_files/DCCT.db b/tickit_devices/oav/db_files/DCCT.db new file mode 100644 index 00000000..30995772 --- /dev/null +++ b/tickit_devices/oav/db_files/DCCT.db @@ -0,0 +1,14 @@ +# Copy of the real record +# +#record (ai, "SR-DI-DCCT-01:SIGNAL") +#{ +# field (SCAN, "5 second") +# field (INP, "SR23C-DI-DCCT-01:SIGNAL") +# field (DISS, "3") +#} + +record (ai, "BL03S-SR-DI-DCCT-01:SIGNAL") +{ + field (SCAN, "5 second") + field (DISS, "3") +} \ No newline at end of file diff --git a/tickit_devices/oav/db_files/FILL.db b/tickit_devices/oav/db_files/FILL.db new file mode 100644 index 00000000..6be5efc7 --- /dev/null +++ b/tickit_devices/oav/db_files/FILL.db @@ -0,0 +1,18 @@ +#Real world PV= SR-CS-FILL-01:COUNTDOWN +record (ai, "BL03S-SR-CS-FILL-01:COUNTDOWN") +{ + field (DESC, "seconds until next fill") + field (VAL, "-1.0") + field (EGU, "s") + field (PREC, "4") + field (PINI, "1") +} +#Real world PV= SR-CS-FILL-01:ENDCOUNTDN +record (ai, "BL03S-SR-CS-FILL-01:ENDCOUNTDN") +{ + field (DESC, "secs until end of next fill") + field (VAL, "-1") + field (EGU, "s") + field (PREC, "4") + field (PINI, "1") +} \ No newline at end of file diff --git a/tickit_devices/oav/db_files/MSTAT.db b/tickit_devices/oav/db_files/MSTAT.db new file mode 100644 index 00000000..0a70d7b0 --- /dev/null +++ b/tickit_devices/oav/db_files/MSTAT.db @@ -0,0 +1,51 @@ +#Real world PV= CS-CS-MSTAT-01:MODE +record (mbbi, "BL03S-CS-CS-MSTAT-01:MODE") +{ + field (SCAN, "Passive") + field (DESC, "Mode") + field (ZRST, "Shutdown") + field (ONST, "Injection") + field (TWST, "No Beam") + field (THST, "Mach. Dev.") + field (FRST, "User") + field (FVST, "Special") + field (SXST, "BL Startup") + field (SVST, "Unknown") + field (VAL, "0") + field (PINI, "YES") +} + +# Due to limitations in pythonIOC, these records can not be read in +# via the epics adapter. Stand in aIn records have been made instead +# to just hold the float values as currently the internal logic is +# not needed or can be implemented in the tickit device. + +# This record will count down to zero at the end of the +# current calendar period if the current period is a type +# of user beam time. Otherwise it will have the value -1. +# The value is set from the python process CS-CS-MSTAT-03. + +#Real world PV= CS-CS-MSTAT-01:USERCOUNTDN +#record (calcout, "$(device):USERCOUNTDN") +#{ +# field (DESC, "Countdown to end of user time") +# field (SCAN, "1 second") +# field (VAL, "0") +# field (A, "0") +# field (OOPT, "On Change") +# field (DOPT, "Use OCAL") +# field (CALC, "A > 0 ? A - 1 : A") +# field (OCAL, "A > 1 ? 1 : 0") +# field (INPA, "CS-CS-MSTAT-01:USERCOUNTDN") +#} + +# Calculate beam energy from SR Dipole current +#Real world PV= CS-CS-MSTAT-01:BEAMENERGY +#record (calc, "$(device):BEAMENERGY") +#{ +# field (SCAN, "10 second") +# field (INPA, "SR-PC-DIPOL-01:I") +# field (CALC, "A * 0.0022153") +# field (EGU, "GeV") +# field (PINI, "YES") +#} \ No newline at end of file diff --git a/tickit_devices/oav/oav_edge_detection.py b/tickit_devices/oav/oav_edge_detection.py new file mode 100644 index 00000000..6a48c88e --- /dev/null +++ b/tickit_devices/oav/oav_edge_detection.py @@ -0,0 +1,457 @@ +from dataclasses import dataclass + +from softioc import builder +from tickit.adapters.composed import ComposedAdapter +from tickit.adapters.epicsadapter import EpicsAdapter +from tickit.adapters.interpreters.command import CommandInterpreter, RegexCommand +from tickit.adapters.servers.tcp import TcpServer +from tickit.core.adapter import Server +from tickit.core.components.component import Component, ComponentConfig +from tickit.core.components.device_simulation import DeviceSimulation +from tickit.core.device import Device, DeviceUpdate +from tickit.core.typedefs import SimTime +from tickit.utils.byte_format import ByteFormat +from tickit.utils.compat.typing_compat import TypedDict + + +class OAVEdgeDetectionDevice(Device): + """Class for simulating the PVs in OAV relevant to edge detection. + + We won't try and implement any fancy logic (yet). Just get the PVs hosted. + """ + + #: An empty typed mapping of device inputs + Inputs: TypedDict = TypedDict("Inputs", {}) + #: A typed mapping containing the current output value + Outputs: TypedDict = TypedDict("Outputs", {}) + + def __init__( + self, + initial_exposurePV, + initial_acqPeriodPV, + initial_gainPV, + initial_oavColourMode, + initial_xSizePV, + initial_ySizePV, + initial_inputRBPV, + initial_exposureRBPV, + initial_acqPeriodRBPV, + initial_gainRBPV, + initial_inputPV, + initial_enableOverlayPV, + initial_overlayPortPV, + initial_useOverlay1PV, + initial_useOverlay2PV, + initial_overlay2ShapePV, + initial_overlay2RedPV, + initial_overlay2GreenPV, + initial_overlay2BluePV, + initial_overlay2XPosition, + initial_overlay2YPosition, + initial_overlay2XSize, + initial_overlay2YSize, + initial_edgeTop, + initial_edgeBottom, + ) -> None: + """Initialise the OAVEdgeDetectionDevice device.""" + # Edge detection PVs + self.exposurePV = { + "pv_name": "CAM:AcquireTime", + "getter": self.get_exposurePV_value, + "value": initial_exposurePV, + } + self.acqPeriodPV = { + "pv_name": "CAM:AcquirePeriod", + "getter": self.get_acqPeriodPV_value, + "value": initial_acqPeriodPV, + } + self.gainPV = { + "pv_name": "CAM:Gain", + "getter": self.get_gainPV_value, + "value": initial_gainPV, + } + self.oavColourMode = { + "pv_name": "CAM:ColorMode", + "getter": self.get_oavColourMode_value, + "value": initial_oavColourMode, + } + self.xSizePV = { + "pv_name": "MJPG:ArraySize1_RBV", + "getter": self.get_xSizePV_value, + "value": initial_xSizePV, + } + self.ySizePV = { + "pv_name": "MJPG:ArraySize2_RBV", + "getter": self.get_ySizePV_value, + "value": initial_ySizePV, + } + self.inputRBPV = { + "pv_name": "MJPG:NDArrayPort_RBV", + "getter": self.get_inputRBPV_value, + "value": initial_inputRBPV, + } + self.exposureRBPV = { + "pv_name": "CAM:AcquireTime_RBV", + "getter": self.get_exposureRBPV_value, + "value": initial_exposureRBPV, + } + self.acqPeriodRBPV = { + "pv_name": "CAM:AcquirePeriod_RBV", + "getter": self.get_acqPeriodRBPV_value, + "value": initial_acqPeriodRBPV, + } + self.gainRBPV = { + "pv_name": "CAM:Gain_RBV", + "getter": self.get_gainRBPV_value, + "value": initial_gainRBPV, + } + self.inputPV = { + "pv_name": "MJPG:NDArrayPort", + "getter": self.get_inputPV_value, + "value": initial_inputPV, + } + self.enableOverlayPV = { + "pv_name": "OVER:EnableCallbacks", + "getter": self.get_enableOverlayPV_value, + "value": initial_enableOverlayPV, + } + self.overlayPortPV = { + "pv_name": "OVER:NDArrayPort", + "getter": self.get_overlayPortPV_value, + "value": initial_overlayPortPV, + } + self.useOverlay1PV = { + "pv_name": "OVER:1:Use", + "getter": self.get_useOverlay1PV_value, + "value": initial_useOverlay1PV, + } + self.useOverlay2PV = { + "pv_name": "OVER:2:Use", + "getter": self.get_useOverlay2PV_value, + "value": initial_useOverlay2PV, + } + self.overlay2ShapePV = { + "pv_name": "OVER:2:Shape", + "getter": self.get_overlay2ShapePV_value, + "value": initial_overlay2ShapePV, + } + self.overlay2RedPV = { + "pv_name": "OVER:2:Red", + "getter": self.get_overlay2RedPV_value, + "value": initial_overlay2RedPV, + } + self.overlay2GreenPV = { + "pv_name": "OVER:2:Green", + "getter": self.get_overlay2GreenPV_value, + "value": initial_overlay2GreenPV, + } + self.overlay2BluePV = { + "pv_name": "OVER:2:Blue", + "getter": self.get_overlay2BluePV_value, + "value": initial_overlay2BluePV, + } + self.overlay2XPosition = { + "pv_name": "OVER:2:PositionX", + "getter": self.get_overlay2XPosition_value, + "value": initial_overlay2XPosition, + } + self.overlay2YPosition = { + "pv_name": "OVER:2:PositionY", + "getter": self.get_overlay2YPosition_value, + "value": initial_overlay2YPosition, + } + self.overlay2XSize = { + "pv_name": "OVER:2:SizeX", + "getter": self.get_overlay2XSize_value, + "value": initial_overlay2XSize, + } + self.overlay2YSize = { + "pv_name": "OVER:2:SizeY", + "getter": self.get_overlay2YSize_value, + "value": initial_overlay2YSize, + } + self.edgeTop = { + "pv_name": "MXSC:Top", + "getter": self.get_edgeTop_value, + "value": initial_edgeTop, + } + self.edgeBottom = { + "pv_name": "MXSC:Bottom", + "getter": self.get_edgeBottom_value, + "value": initial_edgeBottom, + } + + # put them in a list so we can iterate through and add the getters to the EPICS + self.EDGE_DETECTION_PVS: list[dict] = [ + self.exposurePV, + self.acqPeriodPV, + self.gainPV, + self.oavColourMode, + self.xSizePV, + self.ySizePV, + self.inputRBPV, + self.exposureRBPV, + self.acqPeriodRBPV, + self.gainRBPV, + self.inputPV, + self.enableOverlayPV, + self.overlayPortPV, + self.useOverlay1PV, + self.useOverlay2PV, + self.overlay2ShapePV, + self.overlay2RedPV, + self.overlay2GreenPV, + self.overlay2BluePV, + self.overlay2XPosition, + self.overlay2YPosition, + self.overlay2XSize, + self.overlay2YSize, + self.edgeTop, + self.edgeBottom, + ] + + def update(self, time: SimTime, inputs: Inputs) -> DeviceUpdate[Outputs]: + """Update method that just outputs beam current. + + The device is only altered by adapters so take no inputs. + + Args: + time (SimTime): The current simulation time (in nanoseconds). + inputs (State): A mapping of inputs to the device and their values. + + Returns: + DeviceUpdate[Outputs]: + The produced update event which contains the value of the beam current. + """ + return DeviceUpdate(OAVEdgeDetectionDevice.Outputs(), None) + + def get_exposurePV_value(self): + """For use by EPICs adapter.""" + return self.exposurePV["value"] + + def get_acqPeriodPV_value(self): + """For use by EPICs adapter.""" + return self.acqPeriodPV["value"] + + def get_gainPV_value(self): + """For use by EPICs adapter.""" + return self.gainPV["value"] + + def get_oavColourMode_value(self): + """For use by EPICs adapter.""" + return self.oavColourMode["value"] + + def get_xSizePV_value(self): + """For use by EPICs adapter.""" + return self.xSizePV["value"] + + def get_ySizePV_value(self): + """For use by EPICs adapter.""" + return self.ySizePV["value"] + + def get_inputRBPV_value(self): + """For use by EPICs adapter.""" + return self.inputRBPV["value"] + + def get_exposureRBPV_value(self): + """For use by EPICs adapter.""" + return self.exposureRBPV["value"] + + def get_acqPeriodRBPV_value(self): + """For use by EPICs adapter.""" + return self.acqPeriodRBPV["value"] + + def get_gainRBPV_value(self): + """For use by EPICs adapter.""" + return self.gainRBPV["value"] + + def get_inputPV_value(self): + """For use by EPICs adapter.""" + return self.inputPV["value"] + + def get_enableOverlayPV_value(self): + """For use by EPICs adapter.""" + return self.enableOverlayPV["value"] + + def get_overlayPortPV_value(self): + """For use by EPICs adapter.""" + return self.overlayPortPV["value"] + + def get_useOverlay1PV_value(self): + """For use by EPICs adapter.""" + return self.useOverlay1PV["value"] + + def get_useOverlay2PV_value(self): + """For use by EPICs adapter.""" + return self.useOverlay2PV["value"] + + def get_overlay2ShapePV_value(self): + """For use by EPICs adapter.""" + return self.overlay2ShapePV["value"] + + def get_overlay2RedPV_value(self): + """For use by EPICs adapter.""" + return self.overlay2RedPV["value"] + + def get_overlay2GreenPV_value(self): + """For use by EPICs adapter.""" + return self.overlay2GreenPV["value"] + + def get_overlay2BluePV_value(self): + """For use by EPICs adapter.""" + return self.overlay2BluePV["value"] + + def get_overlay2XPosition_value(self): + """For use by EPICs adapter.""" + return self.overlay2XPosition["value"] + + def get_overlay2YPosition_value(self): + """For use by EPICs adapter.""" + return self.overlay2YPosition["value"] + + def get_overlay2XSize_value(self): + """For use by EPICs adapter.""" + return self.overlay2XSize["value"] + + def get_overlay2YSize_value(self): + """For use by EPICs adapter.""" + return self.overlay2YSize["value"] + + def get_edgeTop_value(self): + """For use by EPICs adapter.""" + return self.edgeTop["value"] + + def get_edgeBottom_value(self): + """For use by EPICs adapter.""" + return self.edgeBottom["value"] + + +class OAVEdgeDetectionTCPAdapter(ComposedAdapter): + """A TCP adapter to set a OAVEdgeDetectionDevice PV values.""" + + device: OAVEdgeDetectionDevice + + def __init__( + self, + server: Server, + ) -> None: + """OAV current adapter, instantiates TcpServer with configured host and port. + + Args: + server (Server): The immutable data container used to configure a + server. + """ + super().__init__( + server, + CommandInterpreter(), + ) + + @RegexCommand(r"C=(\d+\.?\d*)", interrupt=True, format="utf-8") + async def set_beam_current(self, value: float) -> None: + """Regex string command that sets the value of beam_current. + + Args: + value (int): The new value of beam_current. + """ + self.device.beam_current = value + + @RegexCommand(r"C\?", format="utf-8") + async def get_beam_current(self) -> bytes: + """Regex string command that returns the utf-8 encoded value of beam_current. + + Returns: + bytes: The utf-8 encoded value of beam_current. + """ + return str(self.device.beam_current).encode("utf-8") + + +class OAVEdgeDetectionEpicsAdapter(EpicsAdapter): + """Epics Adapter. + + Epics adapter for reading all EdgeDetectionAttributes as a PV + through channel access. + """ + + device: OAVEdgeDetectionDevice + + def on_db_load(self) -> None: + """Link loaded in record with getter for device.""" + for pv in self.device.EDGE_DETECTION_PVS: + self.link_input_on_interrupt( + builder.aIn(pv["pv_name"]), + pv["getter"], + ) + + +@dataclass +class OAVEdgeDetection(ComponentConfig): + """Synchrotron current component.""" + + initial_exposurePV: float + initial_acqPeriodPV: float + initial_gainPV: float + initial_oavColourMode: float + initial_xSizePV: float + initial_ySizePV: float + initial_inputRBPV: float + initial_exposureRBPV: float + initial_acqPeriodRBPV: float + initial_gainRBPV: float + initial_inputPV: float + initial_enableOverlayPV: float + initial_overlayPortPV: float + initial_useOverlay1PV: float + initial_useOverlay2PV: float + initial_overlay2ShapePV: float + initial_overlay2RedPV: float + initial_overlay2GreenPV: float + initial_overlay2BluePV: float + initial_overlay2XPosition: float + initial_overlay2YPosition: float + initial_overlay2XSize: float + initial_overlay2YSize: float + initial_edgeTop: float + initial_edgeBottom: float + host: str = "localhost" + port: int = 25565 + format: ByteFormat = ByteFormat(b"%b\r\n") + db_file: str = "tickit_devices/oav/db_files/DCCT.db" + ioc_name: str = "S03-SIM-DI-OAV-01" + + def __call__(self) -> Component: # noqa: D102 + return DeviceSimulation( + name=self.name, + device=OAVEdgeDetectionDevice( + self.initial_exposurePV, + self.initial_acqPeriodPV, + self.initial_gainPV, + self.initial_oavColourMode, + self.initial_xSizePV, + self.initial_ySizePV, + self.initial_inputRBPV, + self.initial_exposureRBPV, + self.initial_acqPeriodRBPV, + self.initial_gainRBPV, + self.initial_inputPV, + self.initial_enableOverlayPV, + self.initial_overlayPortPV, + self.initial_useOverlay1PV, + self.initial_useOverlay2PV, + self.initial_overlay2ShapePV, + self.initial_overlay2RedPV, + self.initial_overlay2GreenPV, + self.initial_overlay2BluePV, + self.initial_overlay2XPosition, + self.initial_overlay2YPosition, + self.initial_overlay2XSize, + self.initial_overlay2YSize, + self.initial_edgeTop, + self.initial_edgeBottom, + ), + adapters=[ + OAVEdgeDetectionTCPAdapter( + TcpServer(self.host, self.port, self.format) + ), + OAVEdgeDetectionEpicsAdapter(self.db_file, self.ioc_name), + ], + ) From 0b76b1a5d8997e7f8a3eade67e123908df1c8d0f Mon Sep 17 00:00:00 2001 From: Eva Lott Date: Wed, 26 Oct 2022 16:18:44 +0100 Subject: [PATCH 02/16] Structured PVs into a dictionary with options for if they're writable or not #26 --- s03_configs/oav.yaml | 31 ++++++++++++-- tickit_devices/oav/oav_edge_detection.py | 51 ++++++++++++++++++++---- 2 files changed, 71 insertions(+), 11 deletions(-) diff --git a/s03_configs/oav.yaml b/s03_configs/oav.yaml index 98223cd2..5eb90d3b 100644 --- a/s03_configs/oav.yaml +++ b/s03_configs/oav.yaml @@ -1,10 +1,10 @@ - tickit_devices.oav.oav_edge_detection.OAVEdgeDetection: - name: sync_oav + name: oav_edge_detection inputs: {} initial_exposurePV: 1.09 initial_acqPeriodPV: 0.1 initial_gainPV: 1. - initial_oavColourMode: 2. + initial_oavColourMode: 2.55555 initial_xSizePV: 1024. initial_ySizePV: 1024. initial_inputRBPV: 1. @@ -30,4 +30,29 @@ - tickit.devices.sink.Sink: name: oav_sink inputs: - input: sync_oav:current \ No newline at end of file + input: oav_edge_detection:exposurePV + input: oav_edge_detection:acqPeriodPV + input: oav_edge_detection:gainPV + input: oav_edge_detection:oavColourMode + input: oav_edge_detection:xSizePV + input: oav_edge_detection:ySizePV + input: oav_edge_detection:inputRBPV + input: oav_edge_detection:exposureRBPV + input: oav_edge_detection:acqPeriodRBPV + input: oav_edge_detection:gainRBPV + input: oav_edge_detection:inputPV + input: oav_edge_detection:enableOverlayPV + input: oav_edge_detection:overlayPortPV + input: oav_edge_detection:useOverlay1PV + input: oav_edge_detection:useOverlay2PV + input: oav_edge_detection:overlay2ShapePV + input: oav_edge_detection:overlay2RedPV + input: oav_edge_detection:overlay2GreenPV + input: oav_edge_detection:overlay2BluePV + input: oav_edge_detection:overlay2XPosition + input: oav_edge_detection:overlay2YPosition + input: oav_edge_detection:overlay2XSize + input: oav_edge_detection:overlay2YSize + input: oav_edge_detection:edgeTop + input: oav_edge_detection:edgeBottom + \ No newline at end of file diff --git a/tickit_devices/oav/oav_edge_detection.py b/tickit_devices/oav/oav_edge_detection.py index 6a48c88e..83efd5cf 100644 --- a/tickit_devices/oav/oav_edge_detection.py +++ b/tickit_devices/oav/oav_edge_detection.py @@ -59,129 +59,155 @@ def __init__( "pv_name": "CAM:AcquireTime", "getter": self.get_exposurePV_value, "value": initial_exposurePV, + "is_writable": False, } self.acqPeriodPV = { "pv_name": "CAM:AcquirePeriod", "getter": self.get_acqPeriodPV_value, "value": initial_acqPeriodPV, + "is_writable": False, } self.gainPV = { "pv_name": "CAM:Gain", "getter": self.get_gainPV_value, "value": initial_gainPV, + "is_writable": False, } self.oavColourMode = { "pv_name": "CAM:ColorMode", "getter": self.get_oavColourMode_value, "value": initial_oavColourMode, + "setter": self.set_oavColorMode_value, + "is_writable": True, } self.xSizePV = { "pv_name": "MJPG:ArraySize1_RBV", "getter": self.get_xSizePV_value, "value": initial_xSizePV, + "is_writable": False, } self.ySizePV = { "pv_name": "MJPG:ArraySize2_RBV", "getter": self.get_ySizePV_value, "value": initial_ySizePV, + "is_writable": False, } self.inputRBPV = { "pv_name": "MJPG:NDArrayPort_RBV", "getter": self.get_inputRBPV_value, "value": initial_inputRBPV, + "is_writable": False, } self.exposureRBPV = { "pv_name": "CAM:AcquireTime_RBV", "getter": self.get_exposureRBPV_value, "value": initial_exposureRBPV, + "is_writable": False, } self.acqPeriodRBPV = { "pv_name": "CAM:AcquirePeriod_RBV", "getter": self.get_acqPeriodRBPV_value, "value": initial_acqPeriodRBPV, + "is_writable": False, } self.gainRBPV = { "pv_name": "CAM:Gain_RBV", "getter": self.get_gainRBPV_value, "value": initial_gainRBPV, + "is_writable": False, } self.inputPV = { "pv_name": "MJPG:NDArrayPort", "getter": self.get_inputPV_value, "value": initial_inputPV, + "is_writable": False, } self.enableOverlayPV = { "pv_name": "OVER:EnableCallbacks", "getter": self.get_enableOverlayPV_value, "value": initial_enableOverlayPV, + "is_writable": False, } self.overlayPortPV = { "pv_name": "OVER:NDArrayPort", "getter": self.get_overlayPortPV_value, "value": initial_overlayPortPV, + "is_writable": False, } self.useOverlay1PV = { "pv_name": "OVER:1:Use", "getter": self.get_useOverlay1PV_value, "value": initial_useOverlay1PV, + "is_writable": False, } self.useOverlay2PV = { "pv_name": "OVER:2:Use", "getter": self.get_useOverlay2PV_value, "value": initial_useOverlay2PV, + "is_writable": False, } self.overlay2ShapePV = { "pv_name": "OVER:2:Shape", "getter": self.get_overlay2ShapePV_value, "value": initial_overlay2ShapePV, + "is_writable": False, } self.overlay2RedPV = { "pv_name": "OVER:2:Red", "getter": self.get_overlay2RedPV_value, "value": initial_overlay2RedPV, + "is_writable": False, } self.overlay2GreenPV = { "pv_name": "OVER:2:Green", "getter": self.get_overlay2GreenPV_value, "value": initial_overlay2GreenPV, + "is_writable": False, } self.overlay2BluePV = { "pv_name": "OVER:2:Blue", "getter": self.get_overlay2BluePV_value, "value": initial_overlay2BluePV, + "is_writable": False, } self.overlay2XPosition = { "pv_name": "OVER:2:PositionX", "getter": self.get_overlay2XPosition_value, "value": initial_overlay2XPosition, + "is_writable": False, } self.overlay2YPosition = { "pv_name": "OVER:2:PositionY", "getter": self.get_overlay2YPosition_value, "value": initial_overlay2YPosition, + "is_writable": False, } self.overlay2XSize = { "pv_name": "OVER:2:SizeX", "getter": self.get_overlay2XSize_value, "value": initial_overlay2XSize, + "is_writable": False, } self.overlay2YSize = { "pv_name": "OVER:2:SizeY", "getter": self.get_overlay2YSize_value, "value": initial_overlay2YSize, + "is_writable": False, } self.edgeTop = { "pv_name": "MXSC:Top", "getter": self.get_edgeTop_value, "value": initial_edgeTop, + "is_writable": False, } self.edgeBottom = { "pv_name": "MXSC:Bottom", "getter": self.get_edgeBottom_value, "value": initial_edgeBottom, + "is_writable": False, } - # put them in a list so we can iterate through and add the getters to the EPICS + # put them in a list so we can iterate through and provide the getters for EPICS self.EDGE_DETECTION_PVS: list[dict] = [ self.exposurePV, self.acqPeriodPV, @@ -211,7 +237,8 @@ def __init__( ] def update(self, time: SimTime, inputs: Inputs) -> DeviceUpdate[Outputs]: - """Update method that just outputs beam current. + """Update method, will be unused since camera PVs won't change value without \ + directly setting them. The device is only altered by adapters so take no inputs. @@ -221,10 +248,13 @@ def update(self, time: SimTime, inputs: Inputs) -> DeviceUpdate[Outputs]: Returns: DeviceUpdate[Outputs]: - The produced update event which contains the value of the beam current. + The produced update event. """ return DeviceUpdate(OAVEdgeDetectionDevice.Outputs(), None) + def set_oavColorMode_value(self, value): + self.oavColourMode["value"] = value + def get_exposurePV_value(self): """For use by EPICs adapter.""" return self.exposurePV["value"] @@ -335,7 +365,7 @@ def __init__( self, server: Server, ) -> None: - """OAV current adapter, instantiates TcpServer with configured host and port. + """OAV adapter, instantiates TcpServer with configured host and port. Args: server (Server): The immutable data container used to configure a @@ -377,10 +407,15 @@ class OAVEdgeDetectionEpicsAdapter(EpicsAdapter): def on_db_load(self) -> None: """Link loaded in record with getter for device.""" for pv in self.device.EDGE_DETECTION_PVS: - self.link_input_on_interrupt( - builder.aIn(pv["pv_name"]), - pv["getter"], - ) + if pv["is_writable"]: + builder.aOut( + pv["pv_name"], initial_value=pv["value"], on_update=pv["setter"] + ) + else: + self.link_input_on_interrupt( + builder.aIn(pv["pv_name"]), + pv["getter"], + ) @dataclass From fd97bae9b2836621f3489de6cfdef295b0ef9e41 Mon Sep 17 00:00:00 2001 From: Eva Lott Date: Thu, 27 Oct 2022 09:39:54 +0100 Subject: [PATCH 03/16] #26 Refined the PVs into a dictionary --- tickit_devices/oav/oav_edge_detection.py | 332 ++++++++++------------- 1 file changed, 144 insertions(+), 188 deletions(-) diff --git a/tickit_devices/oav/oav_edge_detection.py b/tickit_devices/oav/oav_edge_detection.py index 83efd5cf..c7bfff05 100644 --- a/tickit_devices/oav/oav_edge_detection.py +++ b/tickit_devices/oav/oav_edge_detection.py @@ -55,186 +55,134 @@ def __init__( ) -> None: """Initialise the OAVEdgeDetectionDevice device.""" # Edge detection PVs - self.exposurePV = { - "pv_name": "CAM:AcquireTime", - "getter": self.get_exposurePV_value, - "value": initial_exposurePV, - "is_writable": False, + self.EDGE_DETECTION_PVS: dict = { + "exposurePV": { + "pv_name": "CAM:AcquireTime", + "getter": self.get_exposurePV_value, + "value": initial_exposurePV, + }, + "acqPeriodPV": { + "pv_name": "CAM:AcquirePeriod", + "getter": self.get_acqPeriodPV_value, + "value": initial_acqPeriodPV, + }, + "gainPV": { + "pv_name": "CAM:Gain", + "getter": self.get_gainPV_value, + "value": initial_gainPV, + }, + "oavColourMode": { + "pv_name": "CAM:ColorMode", + "getter": self.get_oavColourMode_value, + "value": initial_oavColourMode, + "is_writable": True, + }, + "xSizePV": { + "pv_name": "MJPG:ArraySize1_RBV", + "getter": self.get_xSizePV_value, + "value": initial_xSizePV, + }, + "ySizePV": { + "pv_name": "MJPG:ArraySize2_RBV", + "getter": self.get_ySizePV_value, + "value": initial_ySizePV, + }, + "inputRBPV": { + "pv_name": "MJPG:NDArrayPort_RBV", + "getter": self.get_inputRBPV_value, + "value": initial_inputRBPV, + }, + "exposureRBPV": { + "pv_name": "CAM:AcquireTime_RBV", + "getter": self.get_exposureRBPV_value, + "value": initial_exposureRBPV, + }, + "acqPeriodRBPV": { + "pv_name": "CAM:AcquirePeriod_RBV", + "getter": self.get_acqPeriodRBPV_value, + "value": initial_acqPeriodRBPV, + }, + "gainRBPV": { + "pv_name": "CAM:Gain_RBV", + "getter": self.get_gainRBPV_value, + "value": initial_gainRBPV, + }, + "inputPV": { + "pv_name": "MJPG:NDArrayPort", + "getter": self.get_inputPV_value, + "value": initial_inputPV, + }, + "enableOverlayPV": { + "pv_name": "OVER:EnableCallbacks", + "getter": self.get_enableOverlayPV_value, + "value": initial_enableOverlayPV, + }, + "overlayPortPV": { + "pv_name": "OVER:NDArrayPort", + "getter": self.get_overlayPortPV_value, + "value": initial_overlayPortPV, + }, + "useOverlay1PV": { + "pv_name": "OVER:1:Use", + "getter": self.get_useOverlay1PV_value, + "value": initial_useOverlay1PV, + }, + "useOverlay2PV": { + "pv_name": "OVER:2:Use", + "getter": self.get_useOverlay2PV_value, + "value": initial_useOverlay2PV, + }, + "overlay2ShapePV": { + "pv_name": "OVER:2:Shape", + "getter": self.get_overlay2ShapePV_value, + "value": initial_overlay2ShapePV, + }, + "overlay2RedPV": { + "pv_name": "OVER:2:Red", + "getter": self.get_overlay2RedPV_value, + "value": initial_overlay2RedPV, + }, + "overlay2GreenPV": { + "pv_name": "OVER:2:Green", + "getter": self.get_overlay2GreenPV_value, + "value": initial_overlay2GreenPV, + }, + "overlay2BluePV": { + "pv_name": "OVER:2:Blue", + "getter": self.get_overlay2BluePV_value, + "value": initial_overlay2BluePV, + }, + "overlay2XPosition": { + "pv_name": "OVER:2:PositionX", + "getter": self.get_overlay2XPosition_value, + "value": initial_overlay2XPosition, + }, + "overlay2YPosition": { + "pv_name": "OVER:2:PositionY", + "getter": self.get_overlay2YPosition_value, + "value": initial_overlay2YPosition, + }, + "overlay2XSize": { + "pv_name": "OVER:2:SizeX", + "getter": self.get_overlay2XSize_value, + "value": initial_overlay2XSize, + }, + "overlay2YSize": { + "pv_name": "OVER:2:SizeY", + "getter": self.get_overlay2YSize_value, + "value": initial_overlay2YSize, + }, + "edgeTop": { + "pv_name": "MXSC:Top", + "getter": self.get_edgeTop_value, + "value": initial_edgeTop, + }, + "edgeBottom": { + "pv_name": "MXSC:Bottom", + "getter": self.get_edgeBottom_value, + "value": initial_edgeBottom, + }, } - self.acqPeriodPV = { - "pv_name": "CAM:AcquirePeriod", - "getter": self.get_acqPeriodPV_value, - "value": initial_acqPeriodPV, - "is_writable": False, - } - self.gainPV = { - "pv_name": "CAM:Gain", - "getter": self.get_gainPV_value, - "value": initial_gainPV, - "is_writable": False, - } - self.oavColourMode = { - "pv_name": "CAM:ColorMode", - "getter": self.get_oavColourMode_value, - "value": initial_oavColourMode, - "setter": self.set_oavColorMode_value, - "is_writable": True, - } - self.xSizePV = { - "pv_name": "MJPG:ArraySize1_RBV", - "getter": self.get_xSizePV_value, - "value": initial_xSizePV, - "is_writable": False, - } - self.ySizePV = { - "pv_name": "MJPG:ArraySize2_RBV", - "getter": self.get_ySizePV_value, - "value": initial_ySizePV, - "is_writable": False, - } - self.inputRBPV = { - "pv_name": "MJPG:NDArrayPort_RBV", - "getter": self.get_inputRBPV_value, - "value": initial_inputRBPV, - "is_writable": False, - } - self.exposureRBPV = { - "pv_name": "CAM:AcquireTime_RBV", - "getter": self.get_exposureRBPV_value, - "value": initial_exposureRBPV, - "is_writable": False, - } - self.acqPeriodRBPV = { - "pv_name": "CAM:AcquirePeriod_RBV", - "getter": self.get_acqPeriodRBPV_value, - "value": initial_acqPeriodRBPV, - "is_writable": False, - } - self.gainRBPV = { - "pv_name": "CAM:Gain_RBV", - "getter": self.get_gainRBPV_value, - "value": initial_gainRBPV, - "is_writable": False, - } - self.inputPV = { - "pv_name": "MJPG:NDArrayPort", - "getter": self.get_inputPV_value, - "value": initial_inputPV, - "is_writable": False, - } - self.enableOverlayPV = { - "pv_name": "OVER:EnableCallbacks", - "getter": self.get_enableOverlayPV_value, - "value": initial_enableOverlayPV, - "is_writable": False, - } - self.overlayPortPV = { - "pv_name": "OVER:NDArrayPort", - "getter": self.get_overlayPortPV_value, - "value": initial_overlayPortPV, - "is_writable": False, - } - self.useOverlay1PV = { - "pv_name": "OVER:1:Use", - "getter": self.get_useOverlay1PV_value, - "value": initial_useOverlay1PV, - "is_writable": False, - } - self.useOverlay2PV = { - "pv_name": "OVER:2:Use", - "getter": self.get_useOverlay2PV_value, - "value": initial_useOverlay2PV, - "is_writable": False, - } - self.overlay2ShapePV = { - "pv_name": "OVER:2:Shape", - "getter": self.get_overlay2ShapePV_value, - "value": initial_overlay2ShapePV, - "is_writable": False, - } - self.overlay2RedPV = { - "pv_name": "OVER:2:Red", - "getter": self.get_overlay2RedPV_value, - "value": initial_overlay2RedPV, - "is_writable": False, - } - self.overlay2GreenPV = { - "pv_name": "OVER:2:Green", - "getter": self.get_overlay2GreenPV_value, - "value": initial_overlay2GreenPV, - "is_writable": False, - } - self.overlay2BluePV = { - "pv_name": "OVER:2:Blue", - "getter": self.get_overlay2BluePV_value, - "value": initial_overlay2BluePV, - "is_writable": False, - } - self.overlay2XPosition = { - "pv_name": "OVER:2:PositionX", - "getter": self.get_overlay2XPosition_value, - "value": initial_overlay2XPosition, - "is_writable": False, - } - self.overlay2YPosition = { - "pv_name": "OVER:2:PositionY", - "getter": self.get_overlay2YPosition_value, - "value": initial_overlay2YPosition, - "is_writable": False, - } - self.overlay2XSize = { - "pv_name": "OVER:2:SizeX", - "getter": self.get_overlay2XSize_value, - "value": initial_overlay2XSize, - "is_writable": False, - } - self.overlay2YSize = { - "pv_name": "OVER:2:SizeY", - "getter": self.get_overlay2YSize_value, - "value": initial_overlay2YSize, - "is_writable": False, - } - self.edgeTop = { - "pv_name": "MXSC:Top", - "getter": self.get_edgeTop_value, - "value": initial_edgeTop, - "is_writable": False, - } - self.edgeBottom = { - "pv_name": "MXSC:Bottom", - "getter": self.get_edgeBottom_value, - "value": initial_edgeBottom, - "is_writable": False, - } - - # put them in a list so we can iterate through and provide the getters for EPICS - self.EDGE_DETECTION_PVS: list[dict] = [ - self.exposurePV, - self.acqPeriodPV, - self.gainPV, - self.oavColourMode, - self.xSizePV, - self.ySizePV, - self.inputRBPV, - self.exposureRBPV, - self.acqPeriodRBPV, - self.gainRBPV, - self.inputPV, - self.enableOverlayPV, - self.overlayPortPV, - self.useOverlay1PV, - self.useOverlay2PV, - self.overlay2ShapePV, - self.overlay2RedPV, - self.overlay2GreenPV, - self.overlay2BluePV, - self.overlay2XPosition, - self.overlay2YPosition, - self.overlay2XSize, - self.overlay2YSize, - self.edgeTop, - self.edgeBottom, - ] def update(self, time: SimTime, inputs: Inputs) -> DeviceUpdate[Outputs]: """Update method, will be unused since camera PVs won't change value without \ @@ -253,6 +201,7 @@ def update(self, time: SimTime, inputs: Inputs) -> DeviceUpdate[Outputs]: return DeviceUpdate(OAVEdgeDetectionDevice.Outputs(), None) def set_oavColorMode_value(self, value): + """For use by EPICs adapter.""" self.oavColourMode["value"] = value def get_exposurePV_value(self): @@ -404,18 +353,25 @@ class OAVEdgeDetectionEpicsAdapter(EpicsAdapter): device: OAVEdgeDetectionDevice + # Put all the PVs on EPICS def on_db_load(self) -> None: """Link loaded in record with getter for device.""" for pv in self.device.EDGE_DETECTION_PVS: - if pv["is_writable"]: - builder.aOut( - pv["pv_name"], initial_value=pv["value"], on_update=pv["setter"] - ) - else: - self.link_input_on_interrupt( - builder.aIn(pv["pv_name"]), - pv["getter"], - ) + pv_dict = self.device.EDGE_DETECTION_PVS[pv] + if "is_writable" in pv_dict: + if pv_dict["is_writable"]: + builder.aOut( + pv_dict["pv_name"], + initial_value=pv_dict["value"], + on_update=pv_dict["value"].__setattr__, + ) + continue + + # if the PV is missing the is_writable, or if not is_writable + self.link_input_on_interrupt( + builder.aIn(pv_dict["pv_name"]), + pv_dict["getter"], + ) @dataclass From 86dcb72a84da785330dbf1177aae0f3a09b20cb9 Mon Sep 17 00:00:00 2001 From: Eva Lott Date: Fri, 28 Oct 2022 09:58:06 +0100 Subject: [PATCH 04/16] Continued adding PVs, pushing to see if git problem is solved #26 --- s03_configs/oav.yaml | 10 +- tickit_devices/oav/edge_waveforms.npy | Bin 0 -> 8448 bytes tickit_devices/oav/oav_edge_detection.py | 111 ++++++++++++----------- 3 files changed, 64 insertions(+), 57 deletions(-) create mode 100644 tickit_devices/oav/edge_waveforms.npy diff --git a/s03_configs/oav.yaml b/s03_configs/oav.yaml index 5eb90d3b..b686870e 100644 --- a/s03_configs/oav.yaml +++ b/s03_configs/oav.yaml @@ -4,7 +4,9 @@ initial_exposurePV: 1.09 initial_acqPeriodPV: 0.1 initial_gainPV: 1. - initial_oavColourMode: 2.55555 + initial_oavColourMode: 2 + initial_cannyEdgeUpperThreshholdPV: 30 + initial_cannyEdgeLowerThreshholdPV: 5 initial_xSizePV: 1024. initial_ySizePV: 1024. initial_inputRBPV: 1. @@ -24,8 +26,6 @@ initial_overlay2YPosition: 1. initial_overlay2XSize: 1. initial_overlay2YSize: 1. - initial_edgeTop: 1. - initial_edgeBottom: 1. port: 25565 - tickit.devices.sink.Sink: name: oav_sink @@ -34,6 +34,8 @@ input: oav_edge_detection:acqPeriodPV input: oav_edge_detection:gainPV input: oav_edge_detection:oavColourMode + input: oav_edge_detection:cannyEdgeUpperThreshholdPV + input: oav_edge_detection:cannyEdgeLowerThreshholdPV input: oav_edge_detection:xSizePV input: oav_edge_detection:ySizePV input: oav_edge_detection:inputRBPV @@ -53,6 +55,4 @@ input: oav_edge_detection:overlay2YPosition input: oav_edge_detection:overlay2XSize input: oav_edge_detection:overlay2YSize - input: oav_edge_detection:edgeTop - input: oav_edge_detection:edgeBottom \ No newline at end of file diff --git a/tickit_devices/oav/edge_waveforms.npy b/tickit_devices/oav/edge_waveforms.npy new file mode 100644 index 0000000000000000000000000000000000000000..224ecaea7931bdcdc627e45ef66272bd00e3e2b0 GIT binary patch literal 8448 zcmeI$$8Qr+5WwLzozTUFqYp?1$p=6_A62G_j|Y`RuV4unudc)?0E` z_}+!o!dj?_TsK;&N41E()sp9IRUlVw{3^Ca53=K9>F{9G*~ zUv6}eixnZAtgV%-%dv|4|AstEo-f~T3ga;jV=)G!F$yD{5yaunFrrn*S`2lD5Y=Gv zLB>Gx0Y-mv(a(sH2hMNOU(QdW_~Cpfif{Ppd?9|uCw#;QyvIAd#T&e?B00aB^_4FF{|CD7FW&**0p9`N0p9`N0pEe>9nkq)XK6b->)fod zyZKq_#pdUp=4737D;0HCmS|^JJHOgl*XDM9)>+m@nQN7uZzb0mw=bg3)iTSbB+^F;3Q7rG|o6@iRW-07jO}ma2Z!{)wxEz?%W`X zo5n42aT|A>yTp6Aj|X^&N5*4v@uY~S)WV)oiz0kqE!I)qs}_5n)1zv6!P) literal 0 HcmV?d00001 diff --git a/tickit_devices/oav/oav_edge_detection.py b/tickit_devices/oav/oav_edge_detection.py index c7bfff05..1500c9db 100644 --- a/tickit_devices/oav/oav_edge_detection.py +++ b/tickit_devices/oav/oav_edge_detection.py @@ -1,9 +1,10 @@ from dataclasses import dataclass +import numpy as np from softioc import builder from tickit.adapters.composed import ComposedAdapter from tickit.adapters.epicsadapter import EpicsAdapter -from tickit.adapters.interpreters.command import CommandInterpreter, RegexCommand +from tickit.adapters.interpreters.command import CommandInterpreter from tickit.adapters.servers.tcp import TcpServer from tickit.core.adapter import Server from tickit.core.components.component import Component, ComponentConfig @@ -31,6 +32,8 @@ def __init__( initial_acqPeriodPV, initial_gainPV, initial_oavColourMode, + initial_cannyEdgeUpperThreshholdPV, + initial_cannyEdgeLowerThreshholdPV, initial_xSizePV, initial_ySizePV, initial_inputRBPV, @@ -77,6 +80,18 @@ def __init__( "value": initial_oavColourMode, "is_writable": True, }, + "cannyEdgeUpperThreshholdPV": { + "pv_name": "MXSC:CannyUpper", + "getter": self.get_cannyEdgeUpperThreshholdPV_value, + "value": initial_cannyEdgeUpperThreshholdPV, + "is_writable": True, + }, + "cannyEdgeLowerThreshholdPV": { + "pv_name": "MXSC:CannyLower", + "getter": self.get_cannyEdgeLowerThreshholdPV_value, + "value": initial_cannyEdgeLowerThreshholdPV, + "is_writable": True, + }, "xSizePV": { "pv_name": "MJPG:ArraySize1_RBV", "getter": self.get_xSizePV_value, @@ -200,109 +215,113 @@ def update(self, time: SimTime, inputs: Inputs) -> DeviceUpdate[Outputs]: """ return DeviceUpdate(OAVEdgeDetectionDevice.Outputs(), None) - def set_oavColorMode_value(self, value): + def get_cannyEdgeLowerThreshholdPV_value(self): """For use by EPICs adapter.""" - self.oavColourMode["value"] = value + return self.EDGE_DETECTION_PVS["cannyEdgeLowerThresholdPV"]["value"] + + def get_cannyEdgeUpperThreshholdPV_value(self): + """For use by EPICs adapter.""" + return self.EDGE_DETECTION_PVS["cannyEdgeUpperThresholdPV"]["value"] def get_exposurePV_value(self): """For use by EPICs adapter.""" - return self.exposurePV["value"] + return self.EDGE_DETECTION_PVS["exposurePV"]["value"] def get_acqPeriodPV_value(self): """For use by EPICs adapter.""" - return self.acqPeriodPV["value"] + return self.EDGE_DETECTION_PVS["acqPeriodPV"]["value"] def get_gainPV_value(self): """For use by EPICs adapter.""" - return self.gainPV["value"] + return self.EDGE_DETECTION_PVS["gainPV"]["value"] def get_oavColourMode_value(self): """For use by EPICs adapter.""" - return self.oavColourMode["value"] + return self.EDGE_DETECTION_PVS["oavColourMode"]["value"] def get_xSizePV_value(self): """For use by EPICs adapter.""" - return self.xSizePV["value"] + return self.EDGE_DETECTION_PVS["xSizePV"]["value"] def get_ySizePV_value(self): """For use by EPICs adapter.""" - return self.ySizePV["value"] + return self.EDGE_DETECTION_PVS["ySizePV"]["value"] def get_inputRBPV_value(self): """For use by EPICs adapter.""" - return self.inputRBPV["value"] + return self.EDGE_DETECTION_PVS["inputRBPV"]["value"] def get_exposureRBPV_value(self): """For use by EPICs adapter.""" - return self.exposureRBPV["value"] + return self.EDGE_DETECTION_PVS["exposureRBPV"]["value"] def get_acqPeriodRBPV_value(self): """For use by EPICs adapter.""" - return self.acqPeriodRBPV["value"] + return self.EDGE_DETECTION_PVS["acqPeriodRBPV"]["value"] def get_gainRBPV_value(self): """For use by EPICs adapter.""" - return self.gainRBPV["value"] + return self.EDGE_DETECTION_PVS["gainRBPV"]["value"] def get_inputPV_value(self): """For use by EPICs adapter.""" - return self.inputPV["value"] + return self.EDGE_DETECTION_PVS["inputPV"]["value"] def get_enableOverlayPV_value(self): """For use by EPICs adapter.""" - return self.enableOverlayPV["value"] + return self.EDGE_DETECTION_PVS["enableOverlayPV"]["value"] def get_overlayPortPV_value(self): """For use by EPICs adapter.""" - return self.overlayPortPV["value"] + return self.EDGE_DETECTION_PVS["overlayPortPV"]["value"] def get_useOverlay1PV_value(self): """For use by EPICs adapter.""" - return self.useOverlay1PV["value"] + return self.EDGE_DETECTION_PVS["useOverlay1PV"]["value"] def get_useOverlay2PV_value(self): """For use by EPICs adapter.""" - return self.useOverlay2PV["value"] + return self.EDGE_DETECTION_PVS["useOverlay2PV"]["value"] def get_overlay2ShapePV_value(self): """For use by EPICs adapter.""" - return self.overlay2ShapePV["value"] + return self.EDGE_DETECTION_PVS["overlay2ShapePV"]["value"] def get_overlay2RedPV_value(self): """For use by EPICs adapter.""" - return self.overlay2RedPV["value"] + return self.EDGE_DETECTION_PVS["overlay2RedPV"]["value"] def get_overlay2GreenPV_value(self): """For use by EPICs adapter.""" - return self.overlay2GreenPV["value"] + return self.EDGE_DETECTION_PVS["overlay2GreenPV"]["value"] def get_overlay2BluePV_value(self): """For use by EPICs adapter.""" - return self.overlay2BluePV["value"] + return self.EDGE_DETECTION_PVS["overlay2BluePV"]["value"] def get_overlay2XPosition_value(self): """For use by EPICs adapter.""" - return self.overlay2XPosition["value"] + return self.EDGE_DETECTION_PVS["overlay2XPosition"]["value"] def get_overlay2YPosition_value(self): """For use by EPICs adapter.""" - return self.overlay2YPosition["value"] + return self.EDGE_DETECTION_PVS["overlay2YPosition"]["value"] def get_overlay2XSize_value(self): """For use by EPICs adapter.""" - return self.overlay2XSize["value"] + return self.EDGE_DETECTION_PVS["overlay2XSize"]["value"] def get_overlay2YSize_value(self): """For use by EPICs adapter.""" - return self.overlay2YSize["value"] + return self.EDGE_DETECTION_PVS["overlay2YSize"]["value"] def get_edgeTop_value(self): """For use by EPICs adapter.""" - return self.edgeTop["value"] + return self.EDGE_DETECTION_PVS["edgeTop"]["value"] def get_edgeBottom_value(self): """For use by EPICs adapter.""" - return self.edgeBottom["value"] + return self.EDGE_DETECTION_PVS["edgeBottom"]["value"] class OAVEdgeDetectionTCPAdapter(ComposedAdapter): @@ -325,24 +344,6 @@ def __init__( CommandInterpreter(), ) - @RegexCommand(r"C=(\d+\.?\d*)", interrupt=True, format="utf-8") - async def set_beam_current(self, value: float) -> None: - """Regex string command that sets the value of beam_current. - - Args: - value (int): The new value of beam_current. - """ - self.device.beam_current = value - - @RegexCommand(r"C\?", format="utf-8") - async def get_beam_current(self) -> bytes: - """Regex string command that returns the utf-8 encoded value of beam_current. - - Returns: - bytes: The utf-8 encoded value of beam_current. - """ - return str(self.device.beam_current).encode("utf-8") - class OAVEdgeDetectionEpicsAdapter(EpicsAdapter): """Epics Adapter. @@ -355,9 +356,10 @@ class OAVEdgeDetectionEpicsAdapter(EpicsAdapter): # Put all the PVs on EPICS def on_db_load(self) -> None: - """Link loaded in record with getter for device.""" + """Epics adapter for reading device values as a PV through channel access.""" for pv in self.device.EDGE_DETECTION_PVS: pv_dict = self.device.EDGE_DETECTION_PVS[pv] + if "is_writable" in pv_dict: if pv_dict["is_writable"]: builder.aOut( @@ -369,8 +371,7 @@ def on_db_load(self) -> None: # if the PV is missing the is_writable, or if not is_writable self.link_input_on_interrupt( - builder.aIn(pv_dict["pv_name"]), - pv_dict["getter"], + builder.aIn(pv_dict["pv_name"]), pv_dict["getter"] ) @@ -381,7 +382,9 @@ class OAVEdgeDetection(ComponentConfig): initial_exposurePV: float initial_acqPeriodPV: float initial_gainPV: float - initial_oavColourMode: float + initial_oavColourMode: int + initial_cannyEdgeUpperThreshholdPV: int + initial_cannyEdgeLowerThreshholdPV: int initial_xSizePV: float initial_ySizePV: float initial_inputRBPV: float @@ -401,8 +404,7 @@ class OAVEdgeDetection(ComponentConfig): initial_overlay2YPosition: float initial_overlay2XSize: float initial_overlay2YSize: float - initial_edgeTop: float - initial_edgeBottom: float + waveforms_file: str = "tickit_devices/oav/edge_waveforms.npy" host: str = "localhost" port: int = 25565 format: ByteFormat = ByteFormat(b"%b\r\n") @@ -410,6 +412,9 @@ class OAVEdgeDetection(ComponentConfig): ioc_name: str = "S03-SIM-DI-OAV-01" def __call__(self) -> Component: # noqa: D102 + with open(self.waveforms_file, "rb") as f: + self.initial_edgeTop = np.load(f) + self.initial_edgeBottom = np.load(f) return DeviceSimulation( name=self.name, device=OAVEdgeDetectionDevice( @@ -417,6 +422,8 @@ def __call__(self) -> Component: # noqa: D102 self.initial_acqPeriodPV, self.initial_gainPV, self.initial_oavColourMode, + self.initial_cannyEdgeUpperThreshholdPV, + self.initial_cannyEdgeLowerThreshholdPV, self.initial_xSizePV, self.initial_ySizePV, self.initial_inputRBPV, From 6a9fcc785138bd0f779649397504782b802a93f2 Mon Sep 17 00:00:00 2001 From: Eva Lott Date: Mon, 31 Oct 2022 10:26:14 +0000 Subject: [PATCH 05/16] Using .db instead of creating devices in python class #26 --- s03_configs/oav.yaml | 56 +- tickit_devices/oav/db_files/DCCT.db | 14 - tickit_devices/oav/db_files/DI-IOC.db | 943 + tickit_devices/oav/db_files/DI-OAV.db | 5056 + tickit_devices/oav/db_files/EA-FSCN.db | 161870 +++++++++++++++ tickit_devices/oav/db_files/FILL.db | 18 - tickit_devices/oav/db_files/MSTAT.db | 51 - .../oav/{ => db_files}/edge_waveforms.npy | Bin tickit_devices/oav/oav_edge_detection.py | 359 +- 9 files changed, 167875 insertions(+), 492 deletions(-) delete mode 100644 tickit_devices/oav/db_files/DCCT.db create mode 100755 tickit_devices/oav/db_files/DI-IOC.db create mode 100644 tickit_devices/oav/db_files/DI-OAV.db create mode 100644 tickit_devices/oav/db_files/EA-FSCN.db delete mode 100644 tickit_devices/oav/db_files/FILL.db delete mode 100644 tickit_devices/oav/db_files/MSTAT.db rename tickit_devices/oav/{ => db_files}/edge_waveforms.npy (100%) diff --git a/s03_configs/oav.yaml b/s03_configs/oav.yaml index b686870e..7afe6e3c 100644 --- a/s03_configs/oav.yaml +++ b/s03_configs/oav.yaml @@ -1,58 +1,4 @@ - tickit_devices.oav.oav_edge_detection.OAVEdgeDetection: name: oav_edge_detection inputs: {} - initial_exposurePV: 1.09 - initial_acqPeriodPV: 0.1 - initial_gainPV: 1. - initial_oavColourMode: 2 - initial_cannyEdgeUpperThreshholdPV: 30 - initial_cannyEdgeLowerThreshholdPV: 5 - initial_xSizePV: 1024. - initial_ySizePV: 1024. - initial_inputRBPV: 1. - initial_exposureRBPV: 1. - initial_acqPeriodRBPV: 1. - initial_gainRBPV: 1. - initial_inputPV: 1. - initial_enableOverlayPV: 1. - initial_overlayPortPV: 1. - initial_useOverlay1PV: 1. - initial_useOverlay2PV: 1. - initial_overlay2ShapePV: 1. - initial_overlay2RedPV: 1. - initial_overlay2GreenPV: 1. - initial_overlay2BluePV: 1. - initial_overlay2XPosition: 1. - initial_overlay2YPosition: 1. - initial_overlay2XSize: 1. - initial_overlay2YSize: 1. - port: 25565 -- tickit.devices.sink.Sink: - name: oav_sink - inputs: - input: oav_edge_detection:exposurePV - input: oav_edge_detection:acqPeriodPV - input: oav_edge_detection:gainPV - input: oav_edge_detection:oavColourMode - input: oav_edge_detection:cannyEdgeUpperThreshholdPV - input: oav_edge_detection:cannyEdgeLowerThreshholdPV - input: oav_edge_detection:xSizePV - input: oav_edge_detection:ySizePV - input: oav_edge_detection:inputRBPV - input: oav_edge_detection:exposureRBPV - input: oav_edge_detection:acqPeriodRBPV - input: oav_edge_detection:gainRBPV - input: oav_edge_detection:inputPV - input: oav_edge_detection:enableOverlayPV - input: oav_edge_detection:overlayPortPV - input: oav_edge_detection:useOverlay1PV - input: oav_edge_detection:useOverlay2PV - input: oav_edge_detection:overlay2ShapePV - input: oav_edge_detection:overlay2RedPV - input: oav_edge_detection:overlay2GreenPV - input: oav_edge_detection:overlay2BluePV - input: oav_edge_detection:overlay2XPosition - input: oav_edge_detection:overlay2YPosition - input: oav_edge_detection:overlay2XSize - input: oav_edge_detection:overlay2YSize - \ No newline at end of file + port: 25565 \ No newline at end of file diff --git a/tickit_devices/oav/db_files/DCCT.db b/tickit_devices/oav/db_files/DCCT.db deleted file mode 100644 index 30995772..00000000 --- a/tickit_devices/oav/db_files/DCCT.db +++ /dev/null @@ -1,14 +0,0 @@ -# Copy of the real record -# -#record (ai, "SR-DI-DCCT-01:SIGNAL") -#{ -# field (SCAN, "5 second") -# field (INP, "SR23C-DI-DCCT-01:SIGNAL") -# field (DISS, "3") -#} - -record (ai, "BL03S-SR-DI-DCCT-01:SIGNAL") -{ - field (SCAN, "5 second") - field (DISS, "3") -} \ No newline at end of file diff --git a/tickit_devices/oav/db_files/DI-IOC.db b/tickit_devices/oav/db_files/DI-IOC.db new file mode 100755 index 00000000..c9daa00f --- /dev/null +++ b/tickit_devices/oav/db_files/DI-IOC.db @@ -0,0 +1,943 @@ +#% macro, __doc__, Create some records for reading IOC statistics and details. +#% macro, IOC, Device prefix + +# Used by Channel Access Security to determine access to this IOC. +record(mbbo, "S03SIM-DI-IOC-01:ACCESS") +{ + field(DESC, "S03SIM-DI-IOC-01 Acc Mode") + field(PINI, "YES") + field(ZRST, "Running") + field(ZRSV, "NO_ALARM") + field(ONST, "Maintenance") + field(ONSV, "MINOR") + field(TWST, "Test") + field(TWSV, "MINOR") + field(THST, "OFFLINE") + field(THSV, "MAJOR") + info(autosaveFields, "VAL") +} +record(stringin, "S03SIM-DI-IOC-01:STARTTOD") +{ + field(DESC, "Time and date of startup") + field(DTYP, "Soft Timestamp") + field(PINI, "YES") + field(INP, "@%Y-%m-%d %H:%M:%S") +} +record(stringin, "S03SIM-DI-IOC-01:TOD") +{ + field(DESC, "Current time and date") + field(DTYP, "Soft Timestamp") + field(SCAN, "1 second") + field(INP, "@%Y-%m-%d %H:%M:%S") +} +record(calcout, "S03SIM-DI-IOC-01:HEARTBEAT") +{ + field(DESC, "1 Hz counter since startup") + field(CALC, "(A<2147483647)?A+1:1") + field(SCAN, "1 second") + field(INPA, "S03SIM-DI-IOC-01:HEARTBEAT") +} +# if autosave is working, START_CNT creates a running count of +# number of times the IOC was started. +record(calcout, "S03SIM-DI-IOC-01:START_CNT") +{ + field(DESC, "Increments at startup") + field(CALC, "A+1") + field(PINI, "YES") + field(INPA, "S03SIM-DI-IOC-01:START_CNT") + info(autosaveFields_pass0, "VAL") +} +# +# Using an existing internal set of subroutines, this +# PV updates the Access Security mechanism dynamically. +# The .acf file is re-read. +# +record( sub, "S03SIM-DI-IOC-01:READACF") +{ + field( DESC, "S03SIM-DI-IOC-01 ACF Update") + field( INAM, "asSubInit") + field( SNAM, "asSubProcess") + field( BRSV, "INVALID") +} +record(sub, "S03SIM-DI-IOC-01:SYSRESET") +{ + alias("S03SIM-DI-IOC-01:SysReset") + field(DESC, "IOC Restart" ) + field(SNAM, "rebootProc") + field(BRSV,"INVALID") + field(L,"1") +} + +#% archiver 1 Monitor +#% alh +record(ai, "S03SIM-DI-IOC-01:CA_CLNT_CNT") { + field(DESC, "Number of CA Clients") + field(SCAN, "I/O Intr") + field(DTYP, "IOC stats") + field(INP, "@ca_clients") + field(HOPR, "200") + field(HIHI, "175") + field(HIGH, "100") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + info(autosaveFields_pass0, "HOPR LOPR HIHI HIGH LOW LOLO HHSV HSV LSV LLSV") +} + +#% archiver 1 Monitor +#% alh +record(ai, "S03SIM-DI-IOC-01:CA_CONN_CNT") { + field(DESC, "Number of CA Connections") + field(SCAN, "I/O Intr") + field(DTYP, "IOC stats") + field(INP, "@ca_connections") + field(HOPR, "5000") + field(HIHI, "4500") + field(HIGH, "4000") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + info(autosaveFields_pass0, "HOPR LOPR HIHI HIGH LOW LOLO HHSV HSV LSV LLSV") +} + +record(ai, "S03SIM-DI-IOC-01:RECORD_CNT") { + field(DESC, "Number of Records") + field(PINI, "YES") + field(DTYP, "IOC stats") + field(INP, "@records") +} + +record(ai, "S03SIM-DI-IOC-01:FD_MAX") { + field(DESC, "Max File Descriptors") + field(PINI, "YES") + field(DTYP, "IOC stats") + field(INP, "@maxfd") +} + +record(ai, "S03SIM-DI-IOC-01:FD_CNT") { + field(DESC, "Allocated File Descriptors") + field(SCAN, "I/O Intr") + field(DTYP, "IOC stats") + field(FLNK, "S03SIM-DI-IOC-01:FD_FREE PP MS") + field(INP, "@fd") +} + +#% archiver 1 Monitor +#% alh +record(calc, "S03SIM-DI-IOC-01:FD_FREE") { + field(DESC, "Available FDs") + field(CALC, "B>0?B-A:C") + field(INPA, "S03SIM-DI-IOC-01:FD_CNT NPP MS") + field(INPB, "S03SIM-DI-IOC-01:FD_MAX NPP MS") + field(INPC, "1000") + field(HOPR, "150") + field(LOLO, "5") + field(LOW, "20") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + info(autosaveFields_pass0, "HOPR LOPR LOW LOLO LSV LLSV") +} + +#% archiver 1 Monitor +record(ai, "S03SIM-DI-IOC-01:SYS_CPU_LOAD") { + field(DESC, "System CPU Load") + field(SCAN, "I/O Intr") + field(DTYP, "IOC stats") + field(INP, "@sys_cpuload") + field(EGU, "%") + field(PREC, "1") + field(HOPR, "100") + field(HIHI, "80") + field(HIGH, "70") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + info(autosaveFields_pass0, "HOPR LOPR HIHI HIGH LOW LOLO HHSV HSV LSV LLSV") +} + +#% archiver 1 Monitor +#% alh +record(ai, "S03SIM-DI-IOC-01:IOC_CPU_LOAD") { + alias("S03SIM-DI-IOC-01:LOAD") + field(DESC, "IOC CPU Load") + field(SCAN, "I/O Intr") + field(DTYP, "IOC stats") + field(INP, "@ioc_cpuload") + field(EGU, "%") + field(PREC, "1") + field(HOPR, "100") + field(HIHI, "80") + field(HIGH, "70") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + info(autosaveFields_pass0, "HOPR LOPR HIHI HIGH LOW LOLO HHSV HSV LSV LLSV") +} + +record(ai, "S03SIM-DI-IOC-01:CPU_CNT") { + field(DESC, "Number of CPUs") + field(DTYP, "IOC stats") + field(INP, "@no_of_cpus") + field(PINI, "YES") +} + +#% archiver 1 Monitor +#% alh +record(ai, "S03SIM-DI-IOC-01:SUSP_TASK_CNT") { + field(DESC, "Number Suspended Tasks") + field(SCAN, "I/O Intr") + field(DTYP, "IOC stats") + field(INP, "@suspended_tasks") + field(HIHI, "1") + field(HHSV, "MAJOR") + info(autosaveFields_pass0, "HOPR LOPR HIHI HIGH LOW LOLO HHSV HSV LSV LLSV") +} + +#% archiver 1 Monitor +record(ai, "S03SIM-DI-IOC-01:MEM_USED") { + field(DESC, "Allocated Memory") + field(SCAN, "I/O Intr") + field(DTYP, "IOC stats") + field(INP, "@allocated_bytes") + field(EGU, "byte") +} + +#% archiver 1 Monitor +record(ai, "S03SIM-DI-IOC-01:MEM_FREE") { + field(DESC, "Free Memory") + field(SCAN, "I/O Intr") + field(DTYP, "IOC stats") + field(INP, "@free_bytes") + field(EGU, "byte") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + info(autosaveFields_pass0, "HOPR LOPR LOW LOLO LSV LLSV") +} + +record(ai, "S03SIM-DI-IOC-01:MEM_MAX") { + field(DESC, "Maximum Memory") + field(SCAN, "I/O Intr") + field(DTYP, "IOC stats") + field(INP, "@total_bytes") + field(EGU, "byte") +} + +record(ao, "S03SIM-DI-IOC-01:CA_UPD_TIME") { + field(DESC, "CA Check Update Period") + field(DTYP, "IOC stats") + field(OUT, "@ca_scan_rate") + field(EGU, "sec") + field(DRVH, "60") + field(DRVL, "1") + field(HOPR, "60") + field(VAL, "15") + field(PINI, "YES") +} + +record(ao, "S03SIM-DI-IOC-01:FD_UPD_TIME") { + field(DESC, "FD Check Update Period") + field(DTYP, "IOC stats") + field(OUT, "@fd_scan_rate") + field(EGU, "sec") + field(DRVH, "60") + field(DRVL, "1") + field(HOPR, "60") + field(VAL, "20") + field(PINI, "YES") +} + +record(ao, "S03SIM-DI-IOC-01:LOAD_UPD_TIME") { + field(DESC, "CPU Check Update Period") + field(DTYP, "IOC stats") + field(OUT, "@cpu_scan_rate") + field(EGU, "sec") + field(DRVH, "60") + field(DRVL, "1") + field(HOPR, "60") + field(VAL, "10") + field(PINI, "YES") +} + +record(ao, "S03SIM-DI-IOC-01:MEM_UPD_TIME") { + field(DESC, "Memory Check Update Period") + field(DTYP, "IOC stats") + field(OUT, "@memory_scan_rate") + field(EGU, "sec") + field(DRVH, "60") + field(DRVL, "1") + field(HOPR, "60") + field(VAL, "10") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-IOC-01:ST_SCRIPT1") { + field(DESC, "Startup Script Part1") + field(DTYP, "IOC stats") + field(INP, "@startup_script_1") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-IOC-01:ST_SCRIPT2") { + field(DESC, "Startup Script Part2") + field(DTYP, "IOC stats") + field(INP, "@startup_script_2") + field(PINI, "YES") +} + +record(waveform, "S03SIM-DI-IOC-01:ST_SCRIPT") { + field(DESC, "Startup Script") + field(DTYP, "IOC stats") + field(INP, "@startup_script") + field(NELM, "120") + field(FTVL, "CHAR") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-IOC-01:KERNEL_VERS") { + field(DESC, "Kernel Version") + field(DTYP, "IOC stats") + field(INP, "@kernel_ver") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-IOC-01:EPICS_VERS") { + field(DESC, "EPICS Version") + field(DTYP, "IOC stats") + field(INP, "@epics_ver") + field(PINI, "YES") +} + +record(waveform, "S03SIM-DI-IOC-01:EPICS_VERSION") { + field(DESC, "EPICS Version") + field(DTYP, "IOC stats") + field(INP, "@epics_ver") + field(NELM, "120") + field(FTVL, "CHAR") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-IOC-01:HOSTNAME") { + field(DESC, "Host Name") + field(DTYP, "IOC stats") + field(INP, "@hostname") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-IOC-01:APP_DIR1") { + field(DESC, "Application Directory Part 1") + field(DTYP, "IOC stats") + field(INP, "@pwd1") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-IOC-01:APP_DIR2") { + field(DESC, "Application Directory Part 2") + field(DTYP, "IOC stats") + field(INP, "@pwd2") + field(PINI, "YES") +} + +record(waveform, "S03SIM-DI-IOC-01:APP_DIR") { + field(DESC, "Application Directory") + field(DTYP, "IOC stats") + field(INP, "@pwd") + field(NELM, "160") + field(FTVL, "CHAR") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-IOC-01:UPTIME") { + field(DESC, "Elapsed Time since Start") + field(SCAN, "1 second") + field(DTYP, "IOC stats") + field(INP, "@up_time") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-IOC-01:ENGINEER") { + field(DESC, "Engineer") + field(DTYP, "IOC stats") + field(INP, "@engineer") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-IOC-01:LOCATION") { + field(DESC, "Location") + field(DTYP, "IOC stats") + field(INP, "@location") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-IOC-01:PROCESS_ID") { + field(DESC, "Process ID") + field(PINI, "YES") + field(DTYP, "IOC stats") + field(INP, "@proc_id") +} + +record(ai, "S03SIM-DI-IOC-01:PARENT_ID") { + field(DESC, "Parent Process ID") + field(PINI, "YES") + field(DTYP, "IOC stats") + field(INP, "@parent_proc_id") +} + +record(stringin, "S03SIM-DI-IOC-01:DLSVER") { + field(DESC, "IOC version") + field(DTYP, "IOC stats") + field(INP, "@dlsver") + field(PINI, "YES") +} +record(ai, "S03SIM-DI-IOC-01:GTIM_TIME") { + field(DESC, "Gen Time Secs since 1990") + field(SCAN, "1 second") + field(DTYP, "General Time") + field(PREC, "3") + field(INP, "@TIME") + field(EGU, "sec") +} + +record(bo, "S03SIM-DI-IOC-01:GTIM_RESET") { + field(DESC, "Gen Time Error Reset") + field(DTYP, "General Time") + field(OUT, "@RSTERRCNT") + field(ZNAM, "Reset") + field(ONAM, "Reset") +} + +record(longin, "S03SIM-DI-IOC-01:GTIM_ERR_CNT") { + field(DESC, "Gen Time Error Count") + field(DTYP, "General Time") + field(INP, "@GETERRCNT") + field(SCAN, "1 second") + field(HIHI, "1") + field(HHSV, "MAJOR") +} + +record(stringin, "S03SIM-DI-IOC-01:GTIM_CUR_SRC") { + field(DESC, "Gen Time Current Provider") + field(DTYP, "General Time") + field(INP, "@BESTTCP") + field(SCAN, "1 second") +} + +record(stringin, "S03SIM-DI-IOC-01:GTIM_EVT_SRC") { + field(DESC, "Gen Time Event Provider") + field(DTYP, "General Time") + field(INP, "@BESTTEP") + field(SCAN, "1 second") +} + +record(stringin, "S03SIM-DI-IOC-01:GTIM_HI_SRC") { + field(DESC, "Gen Time Highest Provider") + field(DTYP, "General Time") + field(INP, "@TOPTCP") + field(SCAN, "1 second") +} +record(stringin, "S03SIM-DI-IOC-01:CA_ADDR_LIST") { + field(DESC, "EPICS_CA_ADDR_LIST") + field(DTYP, "IOC epics var") + field(INP, "@EPICS_CA_ADDR_LIST") + field(PINI, "YES") +} +record(stringin, "S03SIM-DI-IOC-01:CA_CONN_TIME") { + field(DESC, "EPICS_CA_CONN_TMO") + field(DTYP, "IOC epics var") + field(INP, "@EPICS_CA_CONN_TMO") + field(PINI, "YES") +} +record(stringin, "S03SIM-DI-IOC-01:CA_AUTO_ADDR") { + field(DESC, "EPICS_CA_AUTO_ADDR_LIST") + field(DTYP, "IOC epics var") + field(INP, "@EPICS_CA_AUTO_ADDR_LIST") + field(PINI, "YES") +} +record(stringin, "S03SIM-DI-IOC-01:CA_RPTR_PORT") { + field(DESC, "EPICS_CA_REPEATER_PORT") + field(DTYP, "IOC epics var") + field(INP, "@EPICS_CA_REPEATER_PORT") + field(PINI, "YES") +} +record(stringin, "S03SIM-DI-IOC-01:CA_SRVR_PORT") { + field(DESC, "EPICS_CA_SERVER_PORT") + field(DTYP, "IOC epics var") + field(INP, "@EPICS_CA_SERVER_PORT") + field(PINI, "YES") +} +record(stringin, "S03SIM-DI-IOC-01:CA_MAX_ARRAY") { + field(DESC, "EPICS_CA_MAX_ARRAY_BYTES") + field(DTYP, "IOC epics var") + field(INP, "@EPICS_CA_MAX_ARRAY_BYTES") + field(PINI, "YES") +} +record(stringin, "S03SIM-DI-IOC-01:CA_SRCH_TIME") { + field(DESC, "EPICS_CA_MAX_SEARCH_PERIOD") + field(DTYP, "IOC epics var") + field(INP, "@EPICS_CA_MAX_SEARCH_PERIOD") + field(PINI, "YES") +} +record(stringin, "S03SIM-DI-IOC-01:CA_BEAC_TIME") { + field(DESC, "EPICS_CA_BEACON_PERIOD") + field(DTYP, "IOC epics var") + field(INP, "@EPICS_CA_BEACON_PERIOD") + field(PINI, "YES") +} +record(stringin, "S03SIM-DI-IOC-01:TIMEZONE") { + field(DESC, "EPICS_TIMEZONE") + field(DTYP, "IOC epics var") + field(INP, "@EPICS_TIMEZONE") + field(PINI, "YES") +} +record(stringin, "S03SIM-DI-IOC-01:TS_NTP_INET") { + field(DESC, "EPICS_TS_NTP_INET") + field(DTYP, "IOC epics var") + field(INP, "@EPICS_TS_NTP_INET") + field(PINI, "YES") +} +record(stringin, "S03SIM-DI-IOC-01:IOC_LOG_PORT") { + field(DESC, "EPICS_IOC_LOG_PORT") + field(DTYP, "IOC epics var") + field(INP, "@EPICS_IOC_LOG_PORT") + field(PINI, "YES") +} +record(stringin, "S03SIM-DI-IOC-01:IOC_LOG_INET") { + field(DESC, "EPICS_IOC_LOG_INET") + field(DTYP, "IOC epics var") + field(INP, "@EPICS_IOC_LOG_INET") + field(PINI, "YES") +} +#% macro, __doc__, Create some records for reading IOC statistics and details. +#% macro, IOC, Device prefix + +record(bo, "S03SIM-DI-IOC-01:01HZ_MODE") { + field(DESC, "01HZ Mode") + field(DOL, "1") + field(PINI, "YES") + field(ZNAM, "Relative") + field(ONAM, "Absolute") +} +record(sub, "S03SIM-DI-IOC-01:01HZ_UPD_TIME") { + field(DESC, "01HZ Update Time") + field(SCAN, "10 second") + field(EGU, "second") + field(PREC, "5") + field(MDEL, "0.00001") + field(HYST, "0.00002") + field(INAM, "scanMonInit") + field(SNAM, "scanMon") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(LSV, "MINOR") + field(LLSV, "MAJOR") + field(BRSV, "INVALID") + field(INPA, "S03SIM-DI-IOC-01:01HZ_MODE") + field(B, "1.0") + field(C, "5.0") +} +#% macro, __doc__, Create some records for reading IOC statistics and details. +#% macro, IOC, Device prefix + +record(bo, "S03SIM-DI-IOC-01:02HZ_MODE") { + field(DESC, "02HZ Mode") + field(DOL, "1") + field(PINI, "YES") + field(ZNAM, "Relative") + field(ONAM, "Absolute") +} +record(sub, "S03SIM-DI-IOC-01:02HZ_UPD_TIME") { + field(DESC, "02HZ Update Time") + field(SCAN, "5 second") + field(EGU, "second") + field(PREC, "5") + field(MDEL, "0.00001") + field(HYST, "0.00002") + field(INAM, "scanMonInit") + field(SNAM, "scanMon") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(LSV, "MINOR") + field(LLSV, "MAJOR") + field(BRSV, "INVALID") + field(INPA, "S03SIM-DI-IOC-01:02HZ_MODE") + field(B, "1.0") + field(C, "5.0") +} +#% macro, __doc__, Create some records for reading IOC statistics and details. +#% macro, IOC, Device prefix + +record(bo, "S03SIM-DI-IOC-01:05HZ_MODE") { + field(DESC, "05HZ Mode") + field(DOL, "1") + field(PINI, "YES") + field(ZNAM, "Relative") + field(ONAM, "Absolute") +} +record(sub, "S03SIM-DI-IOC-01:05HZ_UPD_TIME") { + field(DESC, "05HZ Update Time") + field(SCAN, "2 second") + field(EGU, "second") + field(PREC, "5") + field(MDEL, "0.00001") + field(HYST, "0.00002") + field(INAM, "scanMonInit") + field(SNAM, "scanMon") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(LSV, "MINOR") + field(LLSV, "MAJOR") + field(BRSV, "INVALID") + field(INPA, "S03SIM-DI-IOC-01:05HZ_MODE") + field(B, "1.0") + field(C, "5.0") +} +#% macro, __doc__, Create some records for reading IOC statistics and details. +#% macro, IOC, Device prefix + +record(bo, "S03SIM-DI-IOC-01:1HZ_MODE") { + field(DESC, "1HZ Mode") + field(DOL, "1") + field(PINI, "YES") + field(ZNAM, "Relative") + field(ONAM, "Absolute") +} +record(sub, "S03SIM-DI-IOC-01:1HZ_UPD_TIME") { + field(DESC, "1HZ Update Time") + field(SCAN, "1 second") + field(EGU, "second") + field(PREC, "5") + field(MDEL, "0.00001") + field(HYST, "0.00002") + field(INAM, "scanMonInit") + field(SNAM, "scanMon") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(LSV, "MINOR") + field(LLSV, "MAJOR") + field(BRSV, "INVALID") + field(INPA, "S03SIM-DI-IOC-01:1HZ_MODE") + field(B, "1.0") + field(C, "5.0") +} +#% macro, __doc__, Create some records for reading IOC statistics and details. +#% macro, IOC, Device prefix + +record(bo, "S03SIM-DI-IOC-01:2HZ_MODE") { + field(DESC, "2HZ Mode") + field(DOL, "1") + field(PINI, "YES") + field(ZNAM, "Relative") + field(ONAM, "Absolute") +} +record(sub, "S03SIM-DI-IOC-01:2HZ_UPD_TIME") { + field(DESC, "2HZ Update Time") + field(SCAN, ".5 second") + field(EGU, "second") + field(PREC, "5") + field(MDEL, "0.00001") + field(HYST, "0.00002") + field(INAM, "scanMonInit") + field(SNAM, "scanMon") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(LSV, "MINOR") + field(LLSV, "MAJOR") + field(BRSV, "INVALID") + field(INPA, "S03SIM-DI-IOC-01:2HZ_MODE") + field(B, "1.0") + field(C, "5.0") +} +#% macro, __doc__, Create some records for reading IOC statistics and details. +#% macro, IOC, Device prefix + +record(bo, "S03SIM-DI-IOC-01:5HZ_MODE") { + field(DESC, "5HZ Mode") + field(DOL, "1") + field(PINI, "YES") + field(ZNAM, "Relative") + field(ONAM, "Absolute") +} +record(sub, "S03SIM-DI-IOC-01:5HZ_UPD_TIME") { + field(DESC, "5HZ Update Time") + field(SCAN, ".2 second") + field(EGU, "second") + field(PREC, "5") + field(MDEL, "0.00001") + field(HYST, "0.00002") + field(INAM, "scanMonInit") + field(SNAM, "scanMon") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(LSV, "MINOR") + field(LLSV, "MAJOR") + field(BRSV, "INVALID") + field(INPA, "S03SIM-DI-IOC-01:5HZ_MODE") + field(B, "1.0") + field(C, "5.0") +} +#% macro, __doc__, Create some records for reading IOC statistics and details. +#% macro, IOC, Device prefix + +record(bo, "S03SIM-DI-IOC-01:10HZ_MODE") { + field(DESC, "10HZ Mode") + field(DOL, "1") + field(PINI, "YES") + field(ZNAM, "Relative") + field(ONAM, "Absolute") +} +record(sub, "S03SIM-DI-IOC-01:10HZ_UPD_TIME") { + field(DESC, "10HZ Update Time") + field(SCAN, ".1 second") + field(EGU, "second") + field(PREC, "5") + field(MDEL, "0.00001") + field(HYST, "0.00002") + field(INAM, "scanMonInit") + field(SNAM, "scanMon") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(LSV, "MINOR") + field(LLSV, "MAJOR") + field(BRSV, "INVALID") + field(INPA, "S03SIM-DI-IOC-01:10HZ_MODE") + field(B, "1.0") + field(C, "5.0") +} + +record(calc, "S03SIM-DI-IOC-01:SCANMON_SEVR") { + field(DESC, "ScanMon Max Severity") + field(SCAN, "1 second") + field(CALC, "0") + field(INPA, "S03SIM-DI-IOC-01:01HZ_UPD_TIME.SEVR MS") + field(INPB, "S03SIM-DI-IOC-01:02HZ_UPD_TIME.SEVR MS") + field(INPC, "S03SIM-DI-IOC-01:05HZ_UPD_TIME.SEVR MS") + field(INPD, "S03SIM-DI-IOC-01:1HZ_UPD_TIME.SEVR MS") + field(INPE, "S03SIM-DI-IOC-01:2HZ_UPD_TIME.SEVR MS") + field(INPF, "S03SIM-DI-IOC-01:5HZ_UPD_TIME.SEVR MS") + field(INPG, "S03SIM-DI-IOC-01:10HZ_UPD_TIME.SEVR MS") +} + +# % macro, name, name for gui elements +# % macro, EDM_FILE, edm screen, defaults to ioc_stats_softdls.edl +# % macro, IOC, ioc name + +# % gui, DI1, edm, ioc_stats_softdls.edl, ioc=S03SIM-DI-IOC-01 +# % gui, DI1, edmembed, ioc_embed.edl, ioc=S03SIM-DI-IOC-01,EDM_FILE=ioc_stats_softdls.edl + + + +# This associates BOY screens with the template +# % gui, DI1, boydetail, devIocStatsApp_opi/iocStats_detail.opi, desc=S03SIM-DI-IOC-01, IOC=S03SIM-DI-IOC-01, name=DI1 +# % gui, DI1, boyembed, devIocStatsApp_opi/iocStats_embed.opi, desc=S03SIM-DI-IOC-01, IOC=S03SIM-DI-IOC-01, name=DI1 +# % gui, DI1, boyembed, devIocStatsApp_opi/iocStats_embed_box.opi, desc=S03SIM-DI-IOC-01, IOC=S03SIM-DI-IOC-01, name=DI1 + +# These define what PVs a detail screen should contain +# % gui, DI1, readback, Startup Time,S03SIM-DI-IOC-01:STARTOD +# % gui, DI1, readback, Current Time,S03SIM-DI-IOC-01:TOD +# % gui, DI1, readback, Up Time,S03SIM-DI-IOC-01:UPTIME +# % gui, DI1, readback, Heartbeat,S03SIM-DI-IOC-01:HEARTBEAT +# % gui, DI1, readback, Records,S03SIM-DI-IOC-01:RECORD_CNT +# % gui, DI1, readback, Host Name,S03SIM-DI-IOC-01:HOSTNAME +# % gui, DI1, readback, User Name,S03SIM-DI-IOC-01:ENGINEER +# % gui, DI1, readback, Location,S03SIM-DI-IOC-01:LOCATION +# % gui, DI1, readback, CA Clients,S03SIM-DI-IOC-01:CA_CLNT_CNT +# % gui, DI1, readback, CA PV Conns,S03SIM-DI-IOC-01:CA_CONN_CNT +# % gui, DI1, readback, Susp Tasks,S03SIM-DI-IOC-01:SUSP_TASK_CNT +# % gui, DI1, readback, EPICS Version,S03SIM-DI-IOC-01:EPICS_VERS +# % gui, DI1, readback, OS Version,S03SIM-DI-IOC-01:KERNEL_VERS +# % gui, DI1, readback, Application Directory,S03SIM-DI-IOC-01:APP_DIR1 +# % gui, DI1, readback, Startup Script,S03SIM-DI-IOC-01:ST_SCRIPT1 +# % gui, DI1, readback, Memory Free,S03SIM-DI-IOC-01:MEM_FREE +# % gui, DI1, readback, Memory Used,S03SIM-DI-IOC-01:MEM_USED +# % gui, DI1, readback, Memory Max,S03SIM-DI-IOC-01:MEM_MAX +# % gui, DI1, readback, File Handles Free,S03SIM-DI-IOC-01:FD_FREE +# % gui, DI1, readback, File Handles Max,S03SIM-DI-IOC-01:FD_MAX +# % gui, DI1, readback, IOC CPU Load,S03SIM-DI-IOC-01:IOC_CPU_LOAD +# % gui, DI1, readback, All CPUs Load,S03SIM-DI-IOC-01:SYS_CPU_LOAD +# % gui, DI1, readback, System CPUs,S03SIM-DI-IOC-01:CPU_CNT + +record(stringout,"S03SIM-DI-IOC-01:0:NAME") { + field(VAL,"Not In Use") + field(DTYP,"Soft Channel") +} +record(longout,"S03SIM-DI-IOC-01:0:STATE") { + field(DTYP,"Soft Channel") +} + +#% archiver 10 Monitor VAL +#% None $SEVRCOMMAND UP_ANY dls-alh-handler.py S03SIM-DI-IOC-01:0:STATUS +record(mbbo,"S03SIM-DI-IOC-01:0:STATUS") { + field(DTYP,"Soft Channel") + field(NOBT,"3") + field(ONVL,"1") + field(TWVL,"2") + field(THVL,"3") + field(FRVL,"4") + field(ZRST,"No Status") + field(ONST,"Failure") + field(TWST,"Warning") + field(THST,"Seq Fail") + field(FRST,"Ok") + field(ONSV, "MAJOR") + field(TWSV, "MINOR") + field(THSV, "MINOR") +} +record(stringout,"S03SIM-DI-IOC-01:0:STATUSST") { + field(DTYP,"Soft Channel") + field(VAL,"Status unknown") +} +record(stringout,"S03SIM-DI-IOC-01:0:TIME") { + field(DTYP,"Soft Channel") + field(VAL,"Not yet saved") +} +record(stringout,"S03SIM-DI-IOC-01:1:NAME") { + field(VAL,"Not In Use") + field(DTYP,"Soft Channel") +} +record(longout,"S03SIM-DI-IOC-01:1:STATE") { + field(DTYP,"Soft Channel") +} + +#% archiver 10 Monitor VAL +#% None $SEVRCOMMAND UP_ANY dls-alh-handler.py S03SIM-DI-IOC-01:1:STATUS +record(mbbo,"S03SIM-DI-IOC-01:1:STATUS") { + field(DTYP,"Soft Channel") + field(NOBT,"3") + field(ONVL,"1") + field(TWVL,"2") + field(THVL,"3") + field(FRVL,"4") + field(ZRST,"No Status") + field(ONST,"Failure") + field(TWST,"Warning") + field(THST,"Seq Fail") + field(FRST,"Ok") + field(ONSV, "MAJOR") + field(TWSV, "MINOR") + field(THSV, "MINOR") +} +record(stringout,"S03SIM-DI-IOC-01:1:STATUSST") { + field(DTYP,"Soft Channel") + field(VAL,"Status unknown") +} +record(stringout,"S03SIM-DI-IOC-01:1:TIME") { + field(DTYP,"Soft Channel") + field(VAL,"Not yet saved") +} +record(stringout,"S03SIM-DI-IOC-01:2:NAME") { + field(VAL,"Not In Use") + field(DTYP,"Soft Channel") +} +record(longout,"S03SIM-DI-IOC-01:2:STATE") { + field(DTYP,"Soft Channel") +} + +#% archiver 10 Monitor VAL +#% None $SEVRCOMMAND UP_ANY dls-alh-handler.py S03SIM-DI-IOC-01:2:STATUS +record(mbbo,"S03SIM-DI-IOC-01:2:STATUS") { + field(DTYP,"Soft Channel") + field(NOBT,"3") + field(ONVL,"1") + field(TWVL,"2") + field(THVL,"3") + field(FRVL,"4") + field(ZRST,"No Status") + field(ONST,"Failure") + field(TWST,"Warning") + field(THST,"Seq Fail") + field(FRST,"Ok") + field(ONSV, "MAJOR") + field(TWSV, "MINOR") + field(THSV, "MINOR") +} +record(stringout,"S03SIM-DI-IOC-01:2:STATUSST") { + field(DTYP,"Soft Channel") + field(VAL,"Status unknown") +} +record(stringout,"S03SIM-DI-IOC-01:2:TIME") { + field(DTYP,"Soft Channel") + field(VAL,"Not yet saved") +} +# This associates an edm screen with the template +# % gui, None, edm, save_restoreStatus_more.edl, P=S03SIM-DI-IOC-01 + +# This associates BOY screens with the template +# % gui, None, boydetail, asApp_opi/autosave_detail.opi, desc=S03SIM-DI-IOC-01, device=S03SIM-DI-IOC-01, name=None +# % gui, None, boyembed, asApp_opi/autosave_embed.opi, desc=S03SIM-DI-IOC-01, device=S03SIM-DI-IOC-01, name=None +# % gui, None, boyembed, asApp_opi/autosave_embed_box.opi, desc=S03SIM-DI-IOC-01, device=S03SIM-DI-IOC-01, name=None + +# These define what PVs a detail screen should contain +# % gui, None, readback, General Status, S03SIM-DI-IOC-01:SRSTATUSST +# % gui, None, readback, Recently, S03SIM-DI-IOC-01:SRRECENTST +# % gui, None, readback, Reboot Status, S03SIM-DI-IOC-01:RRSTATUSST +# % gui, None, readback, Reboot time, S03SIM-DI-IOC-01:RRTIME +# % gui, None, readback, File 0 Status, S03SIM-DI-IOC-01:0:STATUSST +# % gui, None, readback, File 0 Name, S03SIM-DI-IOC-01:0:NAME +# % gui, None, readback, File 0 Written, S03SIM-DI-IOC-01:0:TIME +# % gui, None, readback, File 1 Status, S03SIM-DI-IOC-01:1:STATUSST +# % gui, None, readback, File 1 Name, S03SIM-DI-IOC-01:1:NAME +# % gui, None, readback, File 1 Written, S03SIM-DI-IOC-01:1:TIME +# % gui, None, readback, File 2 Status, S03SIM-DI-IOC-01:2:STATUSST +# % gui, None, readback, File 2 Name, S03SIM-DI-IOC-01:2:NAME +# % gui, None, readback, File 2 Written, S03SIM-DI-IOC-01:2:TIME + + +# This makes the component icon reflect the status and severity +# % gui, None, sevr +#% archiver 10 Monitor VAL +#% None $SEVRCOMMAND UP_ANY dls-alh-handler.py S03SIM-DI-IOC-01:RRSTATUS +record(mbbo,"S03SIM-DI-IOC-01:RRSTATUS") { + field(DTYP,"Soft Channel") + field(NOBT,"3") + field(ONVL,"1") + field(TWVL,"2") + field(THVL,"3") + field(FRVL,"4") + field(ZRST,"No Status") + field(ONST,"Failure") + field(TWST,"Warning") + field(THST,"Seq Fail") + field(FRST,"Ok") + field(ONSV, "MAJOR") + field(TWSV, "MINOR") + field(THSV, "MINOR") +} + +record(stringout,"S03SIM-DI-IOC-01:RRSTATUSST") { + field(DTYP,"Soft Channel") + field(VAL,"Status unknown") +} + +record(stringout,"S03SIM-DI-IOC-01:RRTIME") { + field(DTYP,"Soft Channel") + field(VAL,"Not yet saved") +} + +# % gui, None, sevr +#% archiver 10 Monitor VAL +#% None $SEVRCOMMAND UP_ANY dls-alh-handler.py S03SIM-DI-IOC-01:SRSTATUS +record(mbbo,"S03SIM-DI-IOC-01:SRSTATUS") { + field(DTYP,"Soft Channel") + field(NOBT,"3") + field(ONVL,"1") + field(TWVL,"2") + field(THVL,"3") + field(FRST,"4") + field(ZRST,"No Status") + field(ONST,"Failure") + field(TWST,"Warning") + field(THST,"Seq Fail") + field(FRST,"Ok") + field(ONSV, "MAJOR") + field(TWSV, "MINOR") + field(THSV, "MINOR") +} + +record(bo,"S03SIM-DI-IOC-01:SRHEARTBT") { + field(DTYP,"Soft Channel") +} + +record(stringout,"S03SIM-DI-IOC-01:SRSTATUSST") { + field(DTYP,"Soft Channel") + field(VAL,"Status unknown") +} + +record(stringout,"S03SIM-DI-IOC-01:SRRECENTST") { + field(DTYP,"Soft Channel") + field(VAL,"Status unknown") +} diff --git a/tickit_devices/oav/db_files/DI-OAV.db b/tickit_devices/oav/db_files/DI-OAV.db new file mode 100644 index 00000000..89860a99 --- /dev/null +++ b/tickit_devices/oav/db_files/DI-OAV.db @@ -0,0 +1,5056 @@ +# Database for the records specific to the ADAravis driver +# Macros: +#% macro, P, Device Prefix +#% macro, R, Device Suffix +#% macro, PORT, Asyn Port name +#% macro, TIMEOUT, Timeout, default 1 +#% macro, ADDR, Asyn Port address, default 0 + +# This associates a BOY screen with the template +# % gui, OAV.CAM, boydetail, aravisApp_opi/aravis_detail.opi, P=S03SIM-DI-OAV-01, R=:CAM:, DESC=Camera +# % gui, OAV.CAM, boyembed, aravisApp_opi/aravis_embed_box.opi, P=S03SIM-DI-OAV-01, R=:CAM:, DESC=Camera +# % gui, OAV.CAM, boyembed, aravisApp_opi/aravis_embed.opi, P=S03SIM-DI-OAV-01, R=:CAM:, DESC=Camera + +## ADGenICam.template +## Template database file to control some features of ADGenICam. +## +## Note: this file contains only the records that are not handled by the camera-specific GenICam autogenerated database + +#=================================================================# +# Template file: ADBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +# Using SCANRATE:The ImageJ EPICS_AD_Viewer plugin monitors ArrayCounter_RBV to decide +# when there is a new image to display. That means that it will not display faster than +# the SCANRATE you select. + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:CAM:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CAM,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:CAM:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CAM,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:CAM:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CAM,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:CAM:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CAM,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:CAM:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CAM,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:CAM:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CAM,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:CAM:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CAM,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:CAM:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CAM,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bi, "S03SIM-DI-OAV-01:CAM:Acquire") { + field(DTYP, "asynInt32") + field(ZNAM, "Done") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:CAM:SetAcquireBusy") + info(bi:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:CAM:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:CAM:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:CAM:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:CAM:AcquireBusy PP") +} + +record(bi, "S03SIM-DI-OAV-01:CAM:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:CAM:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:CAM:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:CAM:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:CAM:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:CAM:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:CAM:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:CAM:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.CAM,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:CAM:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:CAM:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:CAM:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:CAM:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:CAM:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:CAM:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:CAM:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:CAM:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:CAM:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:CAM:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.CAM,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:CAM:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:CAM:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:CAM:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:CAM:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:CAM:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:CAM:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:CAM:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:CAM:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:CAM:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:CAM:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CAM:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:CAM:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:CAM:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CAM,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:CAM:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:CAM:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:CAM:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:CAM:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:CAM:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:CAM:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:CAM:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:CAM:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:CAM:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:CAM:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:CAM:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.CAM,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:CAM:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.CAM,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:CAM:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:CAM:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:CAM:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:CAM:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:CAM:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:CAM:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:CAM:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:CAM:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:CAM:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)MAX_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)MAX_SIZE_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the detector readout # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-DI-OAV-01:CAM:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)BIN_X") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)BIN_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:CAM:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)BIN_Y") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)BIN_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:CAM:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)MIN_X") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:CAM:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)MIN_Y") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:CAM:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)SIZE_X") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:CAM:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)SIZE_Y") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:CAM:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)REVERSE_X") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:CAM:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)REVERSE_X") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:CAM:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)REVERSE_Y") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:CAM:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)REVERSE_Y") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the acquisition time and # +# period # +################################################################### +record(ao, "S03SIM-DI-OAV-01:CAM:AcquireTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM,0,1)ACQ_TIME") + field(PREC, "3") + field(VAL, "1.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:AcquireTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)ACQ_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:AcquirePeriod") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM,0,1)ACQ_PERIOD") + field(PREC, "3") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:AcquirePeriod_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)ACQ_PERIOD") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:TimeRemaining_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)TIME_REMAINING") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the gain # +################################################################### +record(ao, "S03SIM-DI-OAV-01:CAM:Gain") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM,0,1)GAIN") + field(VAL, "1.0") + field(PREC, "3") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:Gain_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)GAIN") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the frame type # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:CAM:FrameType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)FRAME_TYPE") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Background") + field(ONVL, "1") + field(TWST, "FlatField") + field(TWVL, "2") + field(THST, "DblCorrelation") + field(THVL, "3") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:FrameType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)FRAME_TYPE") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Background") + field(ONVL, "1") + field(TWST, "FlatField") + field(TWVL, "2") + field(THST, "DblCorrelation") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the acquisition mode # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:CAM:ImageMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)IMAGE_MODE") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Multiple") + field(ONVL, "1") + field(TWST, "Continuous") + field(TWVL, "2") + field(VAL, "2") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:ImageMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)IMAGE_MODE") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Multiple") + field(ONVL, "1") + field(TWST, "Continuous") + field(TWVL, "2") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the trigger mode # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:CAM:TriggerMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)TRIGGER_MODE") + field(ZRST, "Internal") + field(ZRVL, "0") + field(ONST, "External") + field(ONVL, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:TriggerMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)TRIGGER_MODE") + field(ZRST, "Internal") + field(ZRVL, "0") + field(ONST, "External") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the number of exposures and # +# number of images # +################################################################### +record(longout, "S03SIM-DI-OAV-01:CAM:NumExposures") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)NEXPOSURES") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:NumExposures_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)NEXPOSURES") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:NumExposuresCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)NEXPOSURES_COUNTER") + field(SCAN, "I/O Intr") +} +record(longout, "S03SIM-DI-OAV-01:CAM:NumImages") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)NIMAGES") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:NumImages_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)NIMAGES") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:NumImagesCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)NIMAGES_COUNTER") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are for the detector state # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:CAM:DetectorState_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)STATUS") + field(ZRST, "Idle") + field(ZRVL, "0") + field(ZRSV, "NO_ALARM") + field(ONST, "Acquire") + field(ONVL, "1") + field(ONSV, "NO_ALARM") + field(TWST, "Readout") + field(TWVL, "2") + field(TWSV, "NO_ALARM") + field(THST, "Correct") + field(THVL, "3") + field(THSV, "NO_ALARM") + field(FRST, "Saving") + field(FRVL, "4") + field(FRSV, "NO_ALARM") + field(FVST, "Aborting") + field(FVVL, "5") + field(FVSV, "MINOR") + field(SXST, "Error") + field(SXVL, "6") + field(SXSV, "MAJOR") + field(SVST, "Waiting") + field(SVVL, "7") + field(SVSV, "NO_ALARM") + field(EIST, "Initializing") + field(EIVL, "8") + field(EISV, "NO_ALARM") + field(NIST, "Disconnected") + field(NIVL, "9") + field(NISV, "INVALID") + field(TEST, "Aborted") + field(TEVL, "10") + field(TESV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide status information # +################################################################### + +# Status message. +record(waveform, "S03SIM-DI-OAV-01:CAM:StatusMessage_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CAM,0,1)STATUS_MESSAGE") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:CAM:StringToServer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CAM,0,1)STRING_TO_SERVER") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:CAM:StringFromServer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CAM,0,1)STRING_FROM_SERVER") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +################################################################@### +# This record can be used to force a read of the detector status # +#################################################################### +record(bo,"S03SIM-DI-OAV-01:CAM:ReadStatus") { + field(DTYP,"asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)READ_STATUS") + field(VAL, "1") + field(SCAN,"Passive") + info(autosaveFields, "SCAN") +} + +################################################################### +# These records control the shutter # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:CAM:ShutterMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)SHUTTER_MODE") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "EPICS PV") + field(ONVL, "1") + field(TWST, "Detector output") + field(TWVL, "2") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:ShutterMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)SHUTTER_MODE") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "EPICS PV") + field(ONVL, "1") + field(TWST, "Camera output") + field(TWVL, "2") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:CAM:ShutterControl") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)SHUTTER_CONTROL") + field(ZNAM, "Close") + field(ONAM, "Open") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:CAM:ShutterControl_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)SHUTTER_CONTROL") + field(ZNAM, "Close") + field(ONAM, "Open") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-DI-OAV-01:CAM:ShutterStatus_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)SHUTTER_STATUS") + field(ZNAM, "Closed") + field(ZSV, "NO_ALARM") + field(ONAM, "Open") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:ShutterOpenDelay") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM,0,1)SHUTTER_OPEN_DELAY") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:ShutterOpenDelay_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)SHUTTER_OPEN_DELAY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:ShutterCloseDelay") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM,0,1)SHUTTER_CLOSE_DELAY") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:ShutterCloseDelay_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)SHUTTER_CLOSE_DELAY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +# This record changes state when the driver opens/closes an EPICS shutter +record(bi, "S03SIM-DI-OAV-01:CAM:ShutterControlEPICS") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)SHUTTER_CONTROL_EPICS") + field(ZNAM, "Closed") + field(ZSV, "NO_ALARM") + field(ONAM, "Open") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ShutterFanout.PROC") +} + +record(fanout, "S03SIM-DI-OAV-01:CAM:ShutterFanout") +{ + field(LNK1, "S03SIM-DI-OAV-01:CAM:ShutterOpenEPICS.PROC PP MS") + field(LNK2, "S03SIM-DI-OAV-01:CAM:ShutterCloseEPICS.PROC PP MS") +} + +record(calcout, "S03SIM-DI-OAV-01:CAM:ShutterOpenEPICS") +{ + field(INPA, "S03SIM-DI-OAV-01:CAM:ShutterControlEPICS.VAL NPP NMS") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(DOPT, "Use OCAL") + field(OCAL, "1") + field(OUT, "") + info(autosaveFields, "OUT OCAL") +} + +record(calcout, "S03SIM-DI-OAV-01:CAM:ShutterCloseEPICS") +{ + field(INPA, "S03SIM-DI-OAV-01:CAM:ShutterControlEPICS.VAL NPP NMS") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(DOPT, "Use OCAL") + field(OCAL, "0") + field(OUT, "") + info(autosaveFields, "OUT OCAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:ShutterStatusEPICS_RBV") +{ + field(DTYP, "Raw Soft Channel") + field(INP, "test CP MS") + field(ZRVL, "0") + field(ZRST, "Closed") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "Open") + field(ONSV, "MINOR") + info(autosaveFields, "INP ZRVL ONVL") +} + +################################################################### +# These records control the detector temperature # +################################################################### + +record(ao, "S03SIM-DI-OAV-01:CAM:Temperature") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM,0,1)TEMPERATURE") + field(PREC, "1") + field(EGU, "C") + field(VAL, "25.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:Temperature_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)TEMPERATURE") + field(PREC, "1") + field(EGU, "C") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:TemperatureActual") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)TEMPERATURE_ACTUAL") + field(PREC, "1") + field(EGU, "C") + field(SCAN, "I/O Intr") +} + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +## These are the records from ADBase.template that we modify + +# Some cameras use both AcquisitionFrameRate and AcquirePeriod. +# Make AcquirePeriod update if FrameRate is changed. +record(ao, "S03SIM-DI-OAV-01:CAM:AcquirePeriod") +{ + info(ai:READBACK, "1") +} + +# This record hides the fact that some cameras use FrameRate and some use FrameRateAbs +# This is not PINI=YES because AcquirePeriod is and they control the same thing +record(ao, "S03SIM-DI-OAV-01:CAM:FrameRate") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM 0)GC_FRAMERATE") + field(PREC, "3") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:FrameRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM 0)GC_FRAMERATE") + field(SCAN, "I/O Intr") + field(PREC, "3") +} + +# Some cameras (Basler, Point Grey, FLIR) use AcquisitionFrameRateEnable or AcquisitionFrameRateEnabled +# This record hides the fact that the feature name may differ; the record name is always the same. +record(bo, "S03SIM-DI-OAV-01:CAM:FrameRateEnable") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM 0)GC_FRAMERATE_ENABLE") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +record(bi, "S03SIM-DI-OAV-01:CAM:FrameRateEnable_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM 0)GC_FRAMERATE_ENABLE") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +# This record is used to ensure there is a record for TriggerSource even if there is no such GenICam feature +record(mbbo, "S03SIM-DI-OAV-01:CAM:TriggerSource") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM 0)GC_TRIGGER_SOURCE") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:TriggerSource_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM 0)GC_TRIGGER_SOURCE") + field(ZRST, "N.A.") + field(ZRVL, "0") + field(SCAN, "I/O Intr") +} + +# This record is used to ensure there is a record for TriggerOverlap even if there is no such GenICam feature +record(mbbo, "S03SIM-DI-OAV-01:CAM:TriggerOverlap") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM 0)GC_TRIGGER_OVERLAP") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:TriggerOverlap_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM 0)GC_TRIGGER_OVERLAP") + field(SCAN, "I/O Intr") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +# This record is used to ensure there is a record for TriggerSoftware even if there is no such GenICam feature +record(bo, "S03SIM-DI-OAV-01:CAM:TriggerSoftware") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM 0)GC_TRIGGER_SOFTWARE") + field(ZNAM, "Done") + field(ONAM, "Trigger") +} + +# This record is used to ensure there is a record for ExposureMode even if there is no such GenICam feature +record(mbbo, "S03SIM-DI-OAV-01:CAM:ExposureMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM 0)GC_EXPOSURE_MODE") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:ExposureMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM 0)GC_EXPOSURE_MODE") + field(ZRST, "N.A.") + field(ZRVL, "0") + field(SCAN, "I/O Intr") +} + +# This record is used to ensure there is a record for ExposureAuto even if there is no such GenICam feature +record(mbbo, "S03SIM-DI-OAV-01:CAM:ExposureAuto") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM 0)GC_EXPOSURE_AUTO") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:ExposureAuto_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM 0)GC_EXPOSURE_AUTO") + field(SCAN, "I/O Intr") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +# This record is used to ensure there is a record for GainAuto even if there is no such GenICam feature +record(mbbo, "S03SIM-DI-OAV-01:CAM:GainAuto") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM 0)GC_GAIN_AUTO") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GainAuto_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM 0)GC_GAIN_AUTO") + field(SCAN, "I/O Intr") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +# This record is used to ensure there is a record for PixelFormat even if there is no such GenICam feature +record(mbbo, "S03SIM-DI-OAV-01:CAM:PixelFormat") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM 0)GC_PIXEL_FORMAT") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:PixelFormat_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM 0)GC_PIXEL_FORMAT") + field(ZRST, "N.A.") + field(ZRVL, "0") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:ARFramesCompleted") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)ARAVIS_COMPLETED") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC LLSV LOLO LOW LSV") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:ARFrameFailures") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)ARAVIS_FAILURES") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:ARFrameUnderruns") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)ARAVIS_UNDERRUNS") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ARMissingPackets") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)ARAVIS_MISSING_PKTS") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV") +} + +record(longin, "S03SIM-DI-OAV-01:CAM:ARResentPackets") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)ARAVIS_RESENT_PKTS") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:ARPacketResendEnable") +{ + field(DESC, "Packet resend enable") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)ARAVIS_PKT_RESEND") + field(ZRST, "Never") + field(ZRVL, "0") + field(ONST, "Always") + field(ONVL, "1") + field(VAL, "1") + field(PINI, "1") + info(autosaveFields, "DESC ONSV ZRSV PINI VAL") +} + +record(longout, "S03SIM-DI-OAV-01:CAM:ARPacketTimeout") +{ + field(DESC, "Delay in us before packet resend request") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)ARAVIS_PKT_TIMEOUT") + field(VAL, "20000") + field(EGU, "us") + field(PINI, "1") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV LLSV LOLO LOW LSV PINI VAL") +} + +record(longout, "S03SIM-DI-OAV-01:CAM:ARFrameRetention") +{ + field(DESC, "Frame timeout in us after last packet") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)ARAVIS_FRAME_RETENTION") + field(VAL, "100000") + field(EGU, "us") + field(PINI, "1") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV LLSV LOLO LOW LSV PINI VAL") +} + +record(longout, "S03SIM-DI-OAV-01:CAM:ARResetCamera") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)ARAVIS_RESET") + field(FLNK, "S03SIM-DI-OAV-01:CAM:ARConnectCamera") +} + +record(longout, "S03SIM-DI-OAV-01:CAM:ARConnectCamera") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)ARAVIS_CONNECTION") + field(VAL, "1") + field(PINI, "1") +} + +record(calcout, "S03SIM-DI-OAV-01:CAM:ARCheckConnection") +{ + field(SCAN, "1 second") + field(INPA, "S03SIM-DI-OAV-01:CAM:ARConnectCamera.SEVR CP") + field(CALC, "A==0") + field(OOPT, "When Non-zero") + field(OUT, "S03SIM-DI-OAV-01:CAM:ARConnectCamera.PROC PP") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:ARConvertPixelFormat_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)ARAVIS_CONVERT_PIXEL_FORMAT") + field(ZRST, "Mono16Low") + field(ZRVL, "0") + field(ONST, "Mono16High") + field(ONVL, "1") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC ZRSV ONSV") +} + + +## When unpacking Mono12Packed or Mono12p selects whether 16-bit output is +## left shifted by 4 bits (Mono16High) or not (Mono16Low) +record(mbbo, "S03SIM-DI-OAV-01:CAM:ARConvertPixelFormat") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)ARAVIS_CONVERT_PIXEL_FORMAT") + field(ZRST, "Mono16Low") + field(ZRVL, "0") + field(ONST, "Mono16High") + field(ONVL, "1") + field(PINI, "1") + info(autosaveFields, "DESC ZRSV ONSV VAL") +} + + +record(mbbi, "S03SIM-DI-OAV-01:CAM:ARShiftDir_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)ARAVIS_SHIFT_DIR") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "Left") + field(ONVL, "1") + field(TWST, "Right") + field(TWVL, "2") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC ZRSV ONSV") +} + +## Select no shift, left shift, or right shift when reading data +record(mbbo, "S03SIM-DI-OAV-01:CAM:ARShiftDir") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)ARAVIS_SHIFT_DIR") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "Left") + field(ONVL, "1") + field(TWST, "Right") + field(TWVL, "2") + field(PINI, "1") + info(autosaveFields, "DESC ZRSV ONSV VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:ARShiftBits_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)ARAVIS_SHIFT_BITS") + field(ZRST, "1") + field(ZRVL, "1") + field(ONST, "2") + field(ONVL, "2") + field(TWST, "3") + field(TWVL, "3") + field(THST, "4") + field(THVL, "4") + field(FRST, "5") + field(FRVL, "5") + field(FVST, "6") + field(FVVL, "6") + field(SXST, "7") + field(SXVL, "7") + field(SVST, "8") + field(SVVL, "8") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC ZRSV ONSV") +} + +## Selects how many bits to shift left or right when reading data +record(mbbo, "S03SIM-DI-OAV-01:CAM:ARShiftBits") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)ARAVIS_SHIFT_BITS") + field(ZRST, "1") + field(ZRVL, "1") + field(ONST, "2") + field(ONVL, "2") + field(TWST, "3") + field(TWVL, "3") + field(THST, "4") + field(THVL, "4") + field(FRST, "5") + field(FRVL, "5") + field(FVST, "6") + field(FVVL, "6") + field(SXST, "7") + field(SXVL, "7") + field(SVST, "8") + field(SVVL, "8") + field(PINI, "1") + info(autosaveFields, "DESC ZRSV ONSV VAL") +} +# Macros: +#% macro, P, Device Prefix +#% macro, R, Device Suffix + + + +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:MXSC:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.MXSC,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:MXSC:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.MXSC,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:MXSC:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.MXSC,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:MXSC:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.MXSC,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:MXSC:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.MXSC,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:MXSC:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.MXSC,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:MXSC:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.MXSC,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:MXSC:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.MXSC,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:MXSC:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:MXSC:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:MXSC:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:MXSC:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:MXSC:AcquireBusy PP") +} + +record(bi, "S03SIM-DI-OAV-01:MXSC:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:MXSC:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:MXSC:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:MXSC:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:MXSC:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:MXSC:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:MXSC:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:MXSC:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.MXSC,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.MXSC,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MXSC:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:MXSC:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:MXSC:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.MXSC,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:MXSC:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:MXSC:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:MXSC:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:MXSC:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:MXSC:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:MXSC:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.MXSC,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:MXSC:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:MXSC:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:MXSC:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:MXSC:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:MXSC:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:MXSC:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:MXSC:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:MXSC:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.MXSC,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:MXSC:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.MXSC,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:MXSC:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:MXSC:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.MXSC,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:MXSC:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.MXSC,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:MXSC:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:MXSC:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:MXSC:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:MXSC:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:MXSC:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.MXSC,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:MXSC:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.MXSC,0,1)NDARRAY_PORT") + field(VAL, "OAV.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:MXSC:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.MXSC,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:MXSC:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:MXSC:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:MXSC:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:MXSC:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.MXSC,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:MXSC:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.MXSC,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:MXSC:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:MXSC:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:MXSC:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:MXSC:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:MXSC:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:MXSC:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:MXSC:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:MXSC:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.MXSC,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:MXSC:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.MXSC,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:MXSC:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.MXSC,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:MXSC:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:MXSC:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:MXSC:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:MXSC:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:MXSC:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:MXSC:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:MXSC:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:MXSC:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:MXSC:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:MXSC:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:MXSC:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:MXSC:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:MXSC:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:MXSC:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:MXSC:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:MXSC:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:MXSC:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:MXSC:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:MXSC:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:MXSC:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:MXSC:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.MXSC,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:MXSC:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.MXSC,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:MXSC:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:MXSC:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:MXSC:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:MXSC:SortSize") + field(OUT, "S03SIM-DI-OAV-01:MXSC:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:MXSC:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:MXSC:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:MXSC:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + + +record(ai, "S03SIM-DI-OAV-01:MXSC:Time_RBV") +{ + field(DTYP, "asynFloat64") + field(DESC, "Time taken for plugin to run") + field(INP, "@asyn(OAV.MXSC,0,1)ADPYTHON_TIME") + field(SCAN, "I/O Intr") + field(PREC, "1") + field(EGU, "ms") +} + +# File path. +# % autosave 2 +record(waveform, "S03SIM-DI-OAV-01:MXSC:Filename") +{ + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.MXSC,0,1)ADPYTHON_FILENAME") + field(FTVL, "CHAR") + field(NELM, "256") +} + +record(waveform, "S03SIM-DI-OAV-01:MXSC:Filename_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.MXSC,0,1)ADPYTHON_FILENAME") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +# Class name. +# % autosave 2 +record(waveform, "S03SIM-DI-OAV-01:MXSC:Classname") +{ + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.MXSC,0,1)ADPYTHON_CLASSNAME") + field(FTVL, "CHAR") + field(NELM, "256") +} + +record(waveform, "S03SIM-DI-OAV-01:MXSC:Classname_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.MXSC,0,1)ADPYTHON_CLASSNAME") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +# Read file +record(bi, "S03SIM-DI-OAV-01:MXSC:ReadFile") +{ + field(DTYP, "asynInt32") + field(ZNAM, "Done") + field(ONAM, "Read") +} + +record(bi, "S03SIM-DI-OAV-01:MXSC:ReadFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)ADPYTHON_LOAD") + field(ZNAM, "Done") + field(ONAM, "Reading") + field(SCAN, "I/O Intr") +} + +record(mbbi, "S03SIM-DI-OAV-01:MXSC:PluginState_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)ADPYTHON_STATE") + field(ZRST, "Good") + field(ZRSV, "NO_ALARM") + field(ZRVL, "0") + field(ONST, "Bad") + field(ONSV, "MAJOR") + field(ONVL, "1") + field(TWST, "Ugly") + field(TWSV, "MAJOR") + field(TWVL, "2") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:MXSC:AbortProcessing") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)ADPYTHON_PROC_ABORT") + field(ZNAM, "Aborted") + field(ONAM, "Abort") +} + +record(ao, "S03SIM-DI-OAV-01:MXSC:Timeout") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)ADPYTHON_PROC_TIMEOUT") + field(EGU, "ms") +} + +record(ai, "S03SIM-DI-OAV-01:MXSC:Timeout_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)ADPYTHON_PROC_TIMEOUT") + field(SCAN, "I/O Intr") + field(EGU, "ms") +}# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % gui, OAV.MXSC, edmtab, adPythonMxSampleDetect.edl, P=S03SIM-DI-OAV-01,R=:MXSC: + + +# Records relating to preprocessing. + +record(mbbo, "S03SIM-DI-OAV-01:MXSC:Preprocess") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)preprocess") + + field(ZRST, "Erode") + field(ZRVL, "0") + field(ONST, "Dilate") + field(ONVL, "1") + field(TWST, "Open") + field(TWVL, "2") + field(THST, "Close") + field(THVL, "3") + field(FRST, "Gradient") + field(FRVL, "4") + field(FVST, "Top hat") + field(FVVL, "5") + field(SXST, "Black hat") + field(SXVL, "6") + field(SVST, "Blur") + field(SVVL, "7") + field(EIST, "Gaussian blur") + field(EIVL, "8") + field(NIST, "Median blur") + field(NIVL, "9") + field(TEST, "None") + field(TEVL, "10") +} +record(mbbi, "S03SIM-DI-OAV-01:MXSC:Preprocess_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)preprocess") + + field(ZRST, "Erode") + field(ZRVL, "0") + field(ONST, "Dilate") + field(ONVL, "1") + field(TWST, "Open") + field(TWVL, "2") + field(THST, "Close") + field(THVL, "3") + field(FRST, "Gradient") + field(FRVL, "4") + field(FVST, "Top hat") + field(FVVL, "5") + field(SXST, "Black hat") + field(SXVL, "6") + field(SVST, "Blur") + field(SVVL, "7") + field(EIST, "Gaussian blur") + field(EIVL, "8") + field(NIST, "Median blur") + field(NIVL, "9") + field(TEST, "None") + field(TEVL, "10") +} + +# Abuse a couple of mbbis to provide descriptions of preprocess parameters. +record(mbbi, "S03SIM-DI-OAV-01:MXSC:PpParam1Name") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)preprocess") + + field(ZRST, "ksize (px)") + field(ZRVL, "0") + field(ONST, "ksize (px)") + field(ONVL, "1") + field(TWST, "ksize (px)") + field(TWVL, "2") + field(THST, "ksize (px)") + field(THVL, "3") + field(FRST, "ksize (px)") + field(FRVL, "4") + field(FVST, "ksize (px)") + field(FVVL, "5") + field(SXST, "ksize (px)") + field(SXVL, "6") + field(SVST, "ksize (px)") + field(SVVL, "7") + field(EIST, "ksize (px)") + field(EIVL, "8") + field(NIST, "ksize (px)") + field(NIVL, "9") + field(TEST, "(Unused)") + field(TEVL, "10") +} +record(mbbi, "S03SIM-DI-OAV-01:MXSC:PpParam2Name") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)preprocess") + + field(ZRST, "Iterations") + field(ZRVL, "0") + field(ONST, "Iterations") + field(ONVL, "1") + field(TWST, "Iterations") + field(TWVL, "2") + field(THST, "Iterations") + field(THVL, "3") + field(FRST, "Iterations") + field(FRVL, "4") + field(FVST, "Iterations") + field(FVVL, "5") + field(SXST, "Iterations") + field(SXVL, "6") + field(SVST, "(Unused)") + field(SVVL, "7") + field(EIST, "(Unused)") + field(EIVL, "8") + field(NIST, "(Unused)") + field(NIVL, "9") + field(TEST, "(Unused)") + field(TEVL, "10") +} + +record(longout, "S03SIM-DI-OAV-01:MXSC:PpParam1") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)pp_param1") +} +record(longin, "S03SIM-DI-OAV-01:MXSC:PpParam1_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)pp_param1") +} + +record(longout, "S03SIM-DI-OAV-01:MXSC:PpParam2") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)pp_param2") +} +record(longin, "S03SIM-DI-OAV-01:MXSC:PpParam2_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)pp_param2") +} + + +# Records relating to edge detection. + +record(longout, "S03SIM-DI-OAV-01:MXSC:CannyUpper") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)canny_upper") +} +record(longin, "S03SIM-DI-OAV-01:MXSC:CannyUpper_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)canny_upper") +} + +record(longout, "S03SIM-DI-OAV-01:MXSC:CannyLower") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)canny_lower") +} +record(longin, "S03SIM-DI-OAV-01:MXSC:CannyLower_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)canny_lower") +} + + +# Records relating to "close" morphological operation. + +record(longout, "S03SIM-DI-OAV-01:MXSC:CloseKsize") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)close_ksize") +} +record(longin, "S03SIM-DI-OAV-01:MXSC:CloseKsize_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)close_ksize") +} + +record(longout, "S03SIM-DI-OAV-01:MXSC:CloseIterations") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)close_iterations") +} +record(longin, "S03SIM-DI-OAV-01:MXSC:CloseIterations_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)close_iterations") +} + + +# Records relating to sample detection. + +record(mbbo, "S03SIM-DI-OAV-01:MXSC:ScanDirection") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)scan_direction") + + field(ZRST, "Left to right") + field(ZRVL, "1") + field(ONST, "Right to left") + field(ONVL, "-1") +} +record(mbbi, "S03SIM-DI-OAV-01:MXSC:ScanDirection_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)scan_direction") + + field(ZRST, "Left to right") + field(ZRVL, "1") + field(ONST, "Right to left") + field(ONVL, "-1") +} + +record(longout, "S03SIM-DI-OAV-01:MXSC:MinTipHeight") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)min_tip_height") +} +record(longin, "S03SIM-DI-OAV-01:MXSC:MinTipHeight_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)min_tip_height") +} + + +# Records relating to output. + +record(longin, "S03SIM-DI-OAV-01:MXSC:TipX") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)tip_x") +} +record(longin, "S03SIM-DI-OAV-01:MXSC:TipY") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)tip_y") +} + + +record(waveform, "S03SIM-DI-OAV-01:MXSC:Top") +{ + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.MXSC,0,1)top") + field(FTVL, "LONG") + field(NELM, "1024") +} +record(waveform, "S03SIM-DI-OAV-01:MXSC:Bottom") +{ + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.MXSC,0,1)bottom") + field(FTVL, "LONG") + field(NELM, "1024") +} + +record(mbbo, "S03SIM-DI-OAV-01:MXSC:OutputArray") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)out_arr") + + field(ZRST, "Original") + field(ZRVL, "0") + field(ONST, "Greyscale") + field(ONVL, "1") + field(TWST, "Preprocessed") + field(TWVL, "2") + field(THST, "Canny edges") + field(THVL, "3") + field(FRST, "Closed edges") + field(FRVL, "4") +} +record(mbbi, "S03SIM-DI-OAV-01:MXSC:OutputArray_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)out_arr") + + field(ZRST, "Original") + field(ZRVL, "0") + field(ONST, "Greyscale") + field(ONVL, "1") + field(TWST, "Preprocessed") + field(TWVL, "2") + field(THST, "Canny edges") + field(THVL, "3") + field(FRST, "Closed edges") + field(FRVL, "4") +} + +record(bo, "S03SIM-DI-OAV-01:MXSC:DrawTip") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)draw_circle") + field(ZNAM, "Disabled") + field(ONAM, "Enabled") +} +record(bi, "S03SIM-DI-OAV-01:MXSC:DrawTip_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)draw_circle") + field(ZNAM, "Disabled") + field(ONAM, "Enabled") +} + +record(bo, "S03SIM-DI-OAV-01:MXSC:DrawEdges") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)draw_edges") + field(ZNAM, "Disabled") + field(ONAM, "Enabled") +} +record(bi, "S03SIM-DI-OAV-01:MXSC:DrawEdges_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)draw_edges") + field(ZNAM, "Disabled") + field(ONAM, "Enabled") +} + +record(bo, "S03SIM-DI-OAV-01:MXSC:ForceColor") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.MXSC,0,1)force_color") + field(ZNAM, "No") + field(ONAM, "Yes") +} +record(bi, "S03SIM-DI-OAV-01:MXSC:ForceColor_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.MXSC,0,1)force_color") + field(ZNAM, "No") + field(ONAM, "Yes") +} +#=================================================================# +# Template file: NDColorConvert.template +# Database for the ColorConvert plugin +# Mark Rivers +# December 23, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, OAV.CCON, edmtab, NDColorConvert.edl, P=S03SIM-DI-OAV-01,R=:CCON: + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:CCON:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CCON,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:CCON:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CCON,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:CCON:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CCON,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:CCON:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CCON,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:CCON:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CCON,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:CCON:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CCON,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:CCON:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CCON,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:CCON:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CCON,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:CCON:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CCON,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:CCON:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:CCON:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:CCON:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:CCON:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:CCON:AcquireBusy PP") +} + +record(bi, "S03SIM-DI-OAV-01:CCON:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:CCON:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:CCON:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:CCON:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:CCON:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:CCON:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CCON,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:CCON:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CCON,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:CCON:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.CCON,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:CCON:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:CCON:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:CCON:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:CCON:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:CCON:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:CCON:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:CCON:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:CCON:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:CCON:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:CCON:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.CCON,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:CCON:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:CCON:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:CCON:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:CCON:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:CCON:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:CCON:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:CCON:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:CCON:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:CCON:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:CCON:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:CCON:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:CCON:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:CCON:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CCON,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:CCON:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CCON,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:CCON:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:CCON:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CCON,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:CCON:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:CCON:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:CCON:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CCON,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:CCON:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CCON,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:CCON:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:CCON:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:CCON:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:CCON:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:CCON:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CCON,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:CCON:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:CCON:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.CCON,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:CCON:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.CCON,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:CCON:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:CCON:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CCON,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:CCON:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CCON,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:CCON:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:CCON:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:CCON:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:CCON:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:CCON:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:CCON:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:CCON:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CCON,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:CCON:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CCON,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:CCON:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.CCON,0,1)NDARRAY_PORT") + field(VAL, "OAV.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:CCON:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CCON,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:CCON:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CCON,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:CCON:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CCON,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:CCON:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:CCON:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CCON,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:CCON:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CCON,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:CCON:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:CCON:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:CCON:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:CCON:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:CCON:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:CCON:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:CCON:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:CCON:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CCON,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:CCON:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CCON,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:CCON:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CCON,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:CCON:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CCON,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:CCON:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CCON,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:CCON:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:CCON:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CCON,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:CCON:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CCON,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:CCON:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:CCON:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:CCON:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:CCON:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:CCON:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:CCON:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:CCON:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:CCON:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:CCON:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:CCON:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:CCON:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:CCON:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:CCON:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:CCON:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:CCON:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:CCON:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CCON,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:CCON:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CCON,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:CCON:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:CCON:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CCON,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:CCON:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CCON,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:CCON:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CCON,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:CCON:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:CCON:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:CCON:SortSize") + field(OUT, "S03SIM-DI-OAV-01:CCON:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:CCON:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CCON,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:CCON:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CCON,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:CCON:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:CCON:ColorModeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CCON,0,1)COLOR_MODE_OUT") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:CCON:ColorModeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)COLOR_MODE_OUT") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:CCON:FalseColor") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CCON,0,1)FALSE_COLOR") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "Rainbow") + field(ONVL, "1") + field(TWST, "Iron") + field(TWVL, "2") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:CCON:FalseColor_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CCON,0,1)FALSE_COLOR") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "Rainbow") + field(ONVL, "1") + field(TWST, "Iron") + field(TWVL, "2") + field(SCAN, "I/O Intr") +} diff --git a/tickit_devices/oav/db_files/EA-FSCN.db b/tickit_devices/oav/db_files/EA-FSCN.db new file mode 100644 index 00000000..d7973a62 --- /dev/null +++ b/tickit_devices/oav/db_files/EA-FSCN.db @@ -0,0 +1,161870 @@ +# Macros: +#% macro, P, Device Prefix +#% macro, R, Device Suffix +#% macro, PORT, Asyn Port name +#% macro, TIMEOUT, Timeout, default=1 +#% macro, ADDR, Asyn Port address, default=0 +#% gui, FSCN1.CAM, edmtab, ADGenICam.edl, P=S03SIM-EA-FSCN-01,R=:CAM:,C=AVT_Manta_G125B + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_FirmwareVerMajor_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_FirmwareVerMajor") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_FirmwareVerMajor") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_FirmwareVerMajor") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_FirmwareVerMinor_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_FirmwareVerMinor") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_FirmwareVerMinor") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_FirmwareVerMinor") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_FirmwareVerBuild_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_FirmwareVerBuild") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_FirmwareVerBuild") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_FirmwareVerBuild") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_SensorType_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_SensorType") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_SensorType") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_SensorType") + field(DOL, "0") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_SensorBits_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_SensorBits") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_SensorBits") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_SensorBits") + field(DISA, "0") +} + +record(stringin, "S03SIM-EA-FSCN-01:CAM:GC_DeviceVendorName_RBV") { + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_S_DeviceVendorName") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(stringin, "S03SIM-EA-FSCN-01:CAM:GC_DeviceModelName_RBV") { + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_S_DeviceModelName") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(stringin, "S03SIM-EA-FSCN-01:CAM:GC_DevFirVersion_RBV") { + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_S_DeviceFirmwareVersion") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(stringin, "S03SIM-EA-FSCN-01:CAM:GC_DeviceID_RBV") { + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_S_DeviceID") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(stringin, "S03SIM-EA-FSCN-01:CAM:GC_DevicePartNumber_RBV") { + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_S_DevicePartNumber") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_DeviceScanType_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_DeviceScanType") + field(ZRST, "Areascan") + field(ZRVL, "0") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_DeviceScanType") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_DeviceScanType") + field(DOL, "0") + field(ZRST, "Areascan") + field(ZRVL, "0") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_StrBytesPerSecond_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_StreamBytesPerSecond") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_StrBytesPerSecond") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_StreamBytesPerSecond") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_BanControlMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_BandwidthControlMode") + field(ZRST, "StreamBytesPerSe") + field(ZRVL, "0") + field(ONST, "SCPD") + field(ONVL, "1") + field(TWST, "Both") + field(TWVL, "2") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_BanControlMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_BandwidthControlMode") + field(DOL, "0") + field(ZRST, "StreamBytesPerSe") + field(ZRVL, "0") + field(ONST, "SCPD") + field(ONVL, "1") + field(TWST, "Both") + field(TWVL, "2") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GevSCPSPacketSize_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_GevSCPSPacketSize") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GevSCPSPacketSize") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_GevSCPSPacketSize") + field(DISA, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:CAM:GC_ChunkModeActive_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_B_ChunkModeActive") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(bo, "S03SIM-EA-FSCN-01:CAM:GC_ChunkModeActive") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_B_ChunkModeActive") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_PayloadSize_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_PayloadSize") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_PayloadSize") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_PayloadSize") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_NonImaPayloadSize_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_NonImagePayloadSize") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_NonImaPayloadSize") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_NonImagePayloadSize") + field(DISA, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:CAM:GC_StrFraRatCon_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_B_StreamFrameRateConstrain") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(bo, "S03SIM-EA-FSCN-01:CAM:GC_StrFraRatCon") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_B_StreamFrameRateConstrain") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_StreamHoldEnable_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_StreamHoldEnable") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_StreamHoldEnable") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_StreamHoldEnable") + field(DOL, "0") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_StrHoldCapacity_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_StreamHoldCapacity") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_StrHoldCapacity") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_StreamHoldCapacity") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GevTimTicFre_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_GevTimestampTickFrequency") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GevTimTicFre") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_GevTimestampTickFrequency") + field(DISA, "0") +} + +record(longout, "S03SIM-EA-FSCN-01:CAM:GC_GevTimConLatch") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_C_GevTimestampControlLatch") + field(DISA, "0") +} + +record(longout, "S03SIM-EA-FSCN-01:CAM:GC_GevTimConReset") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_C_GevTimestampControlReset") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GevTimestampValue_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_GevTimestampValue") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GevTimestampValue") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_GevTimestampValue") + field(DISA, "0") +} + +record(longout, "S03SIM-EA-FSCN-01:CAM:GC_AcquisitionStart") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_C_AcquisitionStart") + field(DISA, "0") +} + +record(longout, "S03SIM-EA-FSCN-01:CAM:GC_AcquisitionStop") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_C_AcquisitionStop") + field(DISA, "0") +} + +record(longout, "S03SIM-EA-FSCN-01:CAM:GC_AcquisitionAbort") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_C_AcquisitionAbort") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_AcquisitionMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_AcquisitionMode") + field(ZRST, "Continuous") + field(ZRVL, "1") + field(ONST, "SingleFrame") + field(ONVL, "2") + field(TWST, "MultiFrame") + field(TWVL, "3") + field(THST, "Recorder") + field(THVL, "4") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_AcquisitionMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_AcquisitionMode") + field(DOL, "1") + field(ZRST, "Continuous") + field(ZRVL, "1") + field(ONST, "SingleFrame") + field(ONVL, "2") + field(TWST, "MultiFrame") + field(TWVL, "3") + field(THST, "Recorder") + field(THVL, "4") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_AcqFrameCount_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_AcquisitionFrameCount") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_AcqFrameCount") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_AcquisitionFrameCount") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_AcqFrameRateAbs_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_AcquisitionFrameRateAbs") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_AcqFrameRateAbs") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_AcquisitionFrameRateAbs") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_AcqFrameRateLimit_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_AcquisitionFrameRateLimit") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_AcqFrameRateLimit") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_AcquisitionFrameRateLimit") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_RecPreEventCount_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_RecorderPreEventCount") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_RecPreEventCount") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_RecorderPreEventCount") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_TriggerSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_TriggerSelector") + field(ZRST, "FrameStart") + field(ZRVL, "0") + field(ONST, "AcquisitionStart") + field(ONVL, "3") + field(TWST, "AcquisitionEnd") + field(TWVL, "4") + field(THST, "AcquisitionRecor") + field(THVL, "6") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_TriggerSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_TriggerSelector") + field(DOL, "0") + field(ZRST, "FrameStart") + field(ZRVL, "0") + field(ONST, "AcquisitionStart") + field(ONVL, "3") + field(TWST, "AcquisitionEnd") + field(TWVL, "4") + field(THST, "AcquisitionRecor") + field(THVL, "6") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_TriggerMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_TriggerMode") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_TriggerMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_TriggerMode") + field(DOL, "0") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On") + field(ONVL, "1") + field(DISA, "0") +} + +record(longout, "S03SIM-EA-FSCN-01:CAM:GC_TriggerSoftware") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_C_TriggerSoftware") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_TriggerSource_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_TriggerSource") + field(ZRST, "Freerun") + field(ZRVL, "0") + field(ONST, "Line1") + field(ONVL, "1") + field(TWST, "Line2") + field(TWVL, "2") + field(THST, "Line3") + field(THVL, "3") + field(FRST, "Line4") + field(FRVL, "4") + field(FVST, "FixedRate") + field(FVVL, "5") + field(SXST, "Software") + field(SXVL, "6") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_TriggerSource") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_TriggerSource") + field(DOL, "0") + field(ZRST, "Freerun") + field(ZRVL, "0") + field(ONST, "Line1") + field(ONVL, "1") + field(TWST, "Line2") + field(TWVL, "2") + field(THST, "Line3") + field(THVL, "3") + field(FRST, "Line4") + field(FRVL, "4") + field(FVST, "FixedRate") + field(FVVL, "5") + field(SXST, "Software") + field(SXVL, "6") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_TriggerActivation_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_TriggerActivation") + field(ZRST, "RisingEdge") + field(ZRVL, "0") + field(ONST, "FallingEdge") + field(ONVL, "1") + field(TWST, "AnyEdge") + field(TWVL, "2") + field(THST, "LevelHigh") + field(THVL, "3") + field(FRST, "LevelLow") + field(FRVL, "4") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_TriggerActivation") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_TriggerActivation") + field(DOL, "0") + field(ZRST, "RisingEdge") + field(ZRVL, "0") + field(ONST, "FallingEdge") + field(ONVL, "1") + field(TWST, "AnyEdge") + field(TWVL, "2") + field(THST, "LevelHigh") + field(THVL, "3") + field(FRST, "LevelLow") + field(FRVL, "4") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_TriggerOverlap_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_TriggerOverlap") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "ReadOut") + field(ONVL, "1") + field(TWST, "PreviousFrame") + field(TWVL, "2") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_TriggerOverlap") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_TriggerOverlap") + field(DOL, "0") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "ReadOut") + field(ONVL, "1") + field(TWST, "PreviousFrame") + field(TWVL, "2") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_TriggerDelayAbs_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_TriggerDelayAbs") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_TriggerDelayAbs") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_TriggerDelayAbs") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_SensorWidth_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_SensorWidth") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_SensorWidth") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_SensorWidth") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_SensorHeight_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_SensorHeight") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_SensorHeight") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_SensorHeight") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_BinningHorizontal_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_BinningHorizontal") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_BinningHorizontal") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_BinningHorizontal") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_BinningVertical_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_BinningVertical") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_BinningVertical") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_BinningVertical") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_DecHorizontal_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_DecimationHorizontal") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_DecHorizontal") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_DecimationHorizontal") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_DecVertical_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_DecimationVertical") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_DecVertical") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_DecimationVertical") + field(DISA, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:CAM:GC_ReverseX_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_B_ReverseX") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(bo, "S03SIM-EA-FSCN-01:CAM:GC_ReverseX") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_B_ReverseX") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_WidthMax_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_WidthMax") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_WidthMax") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_WidthMax") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_HeightMax_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_HeightMax") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_HeightMax") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_HeightMax") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_PixelFormat_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_PixelFormat") + field(ZRST, "Mono8") + field(ZRVL, "0x01080001") + field(ONST, "Mono10") + field(ONVL, "0x01100003") + field(TWST, "Mono12") + field(TWVL, "0x01100005") + field(THST, "Mono12Packed") + field(THVL, "0x010C0006") + field(FRST, "Mono14") + field(FRVL, "0x01100025") + field(FVST, "BayerGR8") + field(FVVL, "0x01080008") + field(SXST, "BayerRG8") + field(SXVL, "0x01080009") + field(SVST, "BayerBG8") + field(SVVL, "0x0108000B") + field(EIST, "BayerBG10") + field(EIVL, "0x0110000F") + field(NIST, "BayerGR12") + field(NIVL, "0x01100010") + field(TEST, "BayerRG12") + field(TEVL, "0x01100011") + field(ELST, "BayerGR12Packed") + field(ELVL, "0x010C002A") + field(TVST, "BayerRG12Packed") + field(TVVL, "0x010C002B") + field(TTST, "RGB8Packed") + field(TTVL, "0x02180014") + field(FTST, "BGR8Packed") + field(FTVL, "0x02180015") + field(FFST, "RGBA8Packed") + field(FFVL, "0x02200016") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_PixelFormat") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_PixelFormat") + field(DOL, "0x01080001") + field(ZRST, "Mono8") + field(ZRVL, "0x01080001") + field(ONST, "Mono10") + field(ONVL, "0x01100003") + field(TWST, "Mono12") + field(TWVL, "0x01100005") + field(THST, "Mono12Packed") + field(THVL, "0x010C0006") + field(FRST, "Mono14") + field(FRVL, "0x01100025") + field(FVST, "BayerGR8") + field(FVVL, "0x01080008") + field(SXST, "BayerRG8") + field(SXVL, "0x01080009") + field(SVST, "BayerBG8") + field(SVVL, "0x0108000B") + field(EIST, "BayerBG10") + field(EIVL, "0x0110000F") + field(NIST, "BayerGR12") + field(NIVL, "0x01100010") + field(TEST, "BayerRG12") + field(TEVL, "0x01100011") + field(ELST, "BayerGR12Packed") + field(ELVL, "0x010C002A") + field(TVST, "BayerRG12Packed") + field(TVVL, "0x010C002B") + field(TTST, "RGB8Packed") + field(TTVL, "0x02180014") + field(FTST, "BGR8Packed") + field(FTVL, "0x02180015") + field(FFST, "RGBA8Packed") + field(FFVL, "0x02200016") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_Width_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_Width") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_Width") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_Width") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_Height_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_Height") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_Height") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_Height") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_OffsetX_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_OffsetX") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_OffsetX") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_OffsetX") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_OffsetY_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_OffsetY") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_OffsetY") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_OffsetY") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ImageSize_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_ImageSize") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ImageSize") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_ImageSize") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_Gamma_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_Gamma") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_Gamma") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_Gamma") + field(PREC, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_NirMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_NirMode") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On_HighQuality") + field(ONVL, "1") + field(TWST, "On_Fast") + field(TWVL, "2") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_NirMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_NirMode") + field(DOL, "0") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On_HighQuality") + field(ONVL, "1") + field(TWST, "On_Fast") + field(TWVL, "2") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_Hue_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_Hue") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_Hue") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_Hue") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_Saturation_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_Saturation") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_Saturation") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_Saturation") + field(PREC, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_EdgeFilter_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_EdgeFilter") + field(ZRST, "Smooth2") + field(ZRVL, "14") + field(ONST, "Smooth1") + field(ONVL, "15") + field(TWST, "Off") + field(TWVL, "16") + field(THST, "Sharpen1") + field(THVL, "17") + field(FRST, "Sharpen2") + field(FRVL, "18") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_EdgeFilter") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_EdgeFilter") + field(DOL, "14") + field(ZRST, "Smooth2") + field(ZRVL, "14") + field(ONST, "Smooth1") + field(ONVL, "15") + field(TWST, "Off") + field(TWVL, "16") + field(THST, "Sharpen1") + field(THVL, "17") + field(FRST, "Sharpen2") + field(FRVL, "18") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_DSPSubregionLeft_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_DSPSubregionLeft") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_DSPSubregionLeft") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_DSPSubregionLeft") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_DSPSubregionTop_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_DSPSubregionTop") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_DSPSubregionTop") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_DSPSubregionTop") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_DSPSubregionRight_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_DSPSubregionRight") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_DSPSubregionRight") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_DSPSubregionRight") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_DSPSubBottom_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_DSPSubregionBottom") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_DSPSubBottom") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_DSPSubregionBottom") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_ExposureMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_ExposureMode") + field(ZRST, "Timed") + field(ZRVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_ExposureMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_ExposureMode") + field(DOL, "1") + field(ZRST, "Timed") + field(ZRVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ExposureTimeAbs_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_ExposureTimeAbs") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ExposureTimeAbs") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_ExposureTimeAbs") + field(PREC, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAuto_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_ExposureAuto") + field(ZRST, "Off") + field(ZRVL, "1") + field(ONST, "Once") + field(ONVL, "3") + field(TWST, "Continuous") + field(TWVL, "2") + field(THST, "other") + field(THVL, "4") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAuto") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_ExposureAuto") + field(DOL, "1") + field(ZRST, "Off") + field(ZRVL, "1") + field(ONST, "Once") + field(ONVL, "3") + field(TWST, "Continuous") + field(TWVL, "2") + field(THST, "other") + field(THVL, "4") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ExpAutoTarget_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoTarget") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ExpAutoTarget") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoTarget") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAutoAlg_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_ExposureAutoAlg") + field(ZRST, "Mean") + field(ZRVL, "0") + field(ONST, "FitRange") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAutoAlg") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_ExposureAutoAlg") + field(DOL, "0") + field(ZRST, "Mean") + field(ZRVL, "0") + field(ONST, "FitRange") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAutoMin_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoMin") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAutoMin") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoMin") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAutoMax_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoMax") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAutoMax") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoMax") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAutoRate_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoRate") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAutoRate") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoRate") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ExpAutoOutliers_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoOutliers") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ExpAutoOutliers") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoOutliers") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ExpAutoAdjustTol_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoAdjustTol") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ExpAutoAdjustTol") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoAdjustTol") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_GainSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_GainSelector") + field(ZRST, "All") + field(ZRVL, "0") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_GainSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_GainSelector") + field(DOL, "0") + field(ZRST, "All") + field(ZRVL, "0") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_Gain_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_Gain") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_Gain") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_Gain") + field(PREC, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_GainAuto_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_GainAuto") + field(ZRST, "Off") + field(ZRVL, "1") + field(ONST, "Once") + field(ONVL, "3") + field(TWST, "Continuous") + field(TWVL, "2") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_GainAuto") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_GainAuto") + field(DOL, "1") + field(ZRST, "Off") + field(ZRVL, "1") + field(ONST, "Once") + field(ONVL, "3") + field(TWST, "Continuous") + field(TWVL, "2") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoTarget_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_GainAutoTarget") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoTarget") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_GainAutoTarget") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoMin_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_GainAutoMin") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoMin") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_GainAutoMin") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoMax_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_GainAutoMax") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoMax") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_GainAutoMax") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoRate_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_GainAutoRate") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoRate") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_GainAutoRate") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoOutliers_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_GainAutoOutliers") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoOutliers") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_GainAutoOutliers") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoAdjustTol_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_GainAutoAdjustTol") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoAdjustTol") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_GainAutoAdjustTol") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_BlaLevelSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_BlackLevelSelector") + field(ZRST, "All") + field(ZRVL, "0") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_BlaLevelSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_BlackLevelSelector") + field(DOL, "0") + field(ZRST, "All") + field(ZRVL, "0") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_BlackLevel_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_BlackLevel") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_BlackLevel") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_BlackLevel") + field(PREC, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_BalRatioSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_BalanceRatioSelector") + field(ZRST, "Red") + field(ZRVL, "0") + field(ONST, "Blue") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_BalRatioSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_BalanceRatioSelector") + field(DOL, "0") + field(ZRST, "Red") + field(ZRVL, "0") + field(ONST, "Blue") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_BalanceRatioAbs_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_BalanceRatioAbs") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_BalanceRatioAbs") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_BalanceRatioAbs") + field(PREC, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_BalanceWhiteAuto_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_BalanceWhiteAuto") + field(ZRST, "Off") + field(ZRVL, "1") + field(ONST, "Once") + field(ONVL, "3") + field(TWST, "Continuous") + field(TWVL, "2") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_BalanceWhiteAuto") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_BalanceWhiteAuto") + field(DOL, "1") + field(ZRST, "Off") + field(ZRVL, "1") + field(ONST, "Once") + field(ONVL, "3") + field(TWST, "Continuous") + field(TWVL, "2") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_BalWhiteAutoRate_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_BalanceWhiteAutoRate") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_BalWhiteAutoRate") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_BalanceWhiteAutoRate") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_BalWhiAutAdjTol_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_BalanceWhiteAutoAdjustTol") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_BalWhiAutAdjTol") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_BalanceWhiteAutoAdjustTol") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_IrisMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_IrisMode") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "Video") + field(ONVL, "1") + field(TWST, "VideoOpen") + field(TWVL, "2") + field(THST, "VideoClose") + field(THVL, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_IrisMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_IrisMode") + field(DOL, "0") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "Video") + field(ONVL, "1") + field(TWST, "VideoOpen") + field(TWVL, "2") + field(THST, "VideoClose") + field(THVL, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_IrisAutoTarget_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_IrisAutoTarget") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_IrisAutoTarget") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_IrisAutoTarget") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_IrisVideoLevel_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_IrisVideoLevel") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_IrisVideoLevel") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_IrisVideoLevel") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_IrisVideoLevelMin_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_IrisVideoLevelMin") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_IrisVideoLevelMin") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_IrisVideoLevelMin") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_IrisVideoLevelMax_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_IrisVideoLevelMax") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_IrisVideoLevelMax") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_IrisVideoLevelMax") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_DefMasColEnable_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_DefectMaskColumnEnable") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "Enabled") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_DefMasColEnable") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_DefectMaskColumnEnable") + field(DOL, "0") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "Enabled") + field(ONVL, "1") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_DefMasPixelEnable_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_DefectMaskPixelEnable") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "Enabled") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_DefMasPixelEnable") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_DefectMaskPixelEnable") + field(DOL, "0") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "Enabled") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_VsubValue_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_VsubValue") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_VsubValue") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_VsubValue") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_ColTraSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_ColorTransformationSelector") + field(ZRST, "RGBtoRGB") + field(ZRVL, "0") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_ColTraSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_ColorTransformationSelector") + field(DOL, "0") + field(ZRST, "RGBtoRGB") + field(ZRVL, "0") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_ColTraMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_ColorTransformationMode") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "Manual") + field(ONVL, "1") + field(TWST, "Temp6500K") + field(TWVL, "2") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_ColTraMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_ColorTransformationMode") + field(DOL, "0") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "Manual") + field(ONVL, "1") + field(TWST, "Temp6500K") + field(TWVL, "2") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_ColTraValSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_ColorTransformationValueSelector") + field(ZRST, "Gain00") + field(ZRVL, "0") + field(ONST, "Gain01") + field(ONVL, "1") + field(TWST, "Gain02") + field(TWVL, "2") + field(THST, "Gain10") + field(THVL, "3") + field(FRST, "Gain11") + field(FRVL, "4") + field(FVST, "Gain12") + field(FVVL, "5") + field(SXST, "Gain20") + field(SXVL, "6") + field(SVST, "Gain21") + field(SVVL, "7") + field(EIST, "Gain22") + field(EIVL, "8") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_ColTraValSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_ColorTransformationValueSelector") + field(DOL, "0") + field(ZRST, "Gain00") + field(ZRVL, "0") + field(ONST, "Gain01") + field(ONVL, "1") + field(TWST, "Gain02") + field(TWVL, "2") + field(THST, "Gain10") + field(THVL, "3") + field(FRST, "Gain11") + field(FRVL, "4") + field(FVST, "Gain12") + field(FVVL, "5") + field(SXST, "Gain20") + field(SXVL, "6") + field(SVST, "Gain21") + field(SVVL, "7") + field(EIST, "Gain22") + field(EIVL, "8") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ColTraValue_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_ColorTransformationValue") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ColTraValue") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_ColorTransformationValue") + field(PREC, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_LUTSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_LUTSelector") + field(ZRST, "LUT1") + field(ZRVL, "0") + field(ONST, "LUT2") + field(ONVL, "1") + field(TWST, "LUT3") + field(TWVL, "2") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_LUTSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_LUTSelector") + field(DOL, "0") + field(ZRST, "LUT1") + field(ZRVL, "0") + field(ONST, "LUT2") + field(ONVL, "1") + field(TWST, "LUT3") + field(TWVL, "2") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_LUTMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_LUTMode") + field(ZRST, "Luminance") + field(ZRVL, "0") + field(ONST, "Red") + field(ONVL, "1") + field(TWST, "Green") + field(TWVL, "2") + field(THST, "Blue") + field(THVL, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_LUTMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_LUTMode") + field(DOL, "0") + field(ZRST, "Luminance") + field(ZRVL, "0") + field(ONST, "Red") + field(ONVL, "1") + field(TWST, "Green") + field(TWVL, "2") + field(THST, "Blue") + field(THVL, "3") + field(DISA, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:CAM:GC_LUTEnable_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_B_LUTEnable") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(bo, "S03SIM-EA-FSCN-01:CAM:GC_LUTEnable") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_B_LUTEnable") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_LUTIndex_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_LUTIndex") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_LUTIndex") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_LUTIndex") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_LUTValue_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_LUTValue") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_LUTValue") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_LUTValue") + field(DISA, "0") +} + +record(longout, "S03SIM-EA-FSCN-01:CAM:GC_LUTLoad") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_C_LUTLoad") + field(DISA, "0") +} + +record(longout, "S03SIM-EA-FSCN-01:CAM:GC_LUTSave") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_C_LUTSave") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_LUTBitDepthIn_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_LUTBitDepthIn") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_LUTBitDepthIn") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_LUTBitDepthIn") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_LUTBitDepthOut_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_LUTBitDepthOut") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_LUTBitDepthOut") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_LUTBitDepthOut") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_LUTAddress_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_LUTAddress") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_LUTAddress") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_LUTAddress") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_LUTSizeBytes_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_LUTSizeBytes") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_LUTSizeBytes") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_LUTSizeBytes") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_SyncInLevels_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_SyncInLevels") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_SyncInLevels") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_SyncInLevels") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_SyncInSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_SyncInSelector") + field(ZRST, "SyncIn1") + field(ZRVL, "0") + field(ONST, "SyncIn2") + field(ONVL, "1") + field(TWST, "SyncIn3") + field(TWVL, "2") + field(THST, "SyncIn4") + field(THVL, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_SyncInSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_SyncInSelector") + field(DOL, "0") + field(ZRST, "SyncIn1") + field(ZRVL, "0") + field(ONST, "SyncIn2") + field(ONVL, "1") + field(TWST, "SyncIn3") + field(TWVL, "2") + field(THST, "SyncIn4") + field(THVL, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_SynInGlitchFilter_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_SyncInGlitchFilter") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_SynInGlitchFilter") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_SyncInGlitchFilter") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutLevels_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_SyncOutLevels") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutLevels") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_SyncOutLevels") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_SyncOutSelector") + field(ZRST, "SyncOut1") + field(ZRVL, "0") + field(ONST, "SyncOut2") + field(ONVL, "1") + field(TWST, "SyncOut3") + field(TWVL, "2") + field(THST, "SyncOut4") + field(THVL, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_SyncOutSelector") + field(DOL, "0") + field(ZRST, "SyncOut1") + field(ZRVL, "0") + field(ONST, "SyncOut2") + field(ONVL, "1") + field(TWST, "SyncOut3") + field(TWVL, "2") + field(THST, "SyncOut4") + field(THVL, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutSource_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_SyncOutSource") + field(ZRST, "GPO") + field(ZRVL, "0") + field(ONST, "AcquisitionTrigg") + field(ONVL, "1") + field(TWST, "FrameTriggerRead") + field(TWVL, "2") + field(THST, "FrameTrigger") + field(THVL, "3") + field(FRST, "Exposing") + field(FRVL, "4") + field(FVST, "FrameReadout") + field(FVVL, "5") + field(SXST, "Imaging") + field(SXVL, "6") + field(SVST, "Acquiring") + field(SVVL, "7") + field(EIST, "LineIn1") + field(EIVL, "8") + field(NIST, "LineIn2") + field(NIVL, "9") + field(TEST, "Strobe1") + field(TEVL, "12") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutSource") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_SyncOutSource") + field(DOL, "0") + field(ZRST, "GPO") + field(ZRVL, "0") + field(ONST, "AcquisitionTrigg") + field(ONVL, "1") + field(TWST, "FrameTriggerRead") + field(TWVL, "2") + field(THST, "FrameTrigger") + field(THVL, "3") + field(FRST, "Exposing") + field(FRVL, "4") + field(FVST, "FrameReadout") + field(FVVL, "5") + field(SXST, "Imaging") + field(SXVL, "6") + field(SVST, "Acquiring") + field(SVVL, "7") + field(EIST, "LineIn1") + field(EIVL, "8") + field(NIST, "LineIn2") + field(NIVL, "9") + field(TEST, "Strobe1") + field(TEVL, "12") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutPolarity_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_SyncOutPolarity") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Invert") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutPolarity") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_SyncOutPolarity") + field(DOL, "0") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Invert") + field(ONVL, "1") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_StrobeSource_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_StrobeSource") + field(ZRST, "AcquisitionTrigg") + field(ZRVL, "1") + field(ONST, "FrameTriggerRead") + field(ONVL, "2") + field(TWST, "FrameTrigger") + field(TWVL, "3") + field(THST, "Exposing") + field(THVL, "4") + field(FRST, "FrameReadout") + field(FRVL, "5") + field(FVST, "Acquiring") + field(FVVL, "7") + field(SXST, "LineIn1") + field(SXVL, "8") + field(SVST, "LineIn2") + field(SVVL, "9") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_StrobeSource") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_StrobeSource") + field(DOL, "1") + field(ZRST, "AcquisitionTrigg") + field(ZRVL, "1") + field(ONST, "FrameTriggerRead") + field(ONVL, "2") + field(TWST, "FrameTrigger") + field(TWVL, "3") + field(THST, "Exposing") + field(THVL, "4") + field(FRST, "FrameReadout") + field(FRVL, "5") + field(FVST, "Acquiring") + field(FVVL, "7") + field(SXST, "LineIn1") + field(SXVL, "8") + field(SVST, "LineIn2") + field(SVVL, "9") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_StrDurationMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_StrobeDurationMode") + field(ZRST, "Source") + field(ZRVL, "0") + field(ONST, "Controlled") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_StrDurationMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_StrobeDurationMode") + field(DOL, "0") + field(ZRST, "Source") + field(ZRVL, "0") + field(ONST, "Controlled") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_StrobeDelay_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_StrobeDelay") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_StrobeDelay") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_StrobeDelay") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_StrobeDuration_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_StrobeDuration") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_StrobeDuration") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_StrobeDuration") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_EventSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_EventSelector") + field(ZRST, "AcquisitionStart") + field(ZRVL, "40000") + field(ONST, "AcquisitionEnd") + field(ONVL, "40001") + field(TWST, "FrameTrigger") + field(TWVL, "40002") + field(THST, "ExposureEnd") + field(THVL, "40003") + field(FRST, "AcquisitionRecor") + field(FRVL, "40004") + field(FVST, "Line1RisingEdge") + field(FVVL, "40010") + field(SXST, "Line1FallingEdge") + field(SXVL, "40011") + field(SVST, "Line2RisingEdge") + field(SVVL, "40012") + field(EIST, "Line2FallingEdge") + field(EIVL, "40013") + field(NIST, "Line3RisingEdge") + field(NIVL, "40014") + field(TEST, "Line3FallingEdge") + field(TEVL, "40015") + field(ELST, "Line4RisingEdge") + field(ELVL, "40016") + field(TVST, "Line4FallingEdge") + field(TVVL, "40017") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_EventSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_EventSelector") + field(DOL, "40000") + field(ZRST, "AcquisitionStart") + field(ZRVL, "40000") + field(ONST, "AcquisitionEnd") + field(ONVL, "40001") + field(TWST, "FrameTrigger") + field(TWVL, "40002") + field(THST, "ExposureEnd") + field(THVL, "40003") + field(FRST, "AcquisitionRecor") + field(FRVL, "40004") + field(FVST, "Line1RisingEdge") + field(FVVL, "40010") + field(SXST, "Line1FallingEdge") + field(SXVL, "40011") + field(SVST, "Line2RisingEdge") + field(SVVL, "40012") + field(EIST, "Line2FallingEdge") + field(EIVL, "40013") + field(NIST, "Line3RisingEdge") + field(NIVL, "40014") + field(TEST, "Line3FallingEdge") + field(TEVL, "40015") + field(ELST, "Line4RisingEdge") + field(ELVL, "40016") + field(TVST, "Line4FallingEdge") + field(TVVL, "40017") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_EventNotification_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_EventNotification") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_EventNotification") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_EventNotification") + field(DOL, "0") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EventsEnable1_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventsEnable1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EventsEnable1") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventsEnable1") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveAcqStart_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventAcquisitionStart") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveAcqStart") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventAcquisitionStart") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveAcquisitionEnd_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventAcquisitionEnd") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveAcquisitionEnd") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventAcquisitionEnd") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EventFrameTrigger_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventFrameTrigger") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EventFrameTrigger") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventFrameTrigger") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EventExposureEnd_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventExposureEnd") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EventExposureEnd") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventExposureEnd") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveAcqRecTrigger_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventAcquisitionRecordTrigger") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveAcqRecTrigger") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventAcquisitionRecordTrigger") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveLinRisingEdge_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine1RisingEdge") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveLinRisingEdge") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine1RisingEdge") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveLinFallingEdge_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine1FallingEdge") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveLinFallingEdge") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine1FallingEdge") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveLinRisingEdg0_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine2RisingEdge") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveLinRisingEdg0") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine2RisingEdge") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveLinFallingEdg0_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine2FallingEdge") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveLinFallingEdg0") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine2FallingEdge") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveLinRisingEdg1_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine3RisingEdge") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveLinRisingEdg1") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine3RisingEdge") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveLinFallingEdg1_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine3FallingEdge") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveLinFallingEdg1") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine3FallingEdge") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveLinRisingEdg2_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine4RisingEdge") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveLinRisingEdg2") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine4RisingEdge") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveLinFallingEdg2_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine4FallingEdge") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveLinFallingEdg2") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine4FallingEdge") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EventOverflow_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventOverflow") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EventOverflow") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventOverflow") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EventError_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventError") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EventError") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventError") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_UserSetSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_UserSetSelector") + field(ZRST, "Default") + field(ZRVL, "0") + field(ONST, "UserSet1") + field(ONVL, "1") + field(TWST, "UserSet2") + field(TWVL, "2") + field(THST, "UserSet3") + field(THVL, "3") + field(FRST, "UserSet4") + field(FRVL, "4") + field(FVST, "UserSet5") + field(FVVL, "5") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_UserSetSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_UserSetSelector") + field(DOL, "0") + field(ZRST, "Default") + field(ZRVL, "0") + field(ONST, "UserSet1") + field(ONVL, "1") + field(TWST, "UserSet2") + field(TWVL, "2") + field(THST, "UserSet3") + field(THVL, "3") + field(FRST, "UserSet4") + field(FRVL, "4") + field(FVST, "UserSet5") + field(FVVL, "5") + field(DISA, "0") +} + +record(longout, "S03SIM-EA-FSCN-01:CAM:GC_UserSetLoad") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_C_UserSetLoad") + field(DISA, "0") +} + +record(longout, "S03SIM-EA-FSCN-01:CAM:GC_UserSetSave") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_C_UserSetSave") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_UseSetDefSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_UserSetDefaultSelector") + field(ZRST, "Default") + field(ZRVL, "0") + field(ONST, "UserSet1") + field(ONVL, "1") + field(TWST, "UserSet2") + field(TWVL, "2") + field(THST, "UserSet3") + field(THVL, "3") + field(FRST, "UserSet4") + field(FRVL, "4") + field(FVST, "UserSet5") + field(FVVL, "5") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_UseSetDefSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_UserSetDefaultSelector") + field(DOL, "0") + field(ZRST, "Default") + field(ZRVL, "0") + field(ONST, "UserSet1") + field(ONVL, "1") + field(TWST, "UserSet2") + field(TWVL, "2") + field(THST, "UserSet3") + field(THVL, "3") + field(FRST, "UserSet4") + field(FRVL, "4") + field(FVST, "UserSet5") + field(FVVL, "5") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_LensVoltage_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_LensVoltage") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_LensVoltage") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_LensVoltage") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_LenVoltageControl_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_LensVoltageControl") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_LenVoltageControl") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_LensVoltageControl") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_LensDriveCommand_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_LensDriveCommand") + field(ZRST, "Stop") + field(ZRVL, "0") + field(ONST, "IrisTimedOpen") + field(ONVL, "1") + field(TWST, "IrisTimedClose") + field(TWVL, "2") + field(THST, "FocusTimedNear") + field(THVL, "3") + field(FRST, "FocusTimedFar") + field(FRVL, "4") + field(FVST, "ZoomTimedIn") + field(FVVL, "5") + field(SXST, "ZoomTimedOut") + field(SXVL, "6") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_LensDriveCommand") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_LensDriveCommand") + field(DOL, "0") + field(ZRST, "Stop") + field(ZRVL, "0") + field(ONST, "IrisTimedOpen") + field(ONVL, "1") + field(TWST, "IrisTimedClose") + field(TWVL, "2") + field(THST, "FocusTimedNear") + field(THVL, "3") + field(FRST, "FocusTimedFar") + field(FRVL, "4") + field(FVST, "ZoomTimedIn") + field(FVVL, "5") + field(SXST, "ZoomTimedOut") + field(SXVL, "6") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_LensDriveDuration_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_LensDriveDuration") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_LensDriveDuration") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_LensDriveDuration") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_PvDumTriSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_PvDummyTriggerSelector") + field(ZRST, "FrameStart") + field(ZRVL, "0") + field(ONST, "AcquisitionStart") + field(ONVL, "3") + field(TWST, "AcquisitionEnd") + field(TWVL, "4") + field(THST, "AcquisitionRecor") + field(THVL, "6") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_PvDumTriSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_PvDummyTriggerSelector") + field(DOL, "0") + field(ZRST, "FrameStart") + field(ZRVL, "0") + field(ONST, "AcquisitionStart") + field(ONVL, "3") + field(TWST, "AcquisitionEnd") + field(TWVL, "4") + field(THST, "AcquisitionRecor") + field(THVL, "6") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_PvDumFraStaTriMod_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_PvDummyFrameStartTriggerMode") + field(ZRST, "Freerun") + field(ZRVL, "2147483648") + field(ONST, "SyncIn1") + field(ONVL, "2147483649") + field(TWST, "SyncIn2") + field(TWVL, "2147483650") + field(THST, "SyncIn3") + field(THVL, "2147483651") + field(FRST, "SyncIn4") + field(FRVL, "2147483652") + field(FVST, "FixedRate") + field(FVVL, "2147483653") + field(SXST, "Software") + field(SXVL, "2147483654") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_PvDumFraStaTriMod") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_PvDummyFrameStartTriggerMode") + field(DOL, "2147483648") + field(ZRST, "Freerun") + field(ZRVL, "2147483648") + field(ONST, "SyncIn1") + field(ONVL, "2147483649") + field(TWST, "SyncIn2") + field(TWVL, "2147483650") + field(THST, "SyncIn3") + field(THVL, "2147483651") + field(FRST, "SyncIn4") + field(FRVL, "2147483652") + field(FVST, "FixedRate") + field(FVVL, "2147483653") + field(SXST, "Software") + field(SXVL, "2147483654") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_PvDumTriggerMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_PvDummyTriggerMode") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "SyncIn1") + field(ONVL, "2147483649") + field(TWST, "SyncIn2") + field(TWVL, "2147483650") + field(THST, "SyncIn3") + field(THVL, "2147483651") + field(FRST, "SyncIn4") + field(FRVL, "2147483652") + field(FVST, "FixedRate") + field(FVVL, "2147483653") + field(SXST, "Software") + field(SXVL, "2147483654") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_PvDumTriggerMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_PvDummyTriggerMode") + field(DOL, "0") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "SyncIn1") + field(ONVL, "2147483649") + field(TWST, "SyncIn2") + field(TWVL, "2147483650") + field(THST, "SyncIn3") + field(THVL, "2147483651") + field(FRST, "SyncIn4") + field(FRVL, "2147483652") + field(FVST, "FixedRate") + field(FVVL, "2147483653") + field(SXST, "Software") + field(SXVL, "2147483654") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_FraStaTriDelay_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_FrameStartTriggerDelay") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_FraStaTriDelay") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_FrameStartTriggerDelay") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ExposureValue_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureValue") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ExposureValue") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureValue") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_TimeStampValueLo_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_TimeStampValueLo") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_TimeStampValueLo") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_TimeStampValueLo") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_TimeStampValueHi_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_TimeStampValueHi") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_TimeStampValueHi") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_TimeStampValueHi") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_WhitebalValueRed_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_WhitebalValueRed") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_WhitebalValueRed") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_WhitebalValueRed") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_WhitebalValueBlue_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_WhitebalValueBlue") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_WhitebalValueBlue") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_WhitebalValueBlue") + field(DISA, "0") +} + +record(stringin, "S03SIM-EA-FSCN-01:CAM:GC_ModelName_RBV") { + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_S_ModelName") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GainValue_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_GainValue") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GainValue") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_GainValue") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_PvGainAutoMin_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_PvGainAutoMin") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_PvGainAutoMin") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_PvGainAutoMin") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_PvGainAutoMax_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_PvGainAutoMax") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_PvGainAutoMax") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_PvGainAutoMax") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_OffsetValue_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_OffsetValue") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_OffsetValue") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_OffsetValue") + field(DISA, "0") +} + +# Macros: +#% macro, P, Device Prefix +#% macro, R, Device Suffix +#% macro, PORT, Asyn Port name +#% macro, TIMEOUT, Timeout, default=1 +#% macro, ADDR, Asyn Port address, default=0 +#% gui, FSCN2.CAM, edmtab, ADGenICam.edl, P=S03SIM-EA-FSCN-02,R=:CAM:,C=AVT_Manta_G125B + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_FirmwareVerMajor_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_FirmwareVerMajor") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_FirmwareVerMajor") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_FirmwareVerMajor") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_FirmwareVerMinor_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_FirmwareVerMinor") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_FirmwareVerMinor") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_FirmwareVerMinor") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_FirmwareVerBuild_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_FirmwareVerBuild") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_FirmwareVerBuild") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_FirmwareVerBuild") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_SensorType_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_SensorType") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_SensorType") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_SensorType") + field(DOL, "0") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_SensorBits_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_SensorBits") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_SensorBits") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_SensorBits") + field(DISA, "0") +} + +record(stringin, "S03SIM-EA-FSCN-02:CAM:GC_DeviceVendorName_RBV") { + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_S_DeviceVendorName") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(stringin, "S03SIM-EA-FSCN-02:CAM:GC_DeviceModelName_RBV") { + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_S_DeviceModelName") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(stringin, "S03SIM-EA-FSCN-02:CAM:GC_DevFirVersion_RBV") { + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_S_DeviceFirmwareVersion") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(stringin, "S03SIM-EA-FSCN-02:CAM:GC_DeviceID_RBV") { + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_S_DeviceID") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(stringin, "S03SIM-EA-FSCN-02:CAM:GC_DevicePartNumber_RBV") { + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_S_DevicePartNumber") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_DeviceScanType_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_DeviceScanType") + field(ZRST, "Areascan") + field(ZRVL, "0") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_DeviceScanType") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_DeviceScanType") + field(DOL, "0") + field(ZRST, "Areascan") + field(ZRVL, "0") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_StrBytesPerSecond_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_StreamBytesPerSecond") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_StrBytesPerSecond") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_StreamBytesPerSecond") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_BanControlMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_BandwidthControlMode") + field(ZRST, "StreamBytesPerSe") + field(ZRVL, "0") + field(ONST, "SCPD") + field(ONVL, "1") + field(TWST, "Both") + field(TWVL, "2") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_BanControlMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_BandwidthControlMode") + field(DOL, "0") + field(ZRST, "StreamBytesPerSe") + field(ZRVL, "0") + field(ONST, "SCPD") + field(ONVL, "1") + field(TWST, "Both") + field(TWVL, "2") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GevSCPSPacketSize_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_GevSCPSPacketSize") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GevSCPSPacketSize") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_GevSCPSPacketSize") + field(DISA, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:CAM:GC_ChunkModeActive_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_B_ChunkModeActive") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(bo, "S03SIM-EA-FSCN-02:CAM:GC_ChunkModeActive") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_B_ChunkModeActive") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_PayloadSize_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_PayloadSize") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_PayloadSize") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_PayloadSize") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_NonImaPayloadSize_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_NonImagePayloadSize") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_NonImaPayloadSize") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_NonImagePayloadSize") + field(DISA, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:CAM:GC_StrFraRatCon_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_B_StreamFrameRateConstrain") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(bo, "S03SIM-EA-FSCN-02:CAM:GC_StrFraRatCon") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_B_StreamFrameRateConstrain") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_StreamHoldEnable_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_StreamHoldEnable") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_StreamHoldEnable") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_StreamHoldEnable") + field(DOL, "0") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_StrHoldCapacity_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_StreamHoldCapacity") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_StrHoldCapacity") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_StreamHoldCapacity") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GevTimTicFre_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_GevTimestampTickFrequency") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GevTimTicFre") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_GevTimestampTickFrequency") + field(DISA, "0") +} + +record(longout, "S03SIM-EA-FSCN-02:CAM:GC_GevTimConLatch") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_C_GevTimestampControlLatch") + field(DISA, "0") +} + +record(longout, "S03SIM-EA-FSCN-02:CAM:GC_GevTimConReset") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_C_GevTimestampControlReset") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GevTimestampValue_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_GevTimestampValue") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GevTimestampValue") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_GevTimestampValue") + field(DISA, "0") +} + +record(longout, "S03SIM-EA-FSCN-02:CAM:GC_AcquisitionStart") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_C_AcquisitionStart") + field(DISA, "0") +} + +record(longout, "S03SIM-EA-FSCN-02:CAM:GC_AcquisitionStop") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_C_AcquisitionStop") + field(DISA, "0") +} + +record(longout, "S03SIM-EA-FSCN-02:CAM:GC_AcquisitionAbort") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_C_AcquisitionAbort") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_AcquisitionMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_AcquisitionMode") + field(ZRST, "Continuous") + field(ZRVL, "1") + field(ONST, "SingleFrame") + field(ONVL, "2") + field(TWST, "MultiFrame") + field(TWVL, "3") + field(THST, "Recorder") + field(THVL, "4") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_AcquisitionMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_AcquisitionMode") + field(DOL, "1") + field(ZRST, "Continuous") + field(ZRVL, "1") + field(ONST, "SingleFrame") + field(ONVL, "2") + field(TWST, "MultiFrame") + field(TWVL, "3") + field(THST, "Recorder") + field(THVL, "4") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_AcqFrameCount_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_AcquisitionFrameCount") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_AcqFrameCount") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_AcquisitionFrameCount") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_AcqFrameRateAbs_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_AcquisitionFrameRateAbs") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_AcqFrameRateAbs") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_AcquisitionFrameRateAbs") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_AcqFrameRateLimit_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_AcquisitionFrameRateLimit") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_AcqFrameRateLimit") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_AcquisitionFrameRateLimit") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_RecPreEventCount_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_RecorderPreEventCount") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_RecPreEventCount") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_RecorderPreEventCount") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_TriggerSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_TriggerSelector") + field(ZRST, "FrameStart") + field(ZRVL, "0") + field(ONST, "AcquisitionStart") + field(ONVL, "3") + field(TWST, "AcquisitionEnd") + field(TWVL, "4") + field(THST, "AcquisitionRecor") + field(THVL, "6") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_TriggerSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_TriggerSelector") + field(DOL, "0") + field(ZRST, "FrameStart") + field(ZRVL, "0") + field(ONST, "AcquisitionStart") + field(ONVL, "3") + field(TWST, "AcquisitionEnd") + field(TWVL, "4") + field(THST, "AcquisitionRecor") + field(THVL, "6") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_TriggerMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_TriggerMode") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_TriggerMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_TriggerMode") + field(DOL, "0") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On") + field(ONVL, "1") + field(DISA, "0") +} + +record(longout, "S03SIM-EA-FSCN-02:CAM:GC_TriggerSoftware") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_C_TriggerSoftware") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_TriggerSource_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_TriggerSource") + field(ZRST, "Freerun") + field(ZRVL, "0") + field(ONST, "Line1") + field(ONVL, "1") + field(TWST, "Line2") + field(TWVL, "2") + field(THST, "Line3") + field(THVL, "3") + field(FRST, "Line4") + field(FRVL, "4") + field(FVST, "FixedRate") + field(FVVL, "5") + field(SXST, "Software") + field(SXVL, "6") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_TriggerSource") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_TriggerSource") + field(DOL, "0") + field(ZRST, "Freerun") + field(ZRVL, "0") + field(ONST, "Line1") + field(ONVL, "1") + field(TWST, "Line2") + field(TWVL, "2") + field(THST, "Line3") + field(THVL, "3") + field(FRST, "Line4") + field(FRVL, "4") + field(FVST, "FixedRate") + field(FVVL, "5") + field(SXST, "Software") + field(SXVL, "6") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_TriggerActivation_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_TriggerActivation") + field(ZRST, "RisingEdge") + field(ZRVL, "0") + field(ONST, "FallingEdge") + field(ONVL, "1") + field(TWST, "AnyEdge") + field(TWVL, "2") + field(THST, "LevelHigh") + field(THVL, "3") + field(FRST, "LevelLow") + field(FRVL, "4") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_TriggerActivation") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_TriggerActivation") + field(DOL, "0") + field(ZRST, "RisingEdge") + field(ZRVL, "0") + field(ONST, "FallingEdge") + field(ONVL, "1") + field(TWST, "AnyEdge") + field(TWVL, "2") + field(THST, "LevelHigh") + field(THVL, "3") + field(FRST, "LevelLow") + field(FRVL, "4") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_TriggerOverlap_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_TriggerOverlap") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "ReadOut") + field(ONVL, "1") + field(TWST, "PreviousFrame") + field(TWVL, "2") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_TriggerOverlap") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_TriggerOverlap") + field(DOL, "0") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "ReadOut") + field(ONVL, "1") + field(TWST, "PreviousFrame") + field(TWVL, "2") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_TriggerDelayAbs_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_TriggerDelayAbs") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_TriggerDelayAbs") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_TriggerDelayAbs") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_SensorWidth_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_SensorWidth") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_SensorWidth") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_SensorWidth") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_SensorHeight_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_SensorHeight") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_SensorHeight") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_SensorHeight") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_BinningHorizontal_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_BinningHorizontal") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_BinningHorizontal") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_BinningHorizontal") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_BinningVertical_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_BinningVertical") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_BinningVertical") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_BinningVertical") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_DecHorizontal_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_DecimationHorizontal") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_DecHorizontal") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_DecimationHorizontal") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_DecVertical_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_DecimationVertical") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_DecVertical") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_DecimationVertical") + field(DISA, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:CAM:GC_ReverseX_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_B_ReverseX") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(bo, "S03SIM-EA-FSCN-02:CAM:GC_ReverseX") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_B_ReverseX") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_WidthMax_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_WidthMax") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_WidthMax") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_WidthMax") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_HeightMax_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_HeightMax") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_HeightMax") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_HeightMax") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_PixelFormat_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_PixelFormat") + field(ZRST, "Mono8") + field(ZRVL, "0x01080001") + field(ONST, "Mono10") + field(ONVL, "0x01100003") + field(TWST, "Mono12") + field(TWVL, "0x01100005") + field(THST, "Mono12Packed") + field(THVL, "0x010C0006") + field(FRST, "Mono14") + field(FRVL, "0x01100025") + field(FVST, "BayerGR8") + field(FVVL, "0x01080008") + field(SXST, "BayerRG8") + field(SXVL, "0x01080009") + field(SVST, "BayerBG8") + field(SVVL, "0x0108000B") + field(EIST, "BayerBG10") + field(EIVL, "0x0110000F") + field(NIST, "BayerGR12") + field(NIVL, "0x01100010") + field(TEST, "BayerRG12") + field(TEVL, "0x01100011") + field(ELST, "BayerGR12Packed") + field(ELVL, "0x010C002A") + field(TVST, "BayerRG12Packed") + field(TVVL, "0x010C002B") + field(TTST, "RGB8Packed") + field(TTVL, "0x02180014") + field(FTST, "BGR8Packed") + field(FTVL, "0x02180015") + field(FFST, "RGBA8Packed") + field(FFVL, "0x02200016") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_PixelFormat") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_PixelFormat") + field(DOL, "0x01080001") + field(ZRST, "Mono8") + field(ZRVL, "0x01080001") + field(ONST, "Mono10") + field(ONVL, "0x01100003") + field(TWST, "Mono12") + field(TWVL, "0x01100005") + field(THST, "Mono12Packed") + field(THVL, "0x010C0006") + field(FRST, "Mono14") + field(FRVL, "0x01100025") + field(FVST, "BayerGR8") + field(FVVL, "0x01080008") + field(SXST, "BayerRG8") + field(SXVL, "0x01080009") + field(SVST, "BayerBG8") + field(SVVL, "0x0108000B") + field(EIST, "BayerBG10") + field(EIVL, "0x0110000F") + field(NIST, "BayerGR12") + field(NIVL, "0x01100010") + field(TEST, "BayerRG12") + field(TEVL, "0x01100011") + field(ELST, "BayerGR12Packed") + field(ELVL, "0x010C002A") + field(TVST, "BayerRG12Packed") + field(TVVL, "0x010C002B") + field(TTST, "RGB8Packed") + field(TTVL, "0x02180014") + field(FTST, "BGR8Packed") + field(FTVL, "0x02180015") + field(FFST, "RGBA8Packed") + field(FFVL, "0x02200016") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_Width_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_Width") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_Width") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_Width") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_Height_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_Height") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_Height") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_Height") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_OffsetX_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_OffsetX") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_OffsetX") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_OffsetX") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_OffsetY_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_OffsetY") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_OffsetY") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_OffsetY") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ImageSize_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_ImageSize") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ImageSize") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_ImageSize") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_Gamma_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_Gamma") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_Gamma") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_Gamma") + field(PREC, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_NirMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_NirMode") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On_HighQuality") + field(ONVL, "1") + field(TWST, "On_Fast") + field(TWVL, "2") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_NirMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_NirMode") + field(DOL, "0") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On_HighQuality") + field(ONVL, "1") + field(TWST, "On_Fast") + field(TWVL, "2") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_Hue_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_Hue") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_Hue") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_Hue") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_Saturation_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_Saturation") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_Saturation") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_Saturation") + field(PREC, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_EdgeFilter_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_EdgeFilter") + field(ZRST, "Smooth2") + field(ZRVL, "14") + field(ONST, "Smooth1") + field(ONVL, "15") + field(TWST, "Off") + field(TWVL, "16") + field(THST, "Sharpen1") + field(THVL, "17") + field(FRST, "Sharpen2") + field(FRVL, "18") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_EdgeFilter") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_EdgeFilter") + field(DOL, "14") + field(ZRST, "Smooth2") + field(ZRVL, "14") + field(ONST, "Smooth1") + field(ONVL, "15") + field(TWST, "Off") + field(TWVL, "16") + field(THST, "Sharpen1") + field(THVL, "17") + field(FRST, "Sharpen2") + field(FRVL, "18") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_DSPSubregionLeft_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_DSPSubregionLeft") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_DSPSubregionLeft") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_DSPSubregionLeft") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_DSPSubregionTop_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_DSPSubregionTop") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_DSPSubregionTop") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_DSPSubregionTop") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_DSPSubregionRight_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_DSPSubregionRight") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_DSPSubregionRight") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_DSPSubregionRight") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_DSPSubBottom_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_DSPSubregionBottom") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_DSPSubBottom") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_DSPSubregionBottom") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_ExposureMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_ExposureMode") + field(ZRST, "Timed") + field(ZRVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_ExposureMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_ExposureMode") + field(DOL, "1") + field(ZRST, "Timed") + field(ZRVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ExposureTimeAbs_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_ExposureTimeAbs") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ExposureTimeAbs") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_ExposureTimeAbs") + field(PREC, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAuto_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_ExposureAuto") + field(ZRST, "Off") + field(ZRVL, "1") + field(ONST, "Once") + field(ONVL, "3") + field(TWST, "Continuous") + field(TWVL, "2") + field(THST, "other") + field(THVL, "4") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAuto") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_ExposureAuto") + field(DOL, "1") + field(ZRST, "Off") + field(ZRVL, "1") + field(ONST, "Once") + field(ONVL, "3") + field(TWST, "Continuous") + field(TWVL, "2") + field(THST, "other") + field(THVL, "4") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ExpAutoTarget_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoTarget") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ExpAutoTarget") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoTarget") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAutoAlg_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_ExposureAutoAlg") + field(ZRST, "Mean") + field(ZRVL, "0") + field(ONST, "FitRange") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAutoAlg") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_ExposureAutoAlg") + field(DOL, "0") + field(ZRST, "Mean") + field(ZRVL, "0") + field(ONST, "FitRange") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAutoMin_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoMin") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAutoMin") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoMin") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAutoMax_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoMax") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAutoMax") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoMax") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAutoRate_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoRate") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAutoRate") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoRate") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ExpAutoOutliers_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoOutliers") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ExpAutoOutliers") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoOutliers") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ExpAutoAdjustTol_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoAdjustTol") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ExpAutoAdjustTol") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoAdjustTol") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_GainSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_GainSelector") + field(ZRST, "All") + field(ZRVL, "0") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_GainSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_GainSelector") + field(DOL, "0") + field(ZRST, "All") + field(ZRVL, "0") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_Gain_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_Gain") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_Gain") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_Gain") + field(PREC, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_GainAuto_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_GainAuto") + field(ZRST, "Off") + field(ZRVL, "1") + field(ONST, "Once") + field(ONVL, "3") + field(TWST, "Continuous") + field(TWVL, "2") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_GainAuto") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_GainAuto") + field(DOL, "1") + field(ZRST, "Off") + field(ZRVL, "1") + field(ONST, "Once") + field(ONVL, "3") + field(TWST, "Continuous") + field(TWVL, "2") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoTarget_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_GainAutoTarget") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoTarget") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_GainAutoTarget") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoMin_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_GainAutoMin") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoMin") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_GainAutoMin") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoMax_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_GainAutoMax") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoMax") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_GainAutoMax") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoRate_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_GainAutoRate") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoRate") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_GainAutoRate") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoOutliers_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_GainAutoOutliers") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoOutliers") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_GainAutoOutliers") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoAdjustTol_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_GainAutoAdjustTol") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoAdjustTol") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_GainAutoAdjustTol") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_BlaLevelSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_BlackLevelSelector") + field(ZRST, "All") + field(ZRVL, "0") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_BlaLevelSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_BlackLevelSelector") + field(DOL, "0") + field(ZRST, "All") + field(ZRVL, "0") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_BlackLevel_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_BlackLevel") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_BlackLevel") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_BlackLevel") + field(PREC, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_BalRatioSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_BalanceRatioSelector") + field(ZRST, "Red") + field(ZRVL, "0") + field(ONST, "Blue") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_BalRatioSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_BalanceRatioSelector") + field(DOL, "0") + field(ZRST, "Red") + field(ZRVL, "0") + field(ONST, "Blue") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_BalanceRatioAbs_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_BalanceRatioAbs") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_BalanceRatioAbs") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_BalanceRatioAbs") + field(PREC, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_BalanceWhiteAuto_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_BalanceWhiteAuto") + field(ZRST, "Off") + field(ZRVL, "1") + field(ONST, "Once") + field(ONVL, "3") + field(TWST, "Continuous") + field(TWVL, "2") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_BalanceWhiteAuto") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_BalanceWhiteAuto") + field(DOL, "1") + field(ZRST, "Off") + field(ZRVL, "1") + field(ONST, "Once") + field(ONVL, "3") + field(TWST, "Continuous") + field(TWVL, "2") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_BalWhiteAutoRate_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_BalanceWhiteAutoRate") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_BalWhiteAutoRate") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_BalanceWhiteAutoRate") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_BalWhiAutAdjTol_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_BalanceWhiteAutoAdjustTol") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_BalWhiAutAdjTol") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_BalanceWhiteAutoAdjustTol") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_IrisMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_IrisMode") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "Video") + field(ONVL, "1") + field(TWST, "VideoOpen") + field(TWVL, "2") + field(THST, "VideoClose") + field(THVL, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_IrisMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_IrisMode") + field(DOL, "0") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "Video") + field(ONVL, "1") + field(TWST, "VideoOpen") + field(TWVL, "2") + field(THST, "VideoClose") + field(THVL, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_IrisAutoTarget_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_IrisAutoTarget") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_IrisAutoTarget") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_IrisAutoTarget") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_IrisVideoLevel_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_IrisVideoLevel") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_IrisVideoLevel") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_IrisVideoLevel") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_IrisVideoLevelMin_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_IrisVideoLevelMin") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_IrisVideoLevelMin") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_IrisVideoLevelMin") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_IrisVideoLevelMax_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_IrisVideoLevelMax") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_IrisVideoLevelMax") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_IrisVideoLevelMax") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_DefMasColEnable_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_DefectMaskColumnEnable") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "Enabled") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_DefMasColEnable") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_DefectMaskColumnEnable") + field(DOL, "0") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "Enabled") + field(ONVL, "1") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_DefMasPixelEnable_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_DefectMaskPixelEnable") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "Enabled") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_DefMasPixelEnable") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_DefectMaskPixelEnable") + field(DOL, "0") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "Enabled") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_VsubValue_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_VsubValue") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_VsubValue") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_VsubValue") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_ColTraSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_ColorTransformationSelector") + field(ZRST, "RGBtoRGB") + field(ZRVL, "0") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_ColTraSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_ColorTransformationSelector") + field(DOL, "0") + field(ZRST, "RGBtoRGB") + field(ZRVL, "0") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_ColTraMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_ColorTransformationMode") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "Manual") + field(ONVL, "1") + field(TWST, "Temp6500K") + field(TWVL, "2") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_ColTraMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_ColorTransformationMode") + field(DOL, "0") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "Manual") + field(ONVL, "1") + field(TWST, "Temp6500K") + field(TWVL, "2") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_ColTraValSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_ColorTransformationValueSelector") + field(ZRST, "Gain00") + field(ZRVL, "0") + field(ONST, "Gain01") + field(ONVL, "1") + field(TWST, "Gain02") + field(TWVL, "2") + field(THST, "Gain10") + field(THVL, "3") + field(FRST, "Gain11") + field(FRVL, "4") + field(FVST, "Gain12") + field(FVVL, "5") + field(SXST, "Gain20") + field(SXVL, "6") + field(SVST, "Gain21") + field(SVVL, "7") + field(EIST, "Gain22") + field(EIVL, "8") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_ColTraValSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_ColorTransformationValueSelector") + field(DOL, "0") + field(ZRST, "Gain00") + field(ZRVL, "0") + field(ONST, "Gain01") + field(ONVL, "1") + field(TWST, "Gain02") + field(TWVL, "2") + field(THST, "Gain10") + field(THVL, "3") + field(FRST, "Gain11") + field(FRVL, "4") + field(FVST, "Gain12") + field(FVVL, "5") + field(SXST, "Gain20") + field(SXVL, "6") + field(SVST, "Gain21") + field(SVVL, "7") + field(EIST, "Gain22") + field(EIVL, "8") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ColTraValue_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_ColorTransformationValue") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ColTraValue") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_ColorTransformationValue") + field(PREC, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_LUTSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_LUTSelector") + field(ZRST, "LUT1") + field(ZRVL, "0") + field(ONST, "LUT2") + field(ONVL, "1") + field(TWST, "LUT3") + field(TWVL, "2") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_LUTSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_LUTSelector") + field(DOL, "0") + field(ZRST, "LUT1") + field(ZRVL, "0") + field(ONST, "LUT2") + field(ONVL, "1") + field(TWST, "LUT3") + field(TWVL, "2") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_LUTMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_LUTMode") + field(ZRST, "Luminance") + field(ZRVL, "0") + field(ONST, "Red") + field(ONVL, "1") + field(TWST, "Green") + field(TWVL, "2") + field(THST, "Blue") + field(THVL, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_LUTMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_LUTMode") + field(DOL, "0") + field(ZRST, "Luminance") + field(ZRVL, "0") + field(ONST, "Red") + field(ONVL, "1") + field(TWST, "Green") + field(TWVL, "2") + field(THST, "Blue") + field(THVL, "3") + field(DISA, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:CAM:GC_LUTEnable_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_B_LUTEnable") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(bo, "S03SIM-EA-FSCN-02:CAM:GC_LUTEnable") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_B_LUTEnable") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_LUTIndex_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_LUTIndex") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_LUTIndex") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_LUTIndex") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_LUTValue_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_LUTValue") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_LUTValue") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_LUTValue") + field(DISA, "0") +} + +record(longout, "S03SIM-EA-FSCN-02:CAM:GC_LUTLoad") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_C_LUTLoad") + field(DISA, "0") +} + +record(longout, "S03SIM-EA-FSCN-02:CAM:GC_LUTSave") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_C_LUTSave") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_LUTBitDepthIn_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_LUTBitDepthIn") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_LUTBitDepthIn") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_LUTBitDepthIn") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_LUTBitDepthOut_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_LUTBitDepthOut") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_LUTBitDepthOut") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_LUTBitDepthOut") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_LUTAddress_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_LUTAddress") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_LUTAddress") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_LUTAddress") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_LUTSizeBytes_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_LUTSizeBytes") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_LUTSizeBytes") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_LUTSizeBytes") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_SyncInLevels_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_SyncInLevels") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_SyncInLevels") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_SyncInLevels") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_SyncInSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_SyncInSelector") + field(ZRST, "SyncIn1") + field(ZRVL, "0") + field(ONST, "SyncIn2") + field(ONVL, "1") + field(TWST, "SyncIn3") + field(TWVL, "2") + field(THST, "SyncIn4") + field(THVL, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_SyncInSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_SyncInSelector") + field(DOL, "0") + field(ZRST, "SyncIn1") + field(ZRVL, "0") + field(ONST, "SyncIn2") + field(ONVL, "1") + field(TWST, "SyncIn3") + field(TWVL, "2") + field(THST, "SyncIn4") + field(THVL, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_SynInGlitchFilter_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_SyncInGlitchFilter") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_SynInGlitchFilter") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_SyncInGlitchFilter") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutLevels_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_SyncOutLevels") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutLevels") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_SyncOutLevels") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_SyncOutSelector") + field(ZRST, "SyncOut1") + field(ZRVL, "0") + field(ONST, "SyncOut2") + field(ONVL, "1") + field(TWST, "SyncOut3") + field(TWVL, "2") + field(THST, "SyncOut4") + field(THVL, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_SyncOutSelector") + field(DOL, "0") + field(ZRST, "SyncOut1") + field(ZRVL, "0") + field(ONST, "SyncOut2") + field(ONVL, "1") + field(TWST, "SyncOut3") + field(TWVL, "2") + field(THST, "SyncOut4") + field(THVL, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutSource_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_SyncOutSource") + field(ZRST, "GPO") + field(ZRVL, "0") + field(ONST, "AcquisitionTrigg") + field(ONVL, "1") + field(TWST, "FrameTriggerRead") + field(TWVL, "2") + field(THST, "FrameTrigger") + field(THVL, "3") + field(FRST, "Exposing") + field(FRVL, "4") + field(FVST, "FrameReadout") + field(FVVL, "5") + field(SXST, "Imaging") + field(SXVL, "6") + field(SVST, "Acquiring") + field(SVVL, "7") + field(EIST, "LineIn1") + field(EIVL, "8") + field(NIST, "LineIn2") + field(NIVL, "9") + field(TEST, "Strobe1") + field(TEVL, "12") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutSource") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_SyncOutSource") + field(DOL, "0") + field(ZRST, "GPO") + field(ZRVL, "0") + field(ONST, "AcquisitionTrigg") + field(ONVL, "1") + field(TWST, "FrameTriggerRead") + field(TWVL, "2") + field(THST, "FrameTrigger") + field(THVL, "3") + field(FRST, "Exposing") + field(FRVL, "4") + field(FVST, "FrameReadout") + field(FVVL, "5") + field(SXST, "Imaging") + field(SXVL, "6") + field(SVST, "Acquiring") + field(SVVL, "7") + field(EIST, "LineIn1") + field(EIVL, "8") + field(NIST, "LineIn2") + field(NIVL, "9") + field(TEST, "Strobe1") + field(TEVL, "12") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutPolarity_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_SyncOutPolarity") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Invert") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutPolarity") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_SyncOutPolarity") + field(DOL, "0") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Invert") + field(ONVL, "1") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_StrobeSource_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_StrobeSource") + field(ZRST, "AcquisitionTrigg") + field(ZRVL, "1") + field(ONST, "FrameTriggerRead") + field(ONVL, "2") + field(TWST, "FrameTrigger") + field(TWVL, "3") + field(THST, "Exposing") + field(THVL, "4") + field(FRST, "FrameReadout") + field(FRVL, "5") + field(FVST, "Acquiring") + field(FVVL, "7") + field(SXST, "LineIn1") + field(SXVL, "8") + field(SVST, "LineIn2") + field(SVVL, "9") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_StrobeSource") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_StrobeSource") + field(DOL, "1") + field(ZRST, "AcquisitionTrigg") + field(ZRVL, "1") + field(ONST, "FrameTriggerRead") + field(ONVL, "2") + field(TWST, "FrameTrigger") + field(TWVL, "3") + field(THST, "Exposing") + field(THVL, "4") + field(FRST, "FrameReadout") + field(FRVL, "5") + field(FVST, "Acquiring") + field(FVVL, "7") + field(SXST, "LineIn1") + field(SXVL, "8") + field(SVST, "LineIn2") + field(SVVL, "9") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_StrDurationMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_StrobeDurationMode") + field(ZRST, "Source") + field(ZRVL, "0") + field(ONST, "Controlled") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_StrDurationMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_StrobeDurationMode") + field(DOL, "0") + field(ZRST, "Source") + field(ZRVL, "0") + field(ONST, "Controlled") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_StrobeDelay_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_StrobeDelay") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_StrobeDelay") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_StrobeDelay") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_StrobeDuration_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_StrobeDuration") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_StrobeDuration") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_StrobeDuration") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_EventSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_EventSelector") + field(ZRST, "AcquisitionStart") + field(ZRVL, "40000") + field(ONST, "AcquisitionEnd") + field(ONVL, "40001") + field(TWST, "FrameTrigger") + field(TWVL, "40002") + field(THST, "ExposureEnd") + field(THVL, "40003") + field(FRST, "AcquisitionRecor") + field(FRVL, "40004") + field(FVST, "Line1RisingEdge") + field(FVVL, "40010") + field(SXST, "Line1FallingEdge") + field(SXVL, "40011") + field(SVST, "Line2RisingEdge") + field(SVVL, "40012") + field(EIST, "Line2FallingEdge") + field(EIVL, "40013") + field(NIST, "Line3RisingEdge") + field(NIVL, "40014") + field(TEST, "Line3FallingEdge") + field(TEVL, "40015") + field(ELST, "Line4RisingEdge") + field(ELVL, "40016") + field(TVST, "Line4FallingEdge") + field(TVVL, "40017") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_EventSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_EventSelector") + field(DOL, "40000") + field(ZRST, "AcquisitionStart") + field(ZRVL, "40000") + field(ONST, "AcquisitionEnd") + field(ONVL, "40001") + field(TWST, "FrameTrigger") + field(TWVL, "40002") + field(THST, "ExposureEnd") + field(THVL, "40003") + field(FRST, "AcquisitionRecor") + field(FRVL, "40004") + field(FVST, "Line1RisingEdge") + field(FVVL, "40010") + field(SXST, "Line1FallingEdge") + field(SXVL, "40011") + field(SVST, "Line2RisingEdge") + field(SVVL, "40012") + field(EIST, "Line2FallingEdge") + field(EIVL, "40013") + field(NIST, "Line3RisingEdge") + field(NIVL, "40014") + field(TEST, "Line3FallingEdge") + field(TEVL, "40015") + field(ELST, "Line4RisingEdge") + field(ELVL, "40016") + field(TVST, "Line4FallingEdge") + field(TVVL, "40017") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_EventNotification_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_EventNotification") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_EventNotification") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_EventNotification") + field(DOL, "0") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EventsEnable1_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventsEnable1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EventsEnable1") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventsEnable1") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveAcqStart_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventAcquisitionStart") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveAcqStart") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventAcquisitionStart") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveAcquisitionEnd_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventAcquisitionEnd") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveAcquisitionEnd") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventAcquisitionEnd") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EventFrameTrigger_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventFrameTrigger") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EventFrameTrigger") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventFrameTrigger") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EventExposureEnd_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventExposureEnd") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EventExposureEnd") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventExposureEnd") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveAcqRecTrigger_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventAcquisitionRecordTrigger") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveAcqRecTrigger") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventAcquisitionRecordTrigger") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveLinRisingEdge_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine1RisingEdge") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveLinRisingEdge") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine1RisingEdge") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveLinFallingEdge_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine1FallingEdge") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveLinFallingEdge") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine1FallingEdge") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveLinRisingEdg0_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine2RisingEdge") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveLinRisingEdg0") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine2RisingEdge") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveLinFallingEdg0_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine2FallingEdge") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveLinFallingEdg0") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine2FallingEdge") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveLinRisingEdg1_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine3RisingEdge") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveLinRisingEdg1") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine3RisingEdge") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveLinFallingEdg1_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine3FallingEdge") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveLinFallingEdg1") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine3FallingEdge") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveLinRisingEdg2_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine4RisingEdge") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveLinRisingEdg2") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine4RisingEdge") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveLinFallingEdg2_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine4FallingEdge") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveLinFallingEdg2") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine4FallingEdge") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EventOverflow_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventOverflow") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EventOverflow") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventOverflow") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EventError_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventError") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EventError") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventError") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_UserSetSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_UserSetSelector") + field(ZRST, "Default") + field(ZRVL, "0") + field(ONST, "UserSet1") + field(ONVL, "1") + field(TWST, "UserSet2") + field(TWVL, "2") + field(THST, "UserSet3") + field(THVL, "3") + field(FRST, "UserSet4") + field(FRVL, "4") + field(FVST, "UserSet5") + field(FVVL, "5") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_UserSetSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_UserSetSelector") + field(DOL, "0") + field(ZRST, "Default") + field(ZRVL, "0") + field(ONST, "UserSet1") + field(ONVL, "1") + field(TWST, "UserSet2") + field(TWVL, "2") + field(THST, "UserSet3") + field(THVL, "3") + field(FRST, "UserSet4") + field(FRVL, "4") + field(FVST, "UserSet5") + field(FVVL, "5") + field(DISA, "0") +} + +record(longout, "S03SIM-EA-FSCN-02:CAM:GC_UserSetLoad") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_C_UserSetLoad") + field(DISA, "0") +} + +record(longout, "S03SIM-EA-FSCN-02:CAM:GC_UserSetSave") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_C_UserSetSave") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_UseSetDefSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_UserSetDefaultSelector") + field(ZRST, "Default") + field(ZRVL, "0") + field(ONST, "UserSet1") + field(ONVL, "1") + field(TWST, "UserSet2") + field(TWVL, "2") + field(THST, "UserSet3") + field(THVL, "3") + field(FRST, "UserSet4") + field(FRVL, "4") + field(FVST, "UserSet5") + field(FVVL, "5") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_UseSetDefSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_UserSetDefaultSelector") + field(DOL, "0") + field(ZRST, "Default") + field(ZRVL, "0") + field(ONST, "UserSet1") + field(ONVL, "1") + field(TWST, "UserSet2") + field(TWVL, "2") + field(THST, "UserSet3") + field(THVL, "3") + field(FRST, "UserSet4") + field(FRVL, "4") + field(FVST, "UserSet5") + field(FVVL, "5") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_LensVoltage_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_LensVoltage") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_LensVoltage") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_LensVoltage") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_LenVoltageControl_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_LensVoltageControl") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_LenVoltageControl") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_LensVoltageControl") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_LensDriveCommand_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_LensDriveCommand") + field(ZRST, "Stop") + field(ZRVL, "0") + field(ONST, "IrisTimedOpen") + field(ONVL, "1") + field(TWST, "IrisTimedClose") + field(TWVL, "2") + field(THST, "FocusTimedNear") + field(THVL, "3") + field(FRST, "FocusTimedFar") + field(FRVL, "4") + field(FVST, "ZoomTimedIn") + field(FVVL, "5") + field(SXST, "ZoomTimedOut") + field(SXVL, "6") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_LensDriveCommand") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_LensDriveCommand") + field(DOL, "0") + field(ZRST, "Stop") + field(ZRVL, "0") + field(ONST, "IrisTimedOpen") + field(ONVL, "1") + field(TWST, "IrisTimedClose") + field(TWVL, "2") + field(THST, "FocusTimedNear") + field(THVL, "3") + field(FRST, "FocusTimedFar") + field(FRVL, "4") + field(FVST, "ZoomTimedIn") + field(FVVL, "5") + field(SXST, "ZoomTimedOut") + field(SXVL, "6") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_LensDriveDuration_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_LensDriveDuration") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_LensDriveDuration") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_LensDriveDuration") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_PvDumTriSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_PvDummyTriggerSelector") + field(ZRST, "FrameStart") + field(ZRVL, "0") + field(ONST, "AcquisitionStart") + field(ONVL, "3") + field(TWST, "AcquisitionEnd") + field(TWVL, "4") + field(THST, "AcquisitionRecor") + field(THVL, "6") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_PvDumTriSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_PvDummyTriggerSelector") + field(DOL, "0") + field(ZRST, "FrameStart") + field(ZRVL, "0") + field(ONST, "AcquisitionStart") + field(ONVL, "3") + field(TWST, "AcquisitionEnd") + field(TWVL, "4") + field(THST, "AcquisitionRecor") + field(THVL, "6") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_PvDumFraStaTriMod_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_PvDummyFrameStartTriggerMode") + field(ZRST, "Freerun") + field(ZRVL, "2147483648") + field(ONST, "SyncIn1") + field(ONVL, "2147483649") + field(TWST, "SyncIn2") + field(TWVL, "2147483650") + field(THST, "SyncIn3") + field(THVL, "2147483651") + field(FRST, "SyncIn4") + field(FRVL, "2147483652") + field(FVST, "FixedRate") + field(FVVL, "2147483653") + field(SXST, "Software") + field(SXVL, "2147483654") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_PvDumFraStaTriMod") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_PvDummyFrameStartTriggerMode") + field(DOL, "2147483648") + field(ZRST, "Freerun") + field(ZRVL, "2147483648") + field(ONST, "SyncIn1") + field(ONVL, "2147483649") + field(TWST, "SyncIn2") + field(TWVL, "2147483650") + field(THST, "SyncIn3") + field(THVL, "2147483651") + field(FRST, "SyncIn4") + field(FRVL, "2147483652") + field(FVST, "FixedRate") + field(FVVL, "2147483653") + field(SXST, "Software") + field(SXVL, "2147483654") + field(DISA, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_PvDumTriggerMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_PvDummyTriggerMode") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "SyncIn1") + field(ONVL, "2147483649") + field(TWST, "SyncIn2") + field(TWVL, "2147483650") + field(THST, "SyncIn3") + field(THVL, "2147483651") + field(FRST, "SyncIn4") + field(FRVL, "2147483652") + field(FVST, "FixedRate") + field(FVVL, "2147483653") + field(SXST, "Software") + field(SXVL, "2147483654") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_PvDumTriggerMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_PvDummyTriggerMode") + field(DOL, "0") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "SyncIn1") + field(ONVL, "2147483649") + field(TWST, "SyncIn2") + field(TWVL, "2147483650") + field(THST, "SyncIn3") + field(THVL, "2147483651") + field(FRST, "SyncIn4") + field(FRVL, "2147483652") + field(FVST, "FixedRate") + field(FVVL, "2147483653") + field(SXST, "Software") + field(SXVL, "2147483654") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_FraStaTriDelay_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_FrameStartTriggerDelay") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_FraStaTriDelay") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_FrameStartTriggerDelay") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ExposureValue_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureValue") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ExposureValue") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureValue") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_TimeStampValueLo_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_TimeStampValueLo") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_TimeStampValueLo") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_TimeStampValueLo") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_TimeStampValueHi_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_TimeStampValueHi") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_TimeStampValueHi") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_TimeStampValueHi") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_WhitebalValueRed_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_WhitebalValueRed") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_WhitebalValueRed") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_WhitebalValueRed") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_WhitebalValueBlue_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_WhitebalValueBlue") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_WhitebalValueBlue") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_WhitebalValueBlue") + field(DISA, "0") +} + +record(stringin, "S03SIM-EA-FSCN-02:CAM:GC_ModelName_RBV") { + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_S_ModelName") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GainValue_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_GainValue") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GainValue") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_GainValue") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_PvGainAutoMin_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_PvGainAutoMin") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_PvGainAutoMin") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_PvGainAutoMin") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_PvGainAutoMax_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_PvGainAutoMax") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_PvGainAutoMax") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_PvGainAutoMax") + field(DISA, "0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_OffsetValue_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_OffsetValue") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_OffsetValue") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_OffsetValue") + field(DISA, "0") +} + +# Database for the records specific to the ADAravis driver +# Macros: +#% macro, P, Device Prefix +#% macro, R, Device Suffix +#% macro, PORT, Asyn Port name +#% macro, TIMEOUT, Timeout, default 1 +#% macro, ADDR, Asyn Port address, default 0 + +# This associates a BOY screen with the template +# % gui, FSCN1.CAM, boydetail, aravisApp_opi/aravis_detail.opi, P=S03SIM-EA-FSCN-01, R=:CAM:, DESC=Camera +# % gui, FSCN1.CAM, boyembed, aravisApp_opi/aravis_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:CAM:, DESC=Camera +# % gui, FSCN1.CAM, boyembed, aravisApp_opi/aravis_embed.opi, P=S03SIM-EA-FSCN-01, R=:CAM:, DESC=Camera + +## ADGenICam.template +## Template database file to control some features of ADGenICam. +## +## Note: this file contains only the records that are not handled by the camera-specific GenICam autogenerated database + +#=================================================================# +# Template file: ADBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +# Using SCANRATE:The ImageJ EPICS_AD_Viewer plugin monitors ArrayCounter_RBV to decide +# when there is a new image to display. That means that it will not display faster than +# the SCANRATE you select. + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:CAM:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.CAM,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:CAM:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.CAM,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:CAM:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.CAM,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:CAM:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.CAM,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:CAM:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.CAM,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:CAM:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.CAM,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:CAM:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.CAM,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:CAM:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.CAM,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:CAM:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:SetAcquireBusy") + info(asyn:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:CAM:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:CAM:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:CAM:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:CAM:AcquireBusy PP") +} + +record(busy, "S03SIM-EA-FSCN-01:CAM:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:CAM:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:CAM:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:CAM:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:CAM:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:CAM:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:CAM:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:CAM:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.CAM,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.CAM,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:CAM:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:CAM:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.CAM,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:CAM:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:CAM:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:CAM:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:CAM:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:CAM:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:CAM:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:CAM:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:CAM:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:CAM:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.CAM,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:CAM:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.CAM,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:CAM:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:CAM:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:CAM:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:CAM:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:CAM:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)MAX_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)MAX_SIZE_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the detector readout # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-EA-FSCN-01:CAM:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)BIN_X") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)BIN_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:CAM:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)BIN_Y") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)BIN_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:CAM:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)MIN_X") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:CAM:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)MIN_Y") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:CAM:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)SIZE_X") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:CAM:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)SIZE_Y") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:CAM:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)REVERSE_X") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:CAM:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)REVERSE_X") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:CAM:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)REVERSE_Y") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:CAM:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)REVERSE_Y") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the acquisition time and # +# period # +################################################################### +record(ao, "S03SIM-EA-FSCN-01:CAM:AcquireTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.CAM,0,1)ACQ_TIME") + field(PREC, "3") + field(VAL, "1.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:AcquireTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)ACQ_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:AcquirePeriod") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.CAM,0,1)ACQ_PERIOD") + field(PREC, "3") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:AcquirePeriod_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)ACQ_PERIOD") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:TimeRemaining_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)TIME_REMAINING") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the gain # +################################################################### +record(ao, "S03SIM-EA-FSCN-01:CAM:Gain") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.CAM,0,1)GAIN") + field(VAL, "1.0") + field(PREC, "3") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:Gain_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)GAIN") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the frame type # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:CAM:FrameType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)FRAME_TYPE") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Background") + field(ONVL, "1") + field(TWST, "FlatField") + field(TWVL, "2") + field(THST, "DblCorrelation") + field(THVL, "3") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:FrameType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)FRAME_TYPE") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Background") + field(ONVL, "1") + field(TWST, "FlatField") + field(TWVL, "2") + field(THST, "DblCorrelation") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the acquisition mode # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:CAM:ImageMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)IMAGE_MODE") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Multiple") + field(ONVL, "1") + field(TWST, "Continuous") + field(TWVL, "2") + field(VAL, "2") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:ImageMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)IMAGE_MODE") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Multiple") + field(ONVL, "1") + field(TWST, "Continuous") + field(TWVL, "2") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the trigger mode # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:CAM:TriggerMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)TRIGGER_MODE") + field(ZRST, "Internal") + field(ZRVL, "0") + field(ONST, "External") + field(ONVL, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:TriggerMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)TRIGGER_MODE") + field(ZRST, "Internal") + field(ZRVL, "0") + field(ONST, "External") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the number of exposures and # +# number of images # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:CAM:NumExposures") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)NEXPOSURES") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:NumExposures_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)NEXPOSURES") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:NumExposuresCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)NEXPOSURES_COUNTER") + field(SCAN, "I/O Intr") +} +record(longout, "S03SIM-EA-FSCN-01:CAM:NumImages") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)NIMAGES") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:NumImages_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)NIMAGES") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:NumImagesCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)NIMAGES_COUNTER") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are for the detector state # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:DetectorState_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)STATUS") + field(ZRST, "Idle") + field(ZRVL, "0") + field(ZRSV, "NO_ALARM") + field(ONST, "Acquire") + field(ONVL, "1") + field(ONSV, "NO_ALARM") + field(TWST, "Readout") + field(TWVL, "2") + field(TWSV, "NO_ALARM") + field(THST, "Correct") + field(THVL, "3") + field(THSV, "NO_ALARM") + field(FRST, "Saving") + field(FRVL, "4") + field(FRSV, "NO_ALARM") + field(FVST, "Aborting") + field(FVVL, "5") + field(FVSV, "MINOR") + field(SXST, "Error") + field(SXVL, "6") + field(SXSV, "MAJOR") + field(SVST, "Waiting") + field(SVVL, "7") + field(SVSV, "NO_ALARM") + field(EIST, "Initializing") + field(EIVL, "8") + field(EISV, "NO_ALARM") + field(NIST, "Disconnected") + field(NIVL, "9") + field(NISV, "INVALID") + field(TEST, "Aborted") + field(TEVL, "10") + field(TESV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide status information # +################################################################### + +# Status message. +record(waveform, "S03SIM-EA-FSCN-01:CAM:StatusMessage_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.CAM,0,1)STATUS_MESSAGE") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:CAM:StringToServer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.CAM,0,1)STRING_TO_SERVER") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:CAM:StringFromServer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.CAM,0,1)STRING_FROM_SERVER") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +################################################################@### +# This record can be used to force a read of the detector status # +#################################################################### +record(bo,"S03SIM-EA-FSCN-01:CAM:ReadStatus") { + field(DTYP,"asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)READ_STATUS") + field(VAL, "1") + field(SCAN,"Passive") + info(autosaveFields, "SCAN") +} + +################################################################### +# These records control the shutter # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:ShutterMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)SHUTTER_MODE") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "EPICS PV") + field(ONVL, "1") + field(TWST, "Detector output") + field(TWVL, "2") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:ShutterMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)SHUTTER_MODE") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "EPICS PV") + field(ONVL, "1") + field(TWST, "Camera output") + field(TWVL, "2") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:CAM:ShutterControl") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)SHUTTER_CONTROL") + field(ZNAM, "Close") + field(ONAM, "Open") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:CAM:ShutterControl_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)SHUTTER_CONTROL") + field(ZNAM, "Close") + field(ONAM, "Open") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-01:CAM:ShutterStatus_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)SHUTTER_STATUS") + field(ZNAM, "Closed") + field(ZSV, "NO_ALARM") + field(ONAM, "Open") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:ShutterOpenDelay") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.CAM,0,1)SHUTTER_OPEN_DELAY") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:ShutterOpenDelay_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)SHUTTER_OPEN_DELAY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:ShutterCloseDelay") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.CAM,0,1)SHUTTER_CLOSE_DELAY") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:ShutterCloseDelay_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)SHUTTER_CLOSE_DELAY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +# This record changes state when the driver opens/closes an EPICS shutter +record(bi, "S03SIM-EA-FSCN-01:CAM:ShutterControlEPICS") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)SHUTTER_CONTROL_EPICS") + field(ZNAM, "Closed") + field(ZSV, "NO_ALARM") + field(ONAM, "Open") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ShutterFanout.PROC") +} + +record(fanout, "S03SIM-EA-FSCN-01:CAM:ShutterFanout") +{ + field(LNK1, "S03SIM-EA-FSCN-01:CAM:ShutterOpenEPICS.PROC PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:CAM:ShutterCloseEPICS.PROC PP MS") +} + +record(calcout, "S03SIM-EA-FSCN-01:CAM:ShutterOpenEPICS") +{ + field(INPA, "S03SIM-EA-FSCN-01:CAM:ShutterControlEPICS.VAL NPP NMS") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(DOPT, "Use OCAL") + field(OCAL, "1") + field(OUT, "") + info(autosaveFields, "OUT OCAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:CAM:ShutterCloseEPICS") +{ + field(INPA, "S03SIM-EA-FSCN-01:CAM:ShutterControlEPICS.VAL NPP NMS") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(DOPT, "Use OCAL") + field(OCAL, "0") + field(OUT, "") + info(autosaveFields, "OUT OCAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:ShutterStatusEPICS_RBV") +{ + field(DTYP, "Raw Soft Channel") + field(INP, "test CP MS") + field(ZRVL, "0") + field(ZRST, "Closed") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "Open") + field(ONSV, "MINOR") + info(autosaveFields, "INP ZRVL ONVL") +} + +################################################################### +# These records control the detector temperature # +################################################################### + +record(ao, "S03SIM-EA-FSCN-01:CAM:Temperature") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.CAM,0,1)TEMPERATURE") + field(PREC, "1") + field(EGU, "C") + field(VAL, "25.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:Temperature_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)TEMPERATURE") + field(PREC, "1") + field(EGU, "C") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:TemperatureActual") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)TEMPERATURE_ACTUAL") + field(PREC, "1") + field(EGU, "C") + field(SCAN, "I/O Intr") +} + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(asyn,"S03SIM-EA-FSCN-01:CAM:AsynIO") +{ + field(PORT, "FSCN1.CAM") + field(TIB2,"1") + info("ADType", "ADDriver") +} + + +## These are the records from ADBase.template that we modify + +# Some cameras use both AcquisitionFrameRate and AcquirePeriod. +# Make AcquirePeriod update if FrameRate is changed. +record(ao, "S03SIM-EA-FSCN-01:CAM:AcquirePeriod") +{ + info(asyn:READBACK, "1") +} + +# This record hides the fact that some cameras use FrameRate and some use FrameRateAbs +# This is not PINI=YES because AcquirePeriod is and they control the same thing +record(ao, "S03SIM-EA-FSCN-01:CAM:FrameRate") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.CAM 0)GC_FRAMERATE") + field(PREC, "3") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:FrameRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM 0)GC_FRAMERATE") + field(SCAN, "I/O Intr") + field(PREC, "3") +} + +# Some cameras (Basler, Point Grey, FLIR) use AcquisitionFrameRateEnable or AcquisitionFrameRateEnabled +# This record hides the fact that the feature name may differ; the record name is always the same. +record(bo, "S03SIM-EA-FSCN-01:CAM:FrameRateEnable") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM 0)GC_FRAMERATE_ENABLE") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +record(bi, "S03SIM-EA-FSCN-01:CAM:FrameRateEnable_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM 0)GC_FRAMERATE_ENABLE") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +# This record is used to ensure there is a record for TriggerSource even if there is no such GenICam feature +record(mbbo, "S03SIM-EA-FSCN-01:CAM:TriggerSource") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM 0)GC_TRIGGER_SOURCE") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:TriggerSource_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM 0)GC_TRIGGER_SOURCE") + field(ZRST, "N.A.") + field(ZRVL, "0") + field(SCAN, "I/O Intr") +} + +# This record is used to ensure there is a record for TriggerOverlap even if there is no such GenICam feature +record(mbbo, "S03SIM-EA-FSCN-01:CAM:TriggerOverlap") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM 0)GC_TRIGGER_OVERLAP") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:TriggerOverlap_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM 0)GC_TRIGGER_OVERLAP") + field(SCAN, "I/O Intr") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +# This record is used to ensure there is a record for TriggerSoftware even if there is no such GenICam feature +record(bo, "S03SIM-EA-FSCN-01:CAM:TriggerSoftware") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM 0)GC_TRIGGER_SOFTWARE") + field(ZNAM, "Done") + field(ONAM, "Trigger") +} + +# This record is used to ensure there is a record for ExposureMode even if there is no such GenICam feature +record(mbbo, "S03SIM-EA-FSCN-01:CAM:ExposureMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM 0)GC_EXPOSURE_MODE") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:ExposureMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM 0)GC_EXPOSURE_MODE") + field(ZRST, "N.A.") + field(ZRVL, "0") + field(SCAN, "I/O Intr") +} + +# This record is used to ensure there is a record for ExposureAuto even if there is no such GenICam feature +record(mbbo, "S03SIM-EA-FSCN-01:CAM:ExposureAuto") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM 0)GC_EXPOSURE_AUTO") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:ExposureAuto_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM 0)GC_EXPOSURE_AUTO") + field(SCAN, "I/O Intr") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +# This record is used to ensure there is a record for GainAuto even if there is no such GenICam feature +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GainAuto") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM 0)GC_GAIN_AUTO") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GainAuto_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM 0)GC_GAIN_AUTO") + field(SCAN, "I/O Intr") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +# This record is used to ensure there is a record for PixelFormat even if there is no such GenICam feature +record(mbbo, "S03SIM-EA-FSCN-01:CAM:PixelFormat") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM 0)GC_PIXEL_FORMAT") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:PixelFormat_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM 0)GC_PIXEL_FORMAT") + field(ZRST, "N.A.") + field(ZRVL, "0") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:ARFramesCompleted") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)ARAVIS_COMPLETED") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC LLSV LOLO LOW LSV") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:ARFrameFailures") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)ARAVIS_FAILURES") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:ARFrameUnderruns") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.CAM,0,1)ARAVIS_UNDERRUNS") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ARMissingPackets") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)ARAVIS_MISSING_PKTS") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV") +} + +record(longin, "S03SIM-EA-FSCN-01:CAM:ARResentPackets") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)ARAVIS_RESENT_PKTS") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:ARPacketResendEnable") +{ + field(DESC, "Packet resend enable") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)ARAVIS_PKT_RESEND") + field(ZRST, "Never") + field(ZRVL, "0") + field(ONST, "Always") + field(ONVL, "1") + field(VAL, "1") + field(PINI, "1") + info(autosaveFields, "DESC ONSV ZRSV PINI VAL") +} + +record(longout, "S03SIM-EA-FSCN-01:CAM:ARPacketTimeout") +{ + field(DESC, "Delay in us before packet resend request") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)ARAVIS_PKT_TIMEOUT") + field(VAL, "20000") + field(EGU, "us") + field(PINI, "1") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV LLSV LOLO LOW LSV PINI VAL") +} + +record(longout, "S03SIM-EA-FSCN-01:CAM:ARFrameRetention") +{ + field(DESC, "Frame timeout in us after last packet") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)ARAVIS_FRAME_RETENTION") + field(VAL, "100000") + field(EGU, "us") + field(PINI, "1") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV LLSV LOLO LOW LSV PINI VAL") +} + +record(longout, "S03SIM-EA-FSCN-01:CAM:ARResetCamera") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)ARAVIS_RESET") + field(FLNK, "S03SIM-EA-FSCN-01:CAM:ARConnectCamera") +} + +record(longout, "S03SIM-EA-FSCN-01:CAM:ARConnectCamera") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)ARAVIS_CONNECTION") + field(VAL, "1") + field(PINI, "1") +} + +record(calcout, "S03SIM-EA-FSCN-01:CAM:ARCheckConnection") +{ + field(SCAN, "1 second") + field(INPA, "S03SIM-EA-FSCN-01:CAM:ARConnectCamera.SEVR CP") + field(CALC, "A==0") + field(OOPT, "When Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:CAM:ARConnectCamera.PROC PP") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:ARConvertPixelFormat_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)ARAVIS_CONVERT_PIXEL_FORMAT") + field(ZRST, "Mono16Low") + field(ZRVL, "0") + field(ONST, "Mono16High") + field(ONVL, "1") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC ZRSV ONSV") +} + + +## When unpacking Mono12Packed or Mono12p selects whether 16-bit output is +## left shifted by 4 bits (Mono16High) or not (Mono16Low) +record(mbbo, "S03SIM-EA-FSCN-01:CAM:ARConvertPixelFormat") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)ARAVIS_CONVERT_PIXEL_FORMAT") + field(ZRST, "Mono16Low") + field(ZRVL, "0") + field(ONST, "Mono16High") + field(ONVL, "1") + field(PINI, "1") + info(autosaveFields, "DESC ZRSV ONSV VAL") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:ARShiftDir_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)ARAVIS_SHIFT_DIR") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "Left") + field(ONVL, "1") + field(TWST, "Right") + field(TWVL, "2") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC ZRSV ONSV") +} + +## Select no shift, left shift, or right shift when reading data +record(mbbo, "S03SIM-EA-FSCN-01:CAM:ARShiftDir") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)ARAVIS_SHIFT_DIR") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "Left") + field(ONVL, "1") + field(TWST, "Right") + field(TWVL, "2") + field(PINI, "1") + info(autosaveFields, "DESC ZRSV ONSV VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:ARShiftBits_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.CAM,0,1)ARAVIS_SHIFT_BITS") + field(ZRST, "1") + field(ZRVL, "1") + field(ONST, "2") + field(ONVL, "2") + field(TWST, "3") + field(TWVL, "3") + field(THST, "4") + field(THVL, "4") + field(FRST, "5") + field(FRVL, "5") + field(FVST, "6") + field(FVVL, "6") + field(SXST, "7") + field(SXVL, "7") + field(SVST, "8") + field(SVVL, "8") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC ZRSV ONSV") +} + +## Selects how many bits to shift left or right when reading data +record(mbbo, "S03SIM-EA-FSCN-01:CAM:ARShiftBits") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.CAM,0,1)ARAVIS_SHIFT_BITS") + field(ZRST, "1") + field(ZRVL, "1") + field(ONST, "2") + field(ONVL, "2") + field(TWST, "3") + field(TWVL, "3") + field(THST, "4") + field(THVL, "4") + field(FRST, "5") + field(FRVL, "5") + field(FVST, "6") + field(FVVL, "6") + field(SXST, "7") + field(SXVL, "7") + field(SVST, "8") + field(SVVL, "8") + field(PINI, "1") + info(autosaveFields, "DESC ZRSV ONSV VAL") +} +# Database for the records specific to the ADAravis driver +# Macros: +#% macro, P, Device Prefix +#% macro, R, Device Suffix +#% macro, PORT, Asyn Port name +#% macro, TIMEOUT, Timeout, default 1 +#% macro, ADDR, Asyn Port address, default 0 + +# This associates a BOY screen with the template +# % gui, FSCN2.CAM, boydetail, aravisApp_opi/aravis_detail.opi, P=S03SIM-EA-FSCN-02, R=:CAM:, DESC=Camera +# % gui, FSCN2.CAM, boyembed, aravisApp_opi/aravis_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:CAM:, DESC=Camera +# % gui, FSCN2.CAM, boyembed, aravisApp_opi/aravis_embed.opi, P=S03SIM-EA-FSCN-02, R=:CAM:, DESC=Camera + +## ADGenICam.template +## Template database file to control some features of ADGenICam. +## +## Note: this file contains only the records that are not handled by the camera-specific GenICam autogenerated database + +#=================================================================# +# Template file: ADBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +# Using SCANRATE:The ImageJ EPICS_AD_Viewer plugin monitors ArrayCounter_RBV to decide +# when there is a new image to display. That means that it will not display faster than +# the SCANRATE you select. + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:CAM:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.CAM,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:CAM:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.CAM,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:CAM:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.CAM,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:CAM:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.CAM,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:CAM:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.CAM,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:CAM:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.CAM,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:CAM:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.CAM,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:CAM:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.CAM,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:CAM:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:SetAcquireBusy") + info(asyn:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:CAM:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:CAM:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:CAM:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:CAM:AcquireBusy PP") +} + +record(busy, "S03SIM-EA-FSCN-02:CAM:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:CAM:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:CAM:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:CAM:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:CAM:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:CAM:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:CAM:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:CAM:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.CAM,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.CAM,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:CAM:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:CAM:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.CAM,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:CAM:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:CAM:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:CAM:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:CAM:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:CAM:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:CAM:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:CAM:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:CAM:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:CAM:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.CAM,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:CAM:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.CAM,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:CAM:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:CAM:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:CAM:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:CAM:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:CAM:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)MAX_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)MAX_SIZE_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the detector readout # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-EA-FSCN-02:CAM:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)BIN_X") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)BIN_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:CAM:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)BIN_Y") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)BIN_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:CAM:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)MIN_X") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:CAM:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)MIN_Y") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:CAM:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)SIZE_X") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:CAM:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)SIZE_Y") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:CAM:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)REVERSE_X") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:CAM:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)REVERSE_X") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:CAM:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)REVERSE_Y") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:CAM:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)REVERSE_Y") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the acquisition time and # +# period # +################################################################### +record(ao, "S03SIM-EA-FSCN-02:CAM:AcquireTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.CAM,0,1)ACQ_TIME") + field(PREC, "3") + field(VAL, "1.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:AcquireTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)ACQ_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:AcquirePeriod") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.CAM,0,1)ACQ_PERIOD") + field(PREC, "3") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:AcquirePeriod_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)ACQ_PERIOD") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:TimeRemaining_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)TIME_REMAINING") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the gain # +################################################################### +record(ao, "S03SIM-EA-FSCN-02:CAM:Gain") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.CAM,0,1)GAIN") + field(VAL, "1.0") + field(PREC, "3") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:Gain_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)GAIN") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the frame type # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:CAM:FrameType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)FRAME_TYPE") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Background") + field(ONVL, "1") + field(TWST, "FlatField") + field(TWVL, "2") + field(THST, "DblCorrelation") + field(THVL, "3") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:FrameType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)FRAME_TYPE") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Background") + field(ONVL, "1") + field(TWST, "FlatField") + field(TWVL, "2") + field(THST, "DblCorrelation") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the acquisition mode # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:CAM:ImageMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)IMAGE_MODE") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Multiple") + field(ONVL, "1") + field(TWST, "Continuous") + field(TWVL, "2") + field(VAL, "2") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:ImageMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)IMAGE_MODE") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Multiple") + field(ONVL, "1") + field(TWST, "Continuous") + field(TWVL, "2") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the trigger mode # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:CAM:TriggerMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)TRIGGER_MODE") + field(ZRST, "Internal") + field(ZRVL, "0") + field(ONST, "External") + field(ONVL, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:TriggerMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)TRIGGER_MODE") + field(ZRST, "Internal") + field(ZRVL, "0") + field(ONST, "External") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the number of exposures and # +# number of images # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:CAM:NumExposures") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)NEXPOSURES") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:NumExposures_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)NEXPOSURES") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:NumExposuresCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)NEXPOSURES_COUNTER") + field(SCAN, "I/O Intr") +} +record(longout, "S03SIM-EA-FSCN-02:CAM:NumImages") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)NIMAGES") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:NumImages_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)NIMAGES") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:NumImagesCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)NIMAGES_COUNTER") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are for the detector state # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:DetectorState_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)STATUS") + field(ZRST, "Idle") + field(ZRVL, "0") + field(ZRSV, "NO_ALARM") + field(ONST, "Acquire") + field(ONVL, "1") + field(ONSV, "NO_ALARM") + field(TWST, "Readout") + field(TWVL, "2") + field(TWSV, "NO_ALARM") + field(THST, "Correct") + field(THVL, "3") + field(THSV, "NO_ALARM") + field(FRST, "Saving") + field(FRVL, "4") + field(FRSV, "NO_ALARM") + field(FVST, "Aborting") + field(FVVL, "5") + field(FVSV, "MINOR") + field(SXST, "Error") + field(SXVL, "6") + field(SXSV, "MAJOR") + field(SVST, "Waiting") + field(SVVL, "7") + field(SVSV, "NO_ALARM") + field(EIST, "Initializing") + field(EIVL, "8") + field(EISV, "NO_ALARM") + field(NIST, "Disconnected") + field(NIVL, "9") + field(NISV, "INVALID") + field(TEST, "Aborted") + field(TEVL, "10") + field(TESV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide status information # +################################################################### + +# Status message. +record(waveform, "S03SIM-EA-FSCN-02:CAM:StatusMessage_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.CAM,0,1)STATUS_MESSAGE") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:CAM:StringToServer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.CAM,0,1)STRING_TO_SERVER") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:CAM:StringFromServer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.CAM,0,1)STRING_FROM_SERVER") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +################################################################@### +# This record can be used to force a read of the detector status # +#################################################################### +record(bo,"S03SIM-EA-FSCN-02:CAM:ReadStatus") { + field(DTYP,"asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)READ_STATUS") + field(VAL, "1") + field(SCAN,"Passive") + info(autosaveFields, "SCAN") +} + +################################################################### +# These records control the shutter # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:ShutterMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)SHUTTER_MODE") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "EPICS PV") + field(ONVL, "1") + field(TWST, "Detector output") + field(TWVL, "2") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:ShutterMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)SHUTTER_MODE") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "EPICS PV") + field(ONVL, "1") + field(TWST, "Camera output") + field(TWVL, "2") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:CAM:ShutterControl") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)SHUTTER_CONTROL") + field(ZNAM, "Close") + field(ONAM, "Open") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:CAM:ShutterControl_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)SHUTTER_CONTROL") + field(ZNAM, "Close") + field(ONAM, "Open") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-02:CAM:ShutterStatus_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)SHUTTER_STATUS") + field(ZNAM, "Closed") + field(ZSV, "NO_ALARM") + field(ONAM, "Open") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:ShutterOpenDelay") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.CAM,0,1)SHUTTER_OPEN_DELAY") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:ShutterOpenDelay_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)SHUTTER_OPEN_DELAY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:ShutterCloseDelay") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.CAM,0,1)SHUTTER_CLOSE_DELAY") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:ShutterCloseDelay_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)SHUTTER_CLOSE_DELAY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +# This record changes state when the driver opens/closes an EPICS shutter +record(bi, "S03SIM-EA-FSCN-02:CAM:ShutterControlEPICS") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)SHUTTER_CONTROL_EPICS") + field(ZNAM, "Closed") + field(ZSV, "NO_ALARM") + field(ONAM, "Open") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ShutterFanout.PROC") +} + +record(fanout, "S03SIM-EA-FSCN-02:CAM:ShutterFanout") +{ + field(LNK1, "S03SIM-EA-FSCN-02:CAM:ShutterOpenEPICS.PROC PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:CAM:ShutterCloseEPICS.PROC PP MS") +} + +record(calcout, "S03SIM-EA-FSCN-02:CAM:ShutterOpenEPICS") +{ + field(INPA, "S03SIM-EA-FSCN-02:CAM:ShutterControlEPICS.VAL NPP NMS") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(DOPT, "Use OCAL") + field(OCAL, "1") + field(OUT, "") + info(autosaveFields, "OUT OCAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:CAM:ShutterCloseEPICS") +{ + field(INPA, "S03SIM-EA-FSCN-02:CAM:ShutterControlEPICS.VAL NPP NMS") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(DOPT, "Use OCAL") + field(OCAL, "0") + field(OUT, "") + info(autosaveFields, "OUT OCAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:ShutterStatusEPICS_RBV") +{ + field(DTYP, "Raw Soft Channel") + field(INP, "test CP MS") + field(ZRVL, "0") + field(ZRST, "Closed") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "Open") + field(ONSV, "MINOR") + info(autosaveFields, "INP ZRVL ONVL") +} + +################################################################### +# These records control the detector temperature # +################################################################### + +record(ao, "S03SIM-EA-FSCN-02:CAM:Temperature") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.CAM,0,1)TEMPERATURE") + field(PREC, "1") + field(EGU, "C") + field(VAL, "25.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:Temperature_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)TEMPERATURE") + field(PREC, "1") + field(EGU, "C") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:TemperatureActual") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)TEMPERATURE_ACTUAL") + field(PREC, "1") + field(EGU, "C") + field(SCAN, "I/O Intr") +} + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(asyn,"S03SIM-EA-FSCN-02:CAM:AsynIO") +{ + field(PORT, "FSCN2.CAM") + field(TIB2,"1") + info("ADType", "ADDriver") +} + + +## These are the records from ADBase.template that we modify + +# Some cameras use both AcquisitionFrameRate and AcquirePeriod. +# Make AcquirePeriod update if FrameRate is changed. +record(ao, "S03SIM-EA-FSCN-02:CAM:AcquirePeriod") +{ + info(asyn:READBACK, "1") +} + +# This record hides the fact that some cameras use FrameRate and some use FrameRateAbs +# This is not PINI=YES because AcquirePeriod is and they control the same thing +record(ao, "S03SIM-EA-FSCN-02:CAM:FrameRate") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.CAM 0)GC_FRAMERATE") + field(PREC, "3") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:FrameRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM 0)GC_FRAMERATE") + field(SCAN, "I/O Intr") + field(PREC, "3") +} + +# Some cameras (Basler, Point Grey, FLIR) use AcquisitionFrameRateEnable or AcquisitionFrameRateEnabled +# This record hides the fact that the feature name may differ; the record name is always the same. +record(bo, "S03SIM-EA-FSCN-02:CAM:FrameRateEnable") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM 0)GC_FRAMERATE_ENABLE") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +record(bi, "S03SIM-EA-FSCN-02:CAM:FrameRateEnable_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM 0)GC_FRAMERATE_ENABLE") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +# This record is used to ensure there is a record for TriggerSource even if there is no such GenICam feature +record(mbbo, "S03SIM-EA-FSCN-02:CAM:TriggerSource") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM 0)GC_TRIGGER_SOURCE") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:TriggerSource_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM 0)GC_TRIGGER_SOURCE") + field(ZRST, "N.A.") + field(ZRVL, "0") + field(SCAN, "I/O Intr") +} + +# This record is used to ensure there is a record for TriggerOverlap even if there is no such GenICam feature +record(mbbo, "S03SIM-EA-FSCN-02:CAM:TriggerOverlap") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM 0)GC_TRIGGER_OVERLAP") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:TriggerOverlap_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM 0)GC_TRIGGER_OVERLAP") + field(SCAN, "I/O Intr") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +# This record is used to ensure there is a record for TriggerSoftware even if there is no such GenICam feature +record(bo, "S03SIM-EA-FSCN-02:CAM:TriggerSoftware") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM 0)GC_TRIGGER_SOFTWARE") + field(ZNAM, "Done") + field(ONAM, "Trigger") +} + +# This record is used to ensure there is a record for ExposureMode even if there is no such GenICam feature +record(mbbo, "S03SIM-EA-FSCN-02:CAM:ExposureMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM 0)GC_EXPOSURE_MODE") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:ExposureMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM 0)GC_EXPOSURE_MODE") + field(ZRST, "N.A.") + field(ZRVL, "0") + field(SCAN, "I/O Intr") +} + +# This record is used to ensure there is a record for ExposureAuto even if there is no such GenICam feature +record(mbbo, "S03SIM-EA-FSCN-02:CAM:ExposureAuto") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM 0)GC_EXPOSURE_AUTO") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:ExposureAuto_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM 0)GC_EXPOSURE_AUTO") + field(SCAN, "I/O Intr") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +# This record is used to ensure there is a record for GainAuto even if there is no such GenICam feature +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GainAuto") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM 0)GC_GAIN_AUTO") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GainAuto_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM 0)GC_GAIN_AUTO") + field(SCAN, "I/O Intr") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +# This record is used to ensure there is a record for PixelFormat even if there is no such GenICam feature +record(mbbo, "S03SIM-EA-FSCN-02:CAM:PixelFormat") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM 0)GC_PIXEL_FORMAT") + field(ZRST, "N.A.") + field(ZRVL, "0") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:PixelFormat_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM 0)GC_PIXEL_FORMAT") + field(ZRST, "N.A.") + field(ZRVL, "0") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:ARFramesCompleted") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_COMPLETED") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC LLSV LOLO LOW LSV") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:ARFrameFailures") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_FAILURES") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:ARFrameUnderruns") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_UNDERRUNS") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ARMissingPackets") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_MISSING_PKTS") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV") +} + +record(longin, "S03SIM-EA-FSCN-02:CAM:ARResentPackets") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_RESENT_PKTS") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARPacketResendEnable") +{ + field(DESC, "Packet resend enable") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_PKT_RESEND") + field(ZRST, "Never") + field(ZRVL, "0") + field(ONST, "Always") + field(ONVL, "1") + field(VAL, "1") + field(PINI, "1") + info(autosaveFields, "DESC ONSV ZRSV PINI VAL") +} + +record(longout, "S03SIM-EA-FSCN-02:CAM:ARPacketTimeout") +{ + field(DESC, "Delay in us before packet resend request") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_PKT_TIMEOUT") + field(VAL, "20000") + field(EGU, "us") + field(PINI, "1") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV LLSV LOLO LOW LSV PINI VAL") +} + +record(longout, "S03SIM-EA-FSCN-02:CAM:ARFrameRetention") +{ + field(DESC, "Frame timeout in us after last packet") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_FRAME_RETENTION") + field(VAL, "100000") + field(EGU, "us") + field(PINI, "1") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV LLSV LOLO LOW LSV PINI VAL") +} + +record(longout, "S03SIM-EA-FSCN-02:CAM:ARResetCamera") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_RESET") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ARConnectCamera") +} + +record(longout, "S03SIM-EA-FSCN-02:CAM:ARConnectCamera") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_CONNECTION") + field(VAL, "1") + field(PINI, "1") +} + +record(calcout, "S03SIM-EA-FSCN-02:CAM:ARCheckConnection") +{ + field(SCAN, "1 second") + field(INPA, "S03SIM-EA-FSCN-02:CAM:ARConnectCamera.SEVR CP") + field(CALC, "A==0") + field(OOPT, "When Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:CAM:ARConnectCamera.PROC PP") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:ARConvertPixelFormat_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_CONVERT_PIXEL_FORMAT") + field(ZRST, "Mono16Low") + field(ZRVL, "0") + field(ONST, "Mono16High") + field(ONVL, "1") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC ZRSV ONSV") +} + + +## When unpacking Mono12Packed or Mono12p selects whether 16-bit output is +## left shifted by 4 bits (Mono16High) or not (Mono16Low) +record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARConvertPixelFormat") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_CONVERT_PIXEL_FORMAT") + field(ZRST, "Mono16Low") + field(ZRVL, "0") + field(ONST, "Mono16High") + field(ONVL, "1") + field(PINI, "1") + info(autosaveFields, "DESC ZRSV ONSV VAL") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:ARShiftDir_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_SHIFT_DIR") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "Left") + field(ONVL, "1") + field(TWST, "Right") + field(TWVL, "2") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC ZRSV ONSV") +} + +## Select no shift, left shift, or right shift when reading data +record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARShiftDir") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_SHIFT_DIR") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "Left") + field(ONVL, "1") + field(TWST, "Right") + field(TWVL, "2") + field(PINI, "1") + info(autosaveFields, "DESC ZRSV ONSV VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:ARShiftBits_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_SHIFT_BITS") + field(ZRST, "1") + field(ZRVL, "1") + field(ONST, "2") + field(ONVL, "2") + field(TWST, "3") + field(TWVL, "3") + field(THST, "4") + field(THVL, "4") + field(FRST, "5") + field(FRVL, "5") + field(FVST, "6") + field(FVVL, "6") + field(SXST, "7") + field(SXVL, "7") + field(SVST, "8") + field(SVVL, "8") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC ZRSV ONSV") +} + +## Selects how many bits to shift left or right when reading data +record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARShiftBits") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_SHIFT_BITS") + field(ZRST, "1") + field(ZRVL, "1") + field(ONST, "2") + field(ONVL, "2") + field(TWST, "3") + field(TWVL, "3") + field(THST, "4") + field(THVL, "4") + field(FRST, "5") + field(FRVL, "5") + field(FVST, "6") + field(FVVL, "6") + field(SXST, "7") + field(SXVL, "7") + field(SVST, "8") + field(SVVL, "8") + field(PINI, "1") + info(autosaveFields, "DESC ZRSV ONSV VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ExpAutoTarget_RBV") { + alias("S03SIM-EA-FSCN-01:CAM:ExposureAutoTarg_RBV") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ExpAutoTarget") { + alias("S03SIM-EA-FSCN-01:CAM:ExposureAutoTarg") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoTarget_RBV") { + alias("S03SIM-EA-FSCN-01:CAM:GainAutoTarget_RBV") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoTarget") { + alias("S03SIM-EA-FSCN-01:CAM:GainAutoTarget") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_BalRatioSelector_RBV") { + alias("S03SIM-EA-FSCN-01:CAM:BalanceRatioSele_RBV") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_BalRatioSelector") { + alias("S03SIM-EA-FSCN-01:CAM:BalanceRatioSele") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_BalanceRatioAbs_RBV") { + alias("S03SIM-EA-FSCN-01:CAM:BalanceRatioAbs_RBV") +} + +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_BalanceRatioAbs") { + alias("S03SIM-EA-FSCN-01:CAM:BalanceRatioAbs") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_BalanceWhiteAuto_RBV") { + alias("S03SIM-EA-FSCN-01:CAM:BalanceWhiteAut0_RBV") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_BalanceWhiteAuto") { + alias("S03SIM-EA-FSCN-01:CAM:BalanceWhiteAut0") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:ARFramesCompleted") +{ + alias("S03SIM-EA-FSCN-01:CAM:COMPLETED_RBV") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:ARFrameFailures") +{ + alias("S03SIM-EA-FSCN-01:CAM:FAILURES_RBV") +} + +record(ai, "S03SIM-EA-FSCN-01:CAM:ARFrameUnderruns") +{ + alias("S03SIM-EA-FSCN-01:CAM:UNDERRUNS_RBV") +} + +record(longout, "S03SIM-EA-FSCN-01:CAM:ARResetCamera") +{ + alias("S03SIM-EA-FSCN-01:CAM:RESET") +} + +record(mbbi, "S03SIM-EA-FSCN-01:CAM:ARLeftShift_RBV") { + alias("S03SIM-EA-FSCN-01:CAM:LEFTSHIFT_RBV") +} + +record(mbbo, "S03SIM-EA-FSCN-01:CAM:ARLeftShift") { + alias("S03SIM-EA-FSCN-01:CAM:LEFTSHIFT") +} + +record(bi, "S03SIM-EA-FSCN-01:CAM:ARHWImageMode_RBV") { + alias("S03SIM-EA-FSCN-01:CAM:HWIMAGEMODE_RBV") +} + +record(bo, "S03SIM-EA-FSCN-01:CAM:ARHWImageMode") { + alias("S03SIM-EA-FSCN-01:CAM:HWIMAGEMODE") +} +# Macros: +#% macro, P, Device Prefix +#% macro, R, Device Suffix + + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ExpAutoTarget_RBV") { + alias("S03SIM-EA-FSCN-02:CAM:ExposureAutoTarg_RBV") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ExpAutoTarget") { + alias("S03SIM-EA-FSCN-02:CAM:ExposureAutoTarg") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoTarget_RBV") { + alias("S03SIM-EA-FSCN-02:CAM:GainAutoTarget_RBV") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoTarget") { + alias("S03SIM-EA-FSCN-02:CAM:GainAutoTarget") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_BalRatioSelector_RBV") { + alias("S03SIM-EA-FSCN-02:CAM:BalanceRatioSele_RBV") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_BalRatioSelector") { + alias("S03SIM-EA-FSCN-02:CAM:BalanceRatioSele") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_BalanceRatioAbs_RBV") { + alias("S03SIM-EA-FSCN-02:CAM:BalanceRatioAbs_RBV") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_BalanceRatioAbs") { + alias("S03SIM-EA-FSCN-02:CAM:BalanceRatioAbs") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_BalanceWhiteAuto_RBV") { + alias("S03SIM-EA-FSCN-02:CAM:BalanceWhiteAut0_RBV") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_BalanceWhiteAuto") { + alias("S03SIM-EA-FSCN-02:CAM:BalanceWhiteAut0") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:ARFramesCompleted") +{ + alias("S03SIM-EA-FSCN-02:CAM:COMPLETED_RBV") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:ARFrameFailures") +{ + alias("S03SIM-EA-FSCN-02:CAM:FAILURES_RBV") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:ARFrameUnderruns") +{ + alias("S03SIM-EA-FSCN-02:CAM:UNDERRUNS_RBV") +} + +record(longout, "S03SIM-EA-FSCN-02:CAM:ARResetCamera") +{ + alias("S03SIM-EA-FSCN-02:CAM:RESET") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:ARLeftShift_RBV") { + alias("S03SIM-EA-FSCN-02:CAM:LEFTSHIFT_RBV") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARLeftShift") { + alias("S03SIM-EA-FSCN-02:CAM:LEFTSHIFT") +} + +record(bi, "S03SIM-EA-FSCN-02:CAM:ARHWImageMode_RBV") { + alias("S03SIM-EA-FSCN-02:CAM:HWIMAGEMODE_RBV") +} + +record(bo, "S03SIM-EA-FSCN-02:CAM:ARHWImageMode") { + alias("S03SIM-EA-FSCN-02:CAM:HWIMAGEMODE") +} +# Macros: +#% macro, P, Device Prefix +#% macro, R, Device Suffix + + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_ExpAutoTarget_RBV") { + alias("S03SIM-DI-OAV-01:CAM:ExposureAutoTarg_RBV") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_ExpAutoTarget") { + alias("S03SIM-DI-OAV-01:CAM:ExposureAutoTarg") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_GainAutoTarget_RBV") { + alias("S03SIM-DI-OAV-01:CAM:GainAutoTarget_RBV") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_GainAutoTarget") { + alias("S03SIM-DI-OAV-01:CAM:GainAutoTarget") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_BalRatioSelector_RBV") { + alias("S03SIM-DI-OAV-01:CAM:BalanceRatioSele_RBV") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_BalRatioSelector") { + alias("S03SIM-DI-OAV-01:CAM:BalanceRatioSele") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_BalanceRatioAbs_RBV") { + alias("S03SIM-DI-OAV-01:CAM:BalanceRatioAbs_RBV") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_BalanceRatioAbs") { + alias("S03SIM-DI-OAV-01:CAM:BalanceRatioAbs") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_BalanceWhiteAuto_RBV") { + alias("S03SIM-DI-OAV-01:CAM:BalanceWhiteAut0_RBV") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_BalanceWhiteAuto") { + alias("S03SIM-DI-OAV-01:CAM:BalanceWhiteAut0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:ARFramesCompleted") +{ + alias("S03SIM-DI-OAV-01:CAM:COMPLETED_RBV") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:ARFrameFailures") +{ + alias("S03SIM-DI-OAV-01:CAM:FAILURES_RBV") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:ARFrameUnderruns") +{ + alias("S03SIM-DI-OAV-01:CAM:UNDERRUNS_RBV") +} + +record(longout, "S03SIM-DI-OAV-01:CAM:ARResetCamera") +{ + alias("S03SIM-DI-OAV-01:CAM:RESET") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:ARLeftShift_RBV") { + alias("S03SIM-DI-OAV-01:CAM:LEFTSHIFT_RBV") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:ARLeftShift") { + alias("S03SIM-DI-OAV-01:CAM:LEFTSHIFT") +} + +record(bi, "S03SIM-DI-OAV-01:CAM:ARHWImageMode_RBV") { + alias("S03SIM-DI-OAV-01:CAM:HWIMAGEMODE_RBV") +} + +record(bo, "S03SIM-DI-OAV-01:CAM:ARHWImageMode") { + alias("S03SIM-DI-OAV-01:CAM:HWIMAGEMODE") +} +# Macros: +#% macro, P, Device Prefix +#% macro, R, Device Suffix +#% macro, PORT, Asyn Port name +#% macro, TIMEOUT, Timeout, default=1 +#% macro, ADDR, Asyn Port address, default=0 +#% gui, OAV.CAM, edmtab, ADGenICam.edl, P=S03SIM-DI-OAV-01,R=:CAM:,C=AVT_Manta_G235C + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_FirmwareVerMajor_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_FirmwareVerMajor") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_FirmwareVerMajor") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_FirmwareVerMajor") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_FirmwareVerMinor_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_FirmwareVerMinor") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_FirmwareVerMinor") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_FirmwareVerMinor") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_FirmwareVerBuild_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_FirmwareVerBuild") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_FirmwareVerBuild") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_FirmwareVerBuild") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_SensorType_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_SensorType") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_SensorType") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_SensorType") + field(DOL, "0") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_SensorBits_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_SensorBits") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_SensorBits") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_SensorBits") + field(DISA, "0") +} + +record(stringin, "S03SIM-DI-OAV-01:CAM:GC_DeviceVendorName_RBV") { + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CAM,0,1)GC_S_DeviceVendorName") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(stringin, "S03SIM-DI-OAV-01:CAM:GC_DeviceModelName_RBV") { + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CAM,0,1)GC_S_DeviceModelName") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(stringin, "S03SIM-DI-OAV-01:CAM:GC_DevFirVersion_RBV") { + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CAM,0,1)GC_S_DeviceFirmwareVersion") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(stringin, "S03SIM-DI-OAV-01:CAM:GC_DeviceID_RBV") { + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CAM,0,1)GC_S_DeviceID") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(stringin, "S03SIM-DI-OAV-01:CAM:GC_DeviceUserID_RBV") { + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CAM,0,1)GC_S_DeviceUserID") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(stringin, "S03SIM-DI-OAV-01:CAM:GC_DevicePartNumber_RBV") { + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CAM,0,1)GC_S_DevicePartNumber") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_DeviceScanType_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_DeviceScanType") + field(ZRST, "Areascan") + field(ZRVL, "0") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_DeviceScanType") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_DeviceScanType") + field(DOL, "0") + field(ZRST, "Areascan") + field(ZRVL, "0") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_DevTemSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_DeviceTemperatureSelector") + field(ZRST, "Sensor") + field(ZRVL, "0") + field(ONST, "Main") + field(ONVL, "1") + field(TWST, "Power") + field(TWVL, "2") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_DevTemSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_DeviceTemperatureSelector") + field(DOL, "0") + field(ZRST, "Sensor") + field(ZRVL, "0") + field(ONST, "Main") + field(ONVL, "1") + field(TWST, "Power") + field(TWVL, "2") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_DeviceTemperature_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)GC_D_DeviceTemperature") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_DeviceTemperature") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_D_DeviceTemperature") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_StrBytesPerSecond_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_StreamBytesPerSecond") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_StrBytesPerSecond") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_StreamBytesPerSecond") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_BanControlMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_BandwidthControlMode") + field(ZRST, "StreamBytesPerSe") + field(ZRVL, "0") + field(ONST, "SCPD") + field(ONVL, "1") + field(TWST, "Both") + field(TWVL, "2") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_BanControlMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_BandwidthControlMode") + field(DOL, "0") + field(ZRST, "StreamBytesPerSe") + field(ZRVL, "0") + field(ONST, "SCPD") + field(ONVL, "1") + field(TWST, "Both") + field(TWVL, "2") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_GevSCPSPacketSize_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_GevSCPSPacketSize") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_GevSCPSPacketSize") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_GevSCPSPacketSize") + field(DISA, "0") +} + +record(bi, "S03SIM-DI-OAV-01:CAM:GC_ChunkModeActive_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_B_ChunkModeActive") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(bo, "S03SIM-DI-OAV-01:CAM:GC_ChunkModeActive") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_B_ChunkModeActive") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_PayloadSize_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_PayloadSize") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_PayloadSize") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_PayloadSize") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_NonImaPayloadSize_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_NonImagePayloadSize") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_NonImaPayloadSize") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_NonImagePayloadSize") + field(DISA, "0") +} + +record(bi, "S03SIM-DI-OAV-01:CAM:GC_StrFraRatCon_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_B_StreamFrameRateConstrain") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(bo, "S03SIM-DI-OAV-01:CAM:GC_StrFraRatCon") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_B_StreamFrameRateConstrain") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_StreamHoldEnable_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_StreamHoldEnable") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_StreamHoldEnable") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_StreamHoldEnable") + field(DOL, "0") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_StrHoldCapacity_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_StreamHoldCapacity") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_StrHoldCapacity") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_StreamHoldCapacity") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_GevTimTicFre_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_GevTimestampTickFrequency") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_GevTimTicFre") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_GevTimestampTickFrequency") + field(DISA, "0") +} + +record(longout, "S03SIM-DI-OAV-01:CAM:GC_GevTimConLatch") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_C_GevTimestampControlLatch") + field(DISA, "0") +} + +record(longout, "S03SIM-DI-OAV-01:CAM:GC_GevTimConReset") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_C_GevTimestampControlReset") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_GevTimestampValue_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_GevTimestampValue") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_GevTimestampValue") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_GevTimestampValue") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_PtpMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_PtpMode") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "Slave") + field(ONVL, "1") + field(TWST, "Master") + field(TWVL, "2") + field(THST, "Auto") + field(THVL, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_PtpMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_PtpMode") + field(DOL, "0") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "Slave") + field(ONVL, "1") + field(TWST, "Master") + field(TWVL, "2") + field(THST, "Auto") + field(THVL, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_PtpStatus_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_PtpStatus") + field(ZRST, "Initializing") + field(ZRVL, "0") + field(ONST, "Faulty") + field(ONVL, "1") + field(TWST, "Disabled") + field(TWVL, "2") + field(THST, "Listening") + field(THVL, "3") + field(FRST, "PreMaster") + field(FRVL, "4") + field(FVST, "Master") + field(FVVL, "5") + field(SXST, "Passive") + field(SXVL, "6") + field(SVST, "Uncalibrated") + field(SVVL, "7") + field(EIST, "Slave") + field(EIVL, "8") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_PtpStatus") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_PtpStatus") + field(DOL, "0") + field(ZRST, "Initializing") + field(ZRVL, "0") + field(ONST, "Faulty") + field(ONVL, "1") + field(TWST, "Disabled") + field(TWVL, "2") + field(THST, "Listening") + field(THVL, "3") + field(FRST, "PreMaster") + field(FRVL, "4") + field(FVST, "Master") + field(FVVL, "5") + field(SXST, "Passive") + field(SXVL, "6") + field(SVST, "Uncalibrated") + field(SVVL, "7") + field(EIST, "Slave") + field(EIVL, "8") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_PtpAcqGateTime_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_PtpAcquisitionGateTime") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_PtpAcqGateTime") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_PtpAcquisitionGateTime") + field(DISA, "0") +} + +record(longout, "S03SIM-DI-OAV-01:CAM:GC_AcquisitionStart") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_C_AcquisitionStart") + field(DISA, "0") +} + +record(longout, "S03SIM-DI-OAV-01:CAM:GC_AcquisitionStop") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_C_AcquisitionStop") + field(DISA, "0") +} + +record(longout, "S03SIM-DI-OAV-01:CAM:GC_AcquisitionAbort") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_C_AcquisitionAbort") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_AcquisitionMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_AcquisitionMode") + field(ZRST, "Continuous") + field(ZRVL, "1") + field(ONST, "SingleFrame") + field(ONVL, "2") + field(TWST, "MultiFrame") + field(TWVL, "3") + field(THST, "Recorder") + field(THVL, "4") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_AcquisitionMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_AcquisitionMode") + field(DOL, "1") + field(ZRST, "Continuous") + field(ZRVL, "1") + field(ONST, "SingleFrame") + field(ONVL, "2") + field(TWST, "MultiFrame") + field(TWVL, "3") + field(THST, "Recorder") + field(THVL, "4") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_AcqFrameCount_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_AcquisitionFrameCount") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_AcqFrameCount") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_AcquisitionFrameCount") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_AcqFrameRateAbs_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)GC_D_AcquisitionFrameRateAbs") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_AcqFrameRateAbs") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_D_AcquisitionFrameRateAbs") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_AcqFrameRateLimit_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)GC_D_AcquisitionFrameRateLimit") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_AcqFrameRateLimit") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_D_AcquisitionFrameRateLimit") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_RecPreEventCount_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_RecorderPreEventCount") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_RecPreEventCount") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_RecorderPreEventCount") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_TriggerSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_TriggerSelector") + field(ZRST, "FrameStart") + field(ZRVL, "0") + field(ONST, "AcquisitionStart") + field(ONVL, "3") + field(TWST, "AcquisitionEnd") + field(TWVL, "4") + field(THST, "AcquisitionRecor") + field(THVL, "6") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_TriggerSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_TriggerSelector") + field(DOL, "0") + field(ZRST, "FrameStart") + field(ZRVL, "0") + field(ONST, "AcquisitionStart") + field(ONVL, "3") + field(TWST, "AcquisitionEnd") + field(TWVL, "4") + field(THST, "AcquisitionRecor") + field(THVL, "6") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_TriggerMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_TriggerMode") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_TriggerMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_TriggerMode") + field(DOL, "0") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On") + field(ONVL, "1") + field(DISA, "0") +} + +record(longout, "S03SIM-DI-OAV-01:CAM:GC_TriggerSoftware") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_C_TriggerSoftware") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_TriggerSource_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_TriggerSource") + field(ZRST, "Freerun") + field(ZRVL, "0") + field(ONST, "Line1") + field(ONVL, "1") + field(TWST, "Line2") + field(TWVL, "2") + field(THST, "Line3") + field(THVL, "3") + field(FRST, "Line4") + field(FRVL, "4") + field(FVST, "FixedRate") + field(FVVL, "5") + field(SXST, "Software") + field(SXVL, "6") + field(SVST, "Action0") + field(SVVL, "7") + field(EIST, "Action1") + field(EIVL, "8") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_TriggerSource") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_TriggerSource") + field(DOL, "0") + field(ZRST, "Freerun") + field(ZRVL, "0") + field(ONST, "Line1") + field(ONVL, "1") + field(TWST, "Line2") + field(TWVL, "2") + field(THST, "Line3") + field(THVL, "3") + field(FRST, "Line4") + field(FRVL, "4") + field(FVST, "FixedRate") + field(FVVL, "5") + field(SXST, "Software") + field(SXVL, "6") + field(SVST, "Action0") + field(SVVL, "7") + field(EIST, "Action1") + field(EIVL, "8") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_TriggerActivation_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_TriggerActivation") + field(ZRST, "RisingEdge") + field(ZRVL, "0") + field(ONST, "FallingEdge") + field(ONVL, "1") + field(TWST, "AnyEdge") + field(TWVL, "2") + field(THST, "LevelHigh") + field(THVL, "3") + field(FRST, "LevelLow") + field(FRVL, "4") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_TriggerActivation") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_TriggerActivation") + field(DOL, "0") + field(ZRST, "RisingEdge") + field(ZRVL, "0") + field(ONST, "FallingEdge") + field(ONVL, "1") + field(TWST, "AnyEdge") + field(TWVL, "2") + field(THST, "LevelHigh") + field(THVL, "3") + field(FRST, "LevelLow") + field(FRVL, "4") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_TriggerOverlap_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_TriggerOverlap") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "ReadOut") + field(ONVL, "1") + field(TWST, "PreviousFrame") + field(TWVL, "2") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_TriggerOverlap") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_TriggerOverlap") + field(DOL, "0") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "ReadOut") + field(ONVL, "1") + field(TWST, "PreviousFrame") + field(TWVL, "2") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_TriggerDelayAbs_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)GC_D_TriggerDelayAbs") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_TriggerDelayAbs") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_D_TriggerDelayAbs") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_SensorWidth_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_SensorWidth") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_SensorWidth") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_SensorWidth") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_SensorHeight_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_SensorHeight") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_SensorHeight") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_SensorHeight") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_SensorTaps_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_SensorTaps") + field(ZRST, "One") + field(ZRVL, "0") + field(ONST, "Two") + field(ONVL, "1") + field(TWST, "Four") + field(TWVL, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_SensorTaps") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_SensorTaps") + field(DOL, "0") + field(ZRST, "One") + field(ZRVL, "0") + field(ONST, "Two") + field(ONVL, "1") + field(TWST, "Four") + field(TWVL, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_SenDigTaps_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_SensorDigitizationTaps") + field(ZRST, "One") + field(ZRVL, "0") + field(ONST, "Two") + field(ONVL, "1") + field(TWST, "Four") + field(TWVL, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_SenDigTaps") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_SensorDigitizationTaps") + field(DOL, "0") + field(ZRST, "One") + field(ZRVL, "0") + field(ONST, "Two") + field(ONVL, "1") + field(TWST, "Four") + field(TWVL, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_BinningHorizontal_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_BinningHorizontal") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_BinningHorizontal") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_BinningHorizontal") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_BinningVertical_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_BinningVertical") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_BinningVertical") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_BinningVertical") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_DecHorizontal_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_DecimationHorizontal") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_DecHorizontal") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_DecimationHorizontal") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_DecVertical_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_DecimationVertical") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_DecVertical") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_DecimationVertical") + field(DISA, "0") +} + +record(bi, "S03SIM-DI-OAV-01:CAM:GC_ReverseX_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_B_ReverseX") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(bo, "S03SIM-DI-OAV-01:CAM:GC_ReverseX") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_B_ReverseX") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(bi, "S03SIM-DI-OAV-01:CAM:GC_ReverseY_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_B_ReverseY") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(bo, "S03SIM-DI-OAV-01:CAM:GC_ReverseY") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_B_ReverseY") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_WidthMax_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_WidthMax") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_WidthMax") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_WidthMax") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_HeightMax_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_HeightMax") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_HeightMax") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_HeightMax") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_PixelFormat_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_PixelFormat") + field(ZRST, "Mono8") + field(ZRVL, "0x01080001") + field(ONST, "Mono10") + field(ONVL, "0x01100003") + field(TWST, "Mono12") + field(TWVL, "0x01100005") + field(THST, "Mono12Packed") + field(THVL, "0x010C0006") + field(FRST, "Mono14") + field(FRVL, "0x01100025") + field(FVST, "BayerGR8") + field(FVVL, "0x01080008") + field(SXST, "BayerRG8") + field(SXVL, "0x01080009") + field(SVST, "BayerGB8") + field(SVVL, "0x0108000A") + field(EIST, "BayerBG8") + field(EIVL, "0x0108000B") + field(NIST, "BayerBG10") + field(NIVL, "0x0110000F") + field(TEST, "BayerGR12") + field(TEVL, "0x01100010") + field(ELST, "BayerRG12") + field(ELVL, "0x01100011") + field(TVST, "BayerGB12") + field(TVVL, "0x01100012") + field(TTST, "BayerGR12Packed") + field(TTVL, "0x010C002A") + field(FTST, "BayerRG12Packed") + field(FTVL, "0x010C002B") + field(FFST, "BayerGB12Packed") + field(FFVL, "0x010C002C") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_PixelFormat") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_PixelFormat") + field(DOL, "0x01080001") + field(ZRST, "Mono8") + field(ZRVL, "0x01080001") + field(ONST, "Mono10") + field(ONVL, "0x01100003") + field(TWST, "Mono12") + field(TWVL, "0x01100005") + field(THST, "Mono12Packed") + field(THVL, "0x010C0006") + field(FRST, "Mono14") + field(FRVL, "0x01100025") + field(FVST, "BayerGR8") + field(FVVL, "0x01080008") + field(SXST, "BayerRG8") + field(SXVL, "0x01080009") + field(SVST, "BayerGB8") + field(SVVL, "0x0108000A") + field(EIST, "BayerBG8") + field(EIVL, "0x0108000B") + field(NIST, "BayerBG10") + field(NIVL, "0x0110000F") + field(TEST, "BayerGR12") + field(TEVL, "0x01100010") + field(ELST, "BayerRG12") + field(ELVL, "0x01100011") + field(TVST, "BayerGB12") + field(TVVL, "0x01100012") + field(TTST, "BayerGR12Packed") + field(TTVL, "0x010C002A") + field(FTST, "BayerRG12Packed") + field(FTVL, "0x010C002B") + field(FFST, "BayerGB12Packed") + field(FFVL, "0x010C002C") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_Width_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_Width") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_Width") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_Width") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_Height_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_Height") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_Height") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_Height") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_OffsetX_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_OffsetX") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_OffsetX") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_OffsetX") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_OffsetY_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_OffsetY") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_OffsetY") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_OffsetY") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_ImageSize_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_ImageSize") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_ImageSize") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ImageSize") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_Gamma_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)GC_D_Gamma") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_Gamma") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_D_Gamma") + field(PREC, "3") + field(DISA, "0") +} + +record(bi, "S03SIM-DI-OAV-01:CAM:GC_DefectMaskEnable_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_B_DefectMaskEnable") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(bo, "S03SIM-DI-OAV-01:CAM:GC_DefectMaskEnable") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_B_DefectMaskEnable") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_Hue_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)GC_D_Hue") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_Hue") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_D_Hue") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_Saturation_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)GC_D_Saturation") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_Saturation") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_D_Saturation") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_DSPSubregionLeft_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_DSPSubregionLeft") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_DSPSubregionLeft") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_DSPSubregionLeft") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_DSPSubregionTop_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_DSPSubregionTop") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_DSPSubregionTop") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_DSPSubregionTop") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_DSPSubregionRight_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_DSPSubregionRight") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_DSPSubregionRight") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_DSPSubregionRight") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_DSPSubBottom_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_DSPSubregionBottom") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_DSPSubBottom") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_DSPSubregionBottom") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_ExposureAuto_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_ExposureAuto") + field(ZRST, "Off") + field(ZRVL, "1") + field(ONST, "Once") + field(ONVL, "3") + field(TWST, "Continuous") + field(TWVL, "2") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_ExposureAuto") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_ExposureAuto") + field(DOL, "1") + field(ZRST, "Off") + field(ZRVL, "1") + field(ONST, "Once") + field(ONVL, "3") + field(TWST, "Continuous") + field(TWVL, "2") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_ExposureMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_ExposureMode") + field(ZRST, "Timed") + field(ZRVL, "0") + field(ONST, "TriggerWidth") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_ExposureMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_ExposureMode") + field(DOL, "0") + field(ZRST, "Timed") + field(ZRVL, "0") + field(ONST, "TriggerWidth") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_ExposureTimeAbs_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)GC_D_ExposureTimeAbs") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_ExposureTimeAbs") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_D_ExposureTimeAbs") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_ExpTimeIncrement_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)GC_D_ExposureTimeIncrement") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_ExpTimeIncrement") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_D_ExposureTimeIncrement") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_ExpAutoTarget_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoTarget") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_ExpAutoTarget") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoTarget") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_ExposureAutoAlg_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_ExposureAutoAlg") + field(ZRST, "Mean") + field(ZRVL, "0") + field(ONST, "FitRange") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_ExposureAutoAlg") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_ExposureAutoAlg") + field(DOL, "0") + field(ZRST, "Mean") + field(ZRVL, "0") + field(ONST, "FitRange") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_ExposureAutoMin_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoMin") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_ExposureAutoMin") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoMin") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_ExposureAutoMax_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoMax") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_ExposureAutoMax") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoMax") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_ExposureAutoRate_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoRate") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_ExposureAutoRate") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoRate") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_ExpAutoOutliers_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoOutliers") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_ExpAutoOutliers") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoOutliers") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_ExpAutoAdjustTol_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoAdjustTol") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_ExpAutoAdjustTol") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoAdjustTol") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_GainSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_GainSelector") + field(ZRST, "All") + field(ZRVL, "0") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_GainSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_GainSelector") + field(DOL, "0") + field(ZRST, "All") + field(ZRVL, "0") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_Gain_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)GC_D_Gain") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_Gain") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_D_Gain") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_GainRaw_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_GainRaw") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_GainRaw") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_GainRaw") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_GainAuto_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_GainAuto") + field(ZRST, "Off") + field(ZRVL, "1") + field(ONST, "Once") + field(ONVL, "3") + field(TWST, "Continuous") + field(TWVL, "2") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_GainAuto") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_GainAuto") + field(DOL, "1") + field(ZRST, "Off") + field(ZRVL, "1") + field(ONST, "Once") + field(ONVL, "3") + field(TWST, "Continuous") + field(TWVL, "2") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_GainAutoTarget_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_GainAutoTarget") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_GainAutoTarget") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_GainAutoTarget") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_GainAutoMin_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)GC_D_GainAutoMin") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_GainAutoMin") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_D_GainAutoMin") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_GainAutoMax_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)GC_D_GainAutoMax") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_GainAutoMax") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_D_GainAutoMax") + field(PREC, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_GainAutoRate_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_GainAutoRate") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_GainAutoRate") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_GainAutoRate") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_GainAutoOutliers_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_GainAutoOutliers") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_GainAutoOutliers") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_GainAutoOutliers") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_GainAutoAdjustTol_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_GainAutoAdjustTol") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_GainAutoAdjustTol") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_GainAutoAdjustTol") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_BlaLevelSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_BlackLevelSelector") + field(ZRST, "All") + field(ZRVL, "0") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_BlaLevelSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_BlackLevelSelector") + field(DOL, "0") + field(ZRST, "All") + field(ZRVL, "0") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_BlackLevel_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)GC_D_BlackLevel") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_BlackLevel") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_D_BlackLevel") + field(PREC, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_BalRatioSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_BalanceRatioSelector") + field(ZRST, "Red") + field(ZRVL, "0") + field(ONST, "Blue") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_BalRatioSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_BalanceRatioSelector") + field(DOL, "0") + field(ZRST, "Red") + field(ZRVL, "0") + field(ONST, "Blue") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_BalanceRatioAbs_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)GC_D_BalanceRatioAbs") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_BalanceRatioAbs") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_D_BalanceRatioAbs") + field(PREC, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_BalanceWhiteAuto_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_BalanceWhiteAuto") + field(ZRST, "Off") + field(ZRVL, "1") + field(ONST, "Once") + field(ONVL, "3") + field(TWST, "Continuous") + field(TWVL, "2") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_BalanceWhiteAuto") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_BalanceWhiteAuto") + field(DOL, "1") + field(ZRST, "Off") + field(ZRVL, "1") + field(ONST, "Once") + field(ONVL, "3") + field(TWST, "Continuous") + field(TWVL, "2") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_BalWhiteAutoRate_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_BalanceWhiteAutoRate") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_BalWhiteAutoRate") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_BalanceWhiteAutoRate") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_BalWhiAutAdjTol_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_BalanceWhiteAutoAdjustTol") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_BalWhiAutAdjTol") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_BalanceWhiteAutoAdjustTol") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_IrisMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_IrisMode") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "Video") + field(ONVL, "1") + field(TWST, "VideoOpen") + field(TWVL, "2") + field(THST, "VideoClose") + field(THVL, "3") + field(FRST, "PIrisAuto") + field(FRVL, "4") + field(FVST, "PIrisManual") + field(FVVL, "5") + field(SXST, "DCIris") + field(SXVL, "6") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_IrisMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_IrisMode") + field(DOL, "0") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "Video") + field(ONVL, "1") + field(TWST, "VideoOpen") + field(TWVL, "2") + field(THST, "VideoClose") + field(THVL, "3") + field(FRST, "PIrisAuto") + field(FRVL, "4") + field(FVST, "PIrisManual") + field(FVVL, "5") + field(SXST, "DCIris") + field(SXVL, "6") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_IrisAutoTarget_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_IrisAutoTarget") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_IrisAutoTarget") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_IrisAutoTarget") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_IrisVideoLevel_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_IrisVideoLevel") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_IrisVideoLevel") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_IrisVideoLevel") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_IrisVideoLevelMin_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_IrisVideoLevelMin") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_IrisVideoLevelMin") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_IrisVideoLevelMin") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_IrisVideoLevelMax_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_IrisVideoLevelMax") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_IrisVideoLevelMax") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_IrisVideoLevelMax") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_LenPIrisFrequency_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_LensPIrisFrequency") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_LenPIrisFrequency") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_LensPIrisFrequency") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_LensPIrisNumSteps_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_LensPIrisNumSteps") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_LensPIrisNumSteps") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_LensPIrisNumSteps") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_LensPIrisPosition_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_LensPIrisPosition") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_LensPIrisPosition") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_LensPIrisPosition") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_LenDCDriStrength_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_LensDCDriveStrength") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_LenDCDriStrength") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_LensDCDriveStrength") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_DefMasColEnable_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_DefectMaskColumnEnable") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "Enabled") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_DefMasColEnable") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_DefectMaskColumnEnable") + field(DOL, "0") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "Enabled") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_VsubValue_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_VsubValue") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_VsubValue") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_VsubValue") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_ColTraSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_ColorTransformationSelector") + field(ZRST, "RGBtoRGB") + field(ZRVL, "0") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_ColTraSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_ColorTransformationSelector") + field(DOL, "0") + field(ZRST, "RGBtoRGB") + field(ZRVL, "0") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_ColTraMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_ColorTransformationMode") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "Manual") + field(ONVL, "1") + field(TWST, "Temp6500K") + field(TWVL, "2") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_ColTraMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_ColorTransformationMode") + field(DOL, "0") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "Manual") + field(ONVL, "1") + field(TWST, "Temp6500K") + field(TWVL, "2") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_ColTraValSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_ColorTransformationValueSelector") + field(ZRST, "Gain00") + field(ZRVL, "0") + field(ONST, "Gain01") + field(ONVL, "1") + field(TWST, "Gain02") + field(TWVL, "2") + field(THST, "Gain10") + field(THVL, "3") + field(FRST, "Gain11") + field(FRVL, "4") + field(FVST, "Gain12") + field(FVVL, "5") + field(SXST, "Gain20") + field(SXVL, "6") + field(SVST, "Gain21") + field(SVVL, "7") + field(EIST, "Gain22") + field(EIVL, "8") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_ColTraValSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_ColorTransformationValueSelector") + field(DOL, "0") + field(ZRST, "Gain00") + field(ZRVL, "0") + field(ONST, "Gain01") + field(ONVL, "1") + field(TWST, "Gain02") + field(TWVL, "2") + field(THST, "Gain10") + field(THVL, "3") + field(FRST, "Gain11") + field(FRVL, "4") + field(FVST, "Gain12") + field(FVVL, "5") + field(SXST, "Gain20") + field(SXVL, "6") + field(SVST, "Gain21") + field(SVVL, "7") + field(EIST, "Gain22") + field(EIVL, "8") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_ColTraValue_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.CAM,0,1)GC_D_ColorTransformationValue") + field(PREC, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_ColTraValue") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_D_ColorTransformationValue") + field(PREC, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_LUTSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_LUTSelector") + field(ZRST, "LUT1") + field(ZRVL, "0") + field(ONST, "LUT2") + field(ONVL, "1") + field(TWST, "LUT3") + field(TWVL, "2") + field(THST, "LUT4") + field(THVL, "3") + field(FRST, "LUT5") + field(FRVL, "4") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_LUTSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_LUTSelector") + field(DOL, "0") + field(ZRST, "LUT1") + field(ZRVL, "0") + field(ONST, "LUT2") + field(ONVL, "1") + field(TWST, "LUT3") + field(TWVL, "2") + field(THST, "LUT4") + field(THVL, "3") + field(FRST, "LUT5") + field(FRVL, "4") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_LUTMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_LUTMode") + field(ZRST, "Luminance") + field(ZRVL, "0") + field(ONST, "Red") + field(ONVL, "1") + field(TWST, "Green") + field(TWVL, "2") + field(THST, "Blue") + field(THVL, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_LUTMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_LUTMode") + field(DOL, "0") + field(ZRST, "Luminance") + field(ZRVL, "0") + field(ONST, "Red") + field(ONVL, "1") + field(TWST, "Green") + field(TWVL, "2") + field(THST, "Blue") + field(THVL, "3") + field(DISA, "0") +} + +record(bi, "S03SIM-DI-OAV-01:CAM:GC_LUTEnable_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_B_LUTEnable") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(bo, "S03SIM-DI-OAV-01:CAM:GC_LUTEnable") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_B_LUTEnable") + field(ZNAM, "No") + field(ONAM, "Yes") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_LUTIndex_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_LUTIndex") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_LUTIndex") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_LUTIndex") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_LUTValue_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_LUTValue") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_LUTValue") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_LUTValue") + field(DISA, "0") +} + +record(longout, "S03SIM-DI-OAV-01:CAM:GC_LUTLoadAll") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_C_LUTLoadAll") + field(DISA, "0") +} + +record(longout, "S03SIM-DI-OAV-01:CAM:GC_LUTSaveAll") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_C_LUTSaveAll") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_LUTBitDepthIn_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_LUTBitDepthIn") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_LUTBitDepthIn") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_LUTBitDepthIn") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_LUTBitDepthOut_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_LUTBitDepthOut") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_LUTBitDepthOut") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_LUTBitDepthOut") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_LUTAddress_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_LUTAddress") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_LUTAddress") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_LUTAddress") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_LUTSizeBytes_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_LUTSizeBytes") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_LUTSizeBytes") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_LUTSizeBytes") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_SyncInLevels_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_SyncInLevels") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_SyncInLevels") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_SyncInLevels") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_SyncInSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_SyncInSelector") + field(ZRST, "SyncIn1") + field(ZRVL, "0") + field(ONST, "SyncIn2") + field(ONVL, "1") + field(TWST, "SyncIn3") + field(TWVL, "2") + field(THST, "SyncIn4") + field(THVL, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_SyncInSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_SyncInSelector") + field(DOL, "0") + field(ZRST, "SyncIn1") + field(ZRVL, "0") + field(ONST, "SyncIn2") + field(ONVL, "1") + field(TWST, "SyncIn3") + field(TWVL, "2") + field(THST, "SyncIn4") + field(THVL, "3") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_SynInGlitchFilter_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_SyncInGlitchFilter") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_SynInGlitchFilter") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_SyncInGlitchFilter") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_SyncOutLevels_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_SyncOutLevels") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_SyncOutLevels") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_SyncOutLevels") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_SyncOutSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_SyncOutSelector") + field(ZRST, "SyncOut1") + field(ZRVL, "0") + field(ONST, "SyncOut2") + field(ONVL, "1") + field(TWST, "SyncOut3") + field(TWVL, "2") + field(THST, "SyncOut4") + field(THVL, "3") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_SyncOutSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_SyncOutSelector") + field(DOL, "0") + field(ZRST, "SyncOut1") + field(ZRVL, "0") + field(ONST, "SyncOut2") + field(ONVL, "1") + field(TWST, "SyncOut3") + field(TWVL, "2") + field(THST, "SyncOut4") + field(THVL, "3") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_SyncOutSource_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_SyncOutSource") + field(ZRST, "GPO") + field(ZRVL, "0") + field(ONST, "AcquisitionTrigg") + field(ONVL, "1") + field(TWST, "FrameTriggerRead") + field(TWVL, "2") + field(THST, "Exposing") + field(THVL, "4") + field(FRST, "FrameReadout") + field(FRVL, "5") + field(FVST, "Imaging") + field(FVVL, "6") + field(SXST, "Acquiring") + field(SXVL, "7") + field(SVST, "LineIn1") + field(SVVL, "8") + field(EIST, "LineIn2") + field(EIVL, "9") + field(NIST, "Strobe1") + field(NIVL, "12") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_SyncOutSource") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_SyncOutSource") + field(DOL, "0") + field(ZRST, "GPO") + field(ZRVL, "0") + field(ONST, "AcquisitionTrigg") + field(ONVL, "1") + field(TWST, "FrameTriggerRead") + field(TWVL, "2") + field(THST, "Exposing") + field(THVL, "4") + field(FRST, "FrameReadout") + field(FRVL, "5") + field(FVST, "Imaging") + field(FVVL, "6") + field(SXST, "Acquiring") + field(SXVL, "7") + field(SVST, "LineIn1") + field(SVVL, "8") + field(EIST, "LineIn2") + field(EIVL, "9") + field(NIST, "Strobe1") + field(NIVL, "12") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_SyncOutPolarity_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_SyncOutPolarity") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Invert") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_SyncOutPolarity") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_SyncOutPolarity") + field(DOL, "0") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Invert") + field(ONVL, "1") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_StrobeSource_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_StrobeSource") + field(ZRST, "AcquisitionTrigg") + field(ZRVL, "1") + field(ONST, "FrameTriggerRead") + field(ONVL, "2") + field(TWST, "FrameTrigger") + field(TWVL, "3") + field(THST, "Exposing") + field(THVL, "4") + field(FRST, "FrameReadout") + field(FRVL, "5") + field(FVST, "Acquiring") + field(FVVL, "7") + field(SXST, "LineIn1") + field(SXVL, "8") + field(SVST, "LineIn2") + field(SVVL, "9") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_StrobeSource") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_StrobeSource") + field(DOL, "1") + field(ZRST, "AcquisitionTrigg") + field(ZRVL, "1") + field(ONST, "FrameTriggerRead") + field(ONVL, "2") + field(TWST, "FrameTrigger") + field(TWVL, "3") + field(THST, "Exposing") + field(THVL, "4") + field(FRST, "FrameReadout") + field(FRVL, "5") + field(FVST, "Acquiring") + field(FVVL, "7") + field(SXST, "LineIn1") + field(SXVL, "8") + field(SVST, "LineIn2") + field(SVVL, "9") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_StrDurationMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_StrobeDurationMode") + field(ZRST, "Source") + field(ZRVL, "0") + field(ONST, "Controlled") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_StrDurationMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_StrobeDurationMode") + field(DOL, "0") + field(ZRST, "Source") + field(ZRVL, "0") + field(ONST, "Controlled") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_StrobeDelay_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_StrobeDelay") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_StrobeDelay") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_StrobeDelay") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_StrobeDuration_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_StrobeDuration") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_StrobeDuration") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_StrobeDuration") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_EventSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_EventSelector") + field(ZRST, "AcquisitionStart") + field(ZRVL, "40000") + field(ONST, "AcquisitionEnd") + field(ONVL, "40001") + field(TWST, "FrameTrigger") + field(TWVL, "40002") + field(THST, "ExposureEnd") + field(THVL, "40003") + field(FRST, "AcquisitionRecor") + field(FRVL, "40004") + field(FVST, "PtpSyncLost") + field(FVVL, "40005") + field(SXST, "PtpSyncLocked") + field(SXVL, "40006") + field(SVST, "Line1RisingEdge") + field(SVVL, "40010") + field(EIST, "Line1FallingEdge") + field(EIVL, "40011") + field(NIST, "Line2RisingEdge") + field(NIVL, "40012") + field(TEST, "Line2FallingEdge") + field(TEVL, "40013") + field(ELST, "Line3RisingEdge") + field(ELVL, "40014") + field(TVST, "Line3FallingEdge") + field(TVVL, "40015") + field(TTST, "Line4RisingEdge") + field(TTVL, "40016") + field(FTST, "Line4FallingEdge") + field(FTVL, "40017") + field(FFST, "FrameTriggerRead") + field(FFVL, "40018") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_EventSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_EventSelector") + field(DOL, "40000") + field(ZRST, "AcquisitionStart") + field(ZRVL, "40000") + field(ONST, "AcquisitionEnd") + field(ONVL, "40001") + field(TWST, "FrameTrigger") + field(TWVL, "40002") + field(THST, "ExposureEnd") + field(THVL, "40003") + field(FRST, "AcquisitionRecor") + field(FRVL, "40004") + field(FVST, "PtpSyncLost") + field(FVVL, "40005") + field(SXST, "PtpSyncLocked") + field(SXVL, "40006") + field(SVST, "Line1RisingEdge") + field(SVVL, "40010") + field(EIST, "Line1FallingEdge") + field(EIVL, "40011") + field(NIST, "Line2RisingEdge") + field(NIVL, "40012") + field(TEST, "Line2FallingEdge") + field(TEVL, "40013") + field(ELST, "Line3RisingEdge") + field(ELVL, "40014") + field(TVST, "Line3FallingEdge") + field(TVVL, "40015") + field(TTST, "Line4RisingEdge") + field(TTVL, "40016") + field(FTST, "Line4FallingEdge") + field(FTVL, "40017") + field(FFST, "FrameTriggerRead") + field(FFVL, "40018") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_EventNotification_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_EventNotification") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_EventNotification") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_EventNotification") + field(DOL, "0") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_EventsEnable1_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventsEnable1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_EventsEnable1") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventsEnable1") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_EveAcqStart_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventAcquisitionStart") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_EveAcqStart") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventAcquisitionStart") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_EveAcquisitionEnd_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventAcquisitionEnd") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_EveAcquisitionEnd") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventAcquisitionEnd") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_EventFrameTrigger_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventFrameTrigger") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_EventFrameTrigger") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventFrameTrigger") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_EventExposureEnd_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventExposureEnd") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_EventExposureEnd") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventExposureEnd") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_EveAcqRecTrigger_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventAcquisitionRecordTrigger") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_EveAcqRecTrigger") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventAcquisitionRecordTrigger") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_EveLinRisingEdge_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventLine1RisingEdge") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_EveLinRisingEdge") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventLine1RisingEdge") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_EveLinFallingEdge_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventLine1FallingEdge") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_EveLinFallingEdge") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventLine1FallingEdge") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_EveLinRisingEdg0_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventLine2RisingEdge") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_EveLinRisingEdg0") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventLine2RisingEdge") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_EveLinFallingEdg0_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventLine2FallingEdge") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_EveLinFallingEdg0") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventLine2FallingEdge") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_EveFraTriReady_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventFrameTriggerReady") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_EveFraTriReady") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventFrameTriggerReady") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_EveExposureStart_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventExposureStart") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_EveExposureStart") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventExposureStart") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_EventAction0_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventAction0") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_EventAction0") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventAction0") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_EventAction1_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventAction1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_EventAction1") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventAction1") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_EventPtpSyncLost_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventPtpSyncLost") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_EventPtpSyncLost") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventPtpSyncLost") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_EvePtpSyncLocked_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventPtpSyncLocked") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_EvePtpSyncLocked") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventPtpSyncLocked") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_EventOverflow_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventOverflow") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_EventOverflow") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventOverflow") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_EventError_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventError") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_EventError") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventError") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_UserSetSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_UserSetSelector") + field(ZRST, "Default") + field(ZRVL, "0") + field(ONST, "UserSet1") + field(ONVL, "1") + field(TWST, "UserSet2") + field(TWVL, "2") + field(THST, "UserSet3") + field(THVL, "3") + field(FRST, "UserSet4") + field(FRVL, "4") + field(FVST, "UserSet5") + field(FVVL, "5") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_UserSetSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_UserSetSelector") + field(DOL, "0") + field(ZRST, "Default") + field(ZRVL, "0") + field(ONST, "UserSet1") + field(ONVL, "1") + field(TWST, "UserSet2") + field(TWVL, "2") + field(THST, "UserSet3") + field(THVL, "3") + field(FRST, "UserSet4") + field(FRVL, "4") + field(FVST, "UserSet5") + field(FVVL, "5") + field(DISA, "0") +} + +record(longout, "S03SIM-DI-OAV-01:CAM:GC_UserSetLoad") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_C_UserSetLoad") + field(DISA, "0") +} + +record(longout, "S03SIM-DI-OAV-01:CAM:GC_UserSetSave") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_C_UserSetSave") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_UseSetDefSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_UserSetDefaultSelector") + field(ZRST, "Default") + field(ZRVL, "0") + field(ONST, "UserSet1") + field(ONVL, "1") + field(TWST, "UserSet2") + field(TWVL, "2") + field(THST, "UserSet3") + field(THVL, "3") + field(FRST, "UserSet4") + field(FRVL, "4") + field(FVST, "UserSet5") + field(FVVL, "5") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_UseSetDefSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_UserSetDefaultSelector") + field(DOL, "0") + field(ZRST, "Default") + field(ZRVL, "0") + field(ONST, "UserSet1") + field(ONVL, "1") + field(TWST, "UserSet2") + field(TWVL, "2") + field(THST, "UserSet3") + field(THVL, "3") + field(FRST, "UserSet4") + field(FRVL, "4") + field(FVST, "UserSet5") + field(FVVL, "5") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_ActUncMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_ActionUnconditionalMode") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On") + field(ONVL, "1") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_ActUncMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_ActionUnconditionalMode") + field(DOL, "0") + field(ZRST, "Off") + field(ZRVL, "0") + field(ONST, "On") + field(ONVL, "1") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_ActionDeviceKey_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_ActionDeviceKey") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_ActionDeviceKey") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ActionDeviceKey") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_ActionQueueSize_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_ActionQueueSize") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_ActionQueueSize") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ActionQueueSize") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_ActionSelector_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_ActionSelector") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_ActionSelector") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ActionSelector") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_ActionGroupMask_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_ActionGroupMask") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_ActionGroupMask") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ActionGroupMask") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_ActionGroupKey_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_ActionGroupKey") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_ActionGroupKey") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ActionGroupKey") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_PvDumTriSelector_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_PvDummyTriggerSelector") + field(ZRST, "FrameStart") + field(ZRVL, "0") + field(ONST, "AcquisitionStart") + field(ONVL, "3") + field(TWST, "AcquisitionEnd") + field(TWVL, "4") + field(THST, "AcquisitionRecor") + field(THVL, "6") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_PvDumTriSelector") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_PvDummyTriggerSelector") + field(DOL, "0") + field(ZRST, "FrameStart") + field(ZRVL, "0") + field(ONST, "AcquisitionStart") + field(ONVL, "3") + field(TWST, "AcquisitionEnd") + field(TWVL, "4") + field(THST, "AcquisitionRecor") + field(THVL, "6") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_PvDumFraStaTriMod_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_PvDummyFrameStartTriggerMode") + field(ZRST, "Freerun") + field(ZRVL, "2147483648") + field(ONST, "SyncIn1") + field(ONVL, "2147483649") + field(TWST, "SyncIn2") + field(TWVL, "2147483650") + field(THST, "SyncIn3") + field(THVL, "2147483651") + field(FRST, "SyncIn4") + field(FRVL, "2147483652") + field(FVST, "FixedRate") + field(FVVL, "2147483653") + field(SXST, "Software") + field(SXVL, "2147483654") + field(SVST, "Action0") + field(SVVL, "2147483655") + field(EIST, "Action1") + field(EIVL, "2147483656") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_PvDumFraStaTriMod") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_PvDummyFrameStartTriggerMode") + field(DOL, "2147483648") + field(ZRST, "Freerun") + field(ZRVL, "2147483648") + field(ONST, "SyncIn1") + field(ONVL, "2147483649") + field(TWST, "SyncIn2") + field(TWVL, "2147483650") + field(THST, "SyncIn3") + field(THVL, "2147483651") + field(FRST, "SyncIn4") + field(FRVL, "2147483652") + field(FVST, "FixedRate") + field(FVVL, "2147483653") + field(SXST, "Software") + field(SXVL, "2147483654") + field(SVST, "Action0") + field(SVVL, "2147483655") + field(EIST, "Action1") + field(EIVL, "2147483656") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_PvDumTriggerMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_PvDummyTriggerMode") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "SyncIn1") + field(ONVL, "2147483649") + field(TWST, "SyncIn2") + field(TWVL, "2147483650") + field(THST, "SyncIn3") + field(THVL, "2147483651") + field(FRST, "SyncIn4") + field(FRVL, "2147483652") + field(FVST, "FixedRate") + field(FVVL, "2147483653") + field(SXST, "Software") + field(SXVL, "2147483654") + field(SVST, "Action0") + field(SVVL, "2147483655") + field(EIST, "Action1") + field(EIVL, "2147483656") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_PvDumTriggerMode") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_PvDummyTriggerMode") + field(DOL, "0") + field(ZRST, "Disabled") + field(ZRVL, "0") + field(ONST, "SyncIn1") + field(ONVL, "2147483649") + field(TWST, "SyncIn2") + field(TWVL, "2147483650") + field(THST, "SyncIn3") + field(THVL, "2147483651") + field(FRST, "SyncIn4") + field(FRVL, "2147483652") + field(FVST, "FixedRate") + field(FVVL, "2147483653") + field(SXST, "Software") + field(SXVL, "2147483654") + field(SVST, "Action0") + field(SVVL, "2147483655") + field(EIST, "Action1") + field(EIVL, "2147483656") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_FraStaTriDelay_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_FrameStartTriggerDelay") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_FraStaTriDelay") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_FrameStartTriggerDelay") + field(DISA, "0") +} + +record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_ExposureModeValue_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.CAM,0,1)GC_E_ExposureModeValue") + field(ZRST, "Timed") + field(ZRVL, "1") + field(ONST, "AutoOnce") + field(ONVL, "3") + field(TWST, "Auto") + field(TWVL, "2") + field(THST, "TriggerWidth") + field(THVL, "5") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_ExposureModeValue") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.CAM,0,1)GC_E_ExposureModeValue") + field(DOL, "1") + field(ZRST, "Timed") + field(ZRVL, "1") + field(ONST, "AutoOnce") + field(ONVL, "3") + field(TWST, "Auto") + field(TWVL, "2") + field(THST, "TriggerWidth") + field(THVL, "5") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_ExposureValue_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_ExposureValue") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_ExposureValue") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ExposureValue") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_TimeStampValueLo_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_TimeStampValueLo") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_TimeStampValueLo") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_TimeStampValueLo") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_TimeStampValueHi_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_TimeStampValueHi") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_TimeStampValueHi") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_TimeStampValueHi") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_WhitebalValueRed_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_WhitebalValueRed") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_WhitebalValueRed") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_WhitebalValueRed") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_WhitebalValueBlue_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_WhitebalValueBlue") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_WhitebalValueBlue") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_WhitebalValueBlue") + field(DISA, "0") +} + +record(stringin, "S03SIM-DI-OAV-01:CAM:GC_ModelName_RBV") { + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.CAM,0,1)GC_S_ModelName") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_PvGainRaw_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_PvGainRaw") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_PvGainRaw") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_PvGainRaw") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_PvGainAutoMin_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_PvGainAutoMin") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_PvGainAutoMin") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_PvGainAutoMin") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_PvGainAutoMax_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_PvGainAutoMax") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_PvGainAutoMax") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_PvGainAutoMax") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_OffsetValue_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_OffsetValue") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_OffsetValue") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_OffsetValue") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_PtpAcqGateTimeHi_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_PtpAcquisitionGateTimeHi") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_PtpAcqGateTimeHi") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_PtpAcquisitionGateTimeHi") + field(DISA, "0") +} + +record(ai, "S03SIM-DI-OAV-01:CAM:GC_PtpAcqGateTimeLo_RBV") { + field(DTYP, "asynInt64") + field(INP, "@asyn(OAV.CAM,0,1)GC_I_PtpAcquisitionGateTimeLo") + field(SCAN, "I/O Intr") + field(DISA, "0") +} + +record(ao, "S03SIM-DI-OAV-01:CAM:GC_PtpAcqGateTimeLo") { + field(DTYP, "asynInt64") + field(OUT, "@asyn(OAV.CAM,0,1)GC_I_PtpAcquisitionGateTimeLo") + field(DISA, "0") +} + +#=================================================================# +# Template file: NDROI.template +# Database for ND ROIs +# Mark Rivers +# April 22, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, OAV.roi, edmtab, NDROI.edl, P=S03SIM-DI-OAV-01,R=:ROI: + +# This associates a BOY screen with the template +# % gui, OAV.roi, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-DI-OAV-01, R=:ROI:, DESC=Region of Interest +# % gui, OAV.roi, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-DI-OAV-01, R=:ROI:, DESC=Region of Interest +# % gui, OAV.roi, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-DI-OAV-01, R=:ROI:, DESC=Region of Interest + +# % gui, OAV.roi, groupHeading, Info +# % gui, OAV.roi, readback, Port name, S03SIM-DI-OAV-01:ROI:PortName_RBV +# % gui, OAV.roi, readback, Plugin type, S03SIM-DI-OAV-01:ROI:PluginType_RBV +# Input +# % gui, OAV.roi, demandString, Input, S03SIM-DI-OAV-01:ROI:NDArrayPort +# % gui, OAV.roi, readback, Input, S03SIM-DI-OAV-01:ROI:NDArrayPort_RBV + +# % gui, OAV.roi, groupHeading, Callback +# % gui, OAV.roi, enum, Callbacks, S03SIM-DI-OAV-01:ROI:EnableCallbacks +# % gui, OAV.roi, statusbits, Callbacks, S03SIM-DI-OAV-01:ROI:EnableCallbacks_RBV +# % gui, OAV.roi, demand, Min Callback Time, S03SIM-DI-OAV-01:ROI:MinCallbackTime +# % gui, OAV.roi, readback, Min Callback Time, S03SIM-DI-OAV-01:ROI:MinCallbackTime_RBV +# % gui, OAV.roi, enum, Block Callbacks, S03SIM-DI-OAV-01:ROI:BlockingCallbacks +# % gui, OAV.roi, statusbits, Block Callbacks, S03SIM-DI-OAV-01:ROI:BlockingCallbacks_RBV + +# % gui, OAV.roi, groupHeading, Counters +# % gui, OAV.roi, demand, Array Counter, S03SIM-DI-OAV-01:ROI:ArrayCounter +# % gui, OAV.roi, readback, Array Counter, S03SIM-DI-OAV-01:ROI:ArrayCounter_RBV +# % gui, OAV.roi, readback, Array Rate (fps), S03SIM-DI-OAV-01:ROI:ArrayRate_RBV +# % gui, OAV.roi, readback, Queue Use, S03SIM-DI-OAV-01:ROI:QueueUse +# % gui, OAV.roi, readback, Queue Size, S03SIM-DI-OAV-01:ROI:QueueSize +# % gui, OAV.roi, demand, Dropped Arrays, S03SIM-DI-OAV-01:ROI:DroppedArrays +# % gui, OAV.roi, readback, Dropped Arrays, S03SIM-DI-OAV-01:ROI:DroppedArrays_RBV + +# % gui, OAV.roi, groupHeading, Array Settings +# % gui, OAV.roi, readback, Num Dimensions, S03SIM-DI-OAV-01:ROI:NDimensions_RBV +# % gui, OAV.roi, readback, Dim 0 Size, S03SIM-DI-OAV-01:ROI:ArraySize0_RBV +# % gui, OAV.roi, readback, Dim 1 Size, S03SIM-DI-OAV-01:ROI:ArraySize1_RBV +# % gui, OAV.roi, readback, Dim 2 Size, S03SIM-DI-OAV-01:ROI:ArraySize2_RBV +# % gui, OAV.roi, readback, Input Data Type, S03SIM-DI-OAV-01:ROI:DataType_RBV +# % gui, OAV.roi, readback, Colour Mode, S03SIM-DI-OAV-01:ROI:ColorMode_RBV +# % gui, OAV.roi, readback, Bayer Pattern, S03SIM-DI-OAV-01:ROI:BayerPattern_RBV +# % gui, OAV.roi, readback, Unique id, S03SIM-DI-OAV-01:ROI:UniqueId_RBV +# % gui, OAV.roi, readback, Timestamp, S03SIM-DI-OAV-01:ROI:TimeStamp_RBV + +# Output +# % gui, OAV.roi, groupHeading, Output +# % gui, OAV.roi, demand, Name, S03SIM-DI-OAV-01:ROI:Name +# % gui, OAV.roi, enum, Out data type, S03SIM-DI-OAV-01:ROI:DataTypeOut +# % gui, OAV.roi, readback, Out data type, S03SIM-DI-OAV-01:ROI:DataTypeOut_RBV +# % gui, OAV.roi, demand, Attributes file, S03SIM-DI-OAV-01:ROI:NDAttributesFile +# Scaling +# % gui, OAV.roi, groupHeading, Scaling +# % gui, OAV.roi, enum, Enable Scaling, S03SIM-DI-OAV-01:ROI:EnableScale +# % gui, OAV.roi, readback, Enable Scaling, S03SIM-DI-OAV-01:ROI:EnableScale_RBV +# % gui, OAV.roi, demand, Scale Divisor, S03SIM-DI-OAV-01:ROI:Scale +# % gui, OAV.roi, readback, Scale Divisor, S03SIM-DI-OAV-01:ROI:Scale_RBV +# X region +# % gui, OAV.roi, groupHeading, X Region +# % gui, OAV.roi, enum, X, S03SIM-DI-OAV-01:ROI:EnableX +# % gui, OAV.roi, readback, X, S03SIM-DI-OAV-01:ROI:EnableX_RBV +# % gui, OAV.roi, enum, Autosize X, S03SIM-DI-OAV-01:ROI:AutoSizeX +# % gui, OAV.roi, readback, Autosize X, S03SIM-DI-OAV-01:ROI:AutoSizeX_RBV +# % gui, OAV.roi, readback, Input Size X, S03SIM-DI-OAV-01:ROI:MaxSizeX_RBV +# % gui, OAV.roi, demand, Binning X, S03SIM-DI-OAV-01:ROI:BinX +# % gui, OAV.roi, readback, Binning X, S03SIM-DI-OAV-01:ROI:BinX_RBV +# % gui, OAV.roi, demand, Start X, S03SIM-DI-OAV-01:ROI:MinX +# % gui, OAV.roi, readback, Start X, S03SIM-DI-OAV-01:ROI:MinX_RBV +# % gui, OAV.roi, demand, Size X, S03SIM-DI-OAV-01:ROI:SizeX +# % gui, OAV.roi, readback, Size X, S03SIM-DI-OAV-01:ROI:SizeX_RBV +# % gui, OAV.roi, enum, Reverse X, S03SIM-DI-OAV-01:ROI:ReverseX +# % gui, OAV.roi, readback, Reverse X, S03SIM-DI-OAV-01:ROI:ReverseX_RBV +# % gui, OAV.roi, readback, Bytes X, S03SIM-DI-OAV-01:ROI:ArraySizeX_RBV +# Y region +# % gui, OAV.roi, groupHeading, Y Region +# % gui, OAV.roi, enum, Y, S03SIM-DI-OAV-01:ROI:EnableY +# % gui, OAV.roi, readback, Y, S03SIM-DI-OAV-01:ROI:EnableY_RBV +# % gui, OAV.roi, enum, Autosize Y, S03SIM-DI-OAV-01:ROI:AutoSizeY +# % gui, OAV.roi, readback, Autosize Y, S03SIM-DI-OAV-01:ROI:AutoSizeY_RBV +# % gui, OAV.roi, readback, Input size Y, S03SIM-DI-OAV-01:ROI:MaxSizeY_RBV +# % gui, OAV.roi, demand, Binning Y, S03SIM-DI-OAV-01:ROI:BinY +# % gui, OAV.roi, readback, Binning Y, S03SIM-DI-OAV-01:ROI:BinY_RBV +# % gui, OAV.roi, demand, Start Y, S03SIM-DI-OAV-01:ROI:MinY +# % gui, OAV.roi, readback, Start Y, S03SIM-DI-OAV-01:ROI:MinY_RBV +# % gui, OAV.roi, demand, Size Y, S03SIM-DI-OAV-01:ROI:SizeY +# % gui, OAV.roi, readback, Size Y, S03SIM-DI-OAV-01:ROI:SizeY_RBV +# % gui, OAV.roi, enum, Reverse Y, S03SIM-DI-OAV-01:ROI:ReverseY +# % gui, OAV.roi, readback, Reverse Y, S03SIM-DI-OAV-01:ROI:ReverseY_RBV +# % gui, OAV.roi, readback, Bytes Y, S03SIM-DI-OAV-01:ROI:ArraySizeY_RBV +# Z region +# % gui, OAV.roi, groupHeading, Z Region +# % gui, OAV.roi, enum, Z, S03SIM-DI-OAV-01:ROI:EnableZ +# % gui, OAV.roi, readback, Z, S03SIM-DI-OAV-01:ROI:EnableZ_RBV +# % gui, OAV.roi, enum, Autosize Z, S03SIM-DI-OAV-01:ROI:AutoSizeZ +# % gui, OAV.roi, readback, Autosize Z, S03SIM-DI-OAV-01:ROI:AutoSizeZ_RBV +# % gui, OAV.roi, readback, Input size Z, S03SIM-DI-OAV-01:ROI:MaxSizeZ_RBV +# % gui, OAV.roi, demand, Binning Z, S03SIM-DI-OAV-01:ROI:BinZ +# % gui, OAV.roi, readback, Binning Z, S03SIM-DI-OAV-01:ROI:BinZ_RBV +# % gui, OAV.roi, demand, Start Z, S03SIM-DI-OAV-01:ROI:MinZ +# % gui, OAV.roi, readback, Start Z, S03SIM-DI-OAV-01:ROI:MinZ_RBV +# % gui, OAV.roi, demand, Size Z, S03SIM-DI-OAV-01:ROI:SizeZ +# % gui, OAV.roi, readback, Size Z, S03SIM-DI-OAV-01:ROI:SizeZ_RBV +# % gui, OAV.roi, enum, Reverse Z, S03SIM-DI-OAV-01:ROI:ReverseZ +# % gui, OAV.roi, readback, Reverse Z, S03SIM-DI-OAV-01:ROI:ReverseZ_RBV +# % gui, OAV.roi, readback, Bytes Z, S03SIM-DI-OAV-01:ROI:ArraySizeZ_RBV +# Memory +# % gui, OAV.roi, groupHeading, Memory +# % gui, OAV.roi, readback, Max memory, S03SIM-DI-OAV-01:ROI:PoolMaxMem +# % gui, OAV.roi, readback, Max buffers, S03SIM-DI-OAV-01:ROI:PoolMaxBuffers +# % gui, OAV.roi, readback, Used memory, S03SIM-DI-OAV-01:ROI:PoolUsedMem +# % gui, OAV.roi, readback, Allocated buffers, S03SIM-DI-OAV-01:ROI:PoolAllocBuffers +# % gui, OAV.roi, readback, Free buffers, S03SIM-DI-OAV-01:ROI:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.roi,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.roi,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.roi,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.roi,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.roi,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.roi,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.roi,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.roi,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ROI:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:ROI:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:ROI:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:ROI:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:ROI:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:ROI:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:ROI:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:ROI:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:ROI:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:ROI:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:ROI:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.roi,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.roi,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:ROI:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:ROI:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.roi,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ROI:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ROI:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:ROI:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:ROI:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.roi,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:ROI:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:ROI:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:ROI:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:ROI:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:ROI:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.roi,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:ROI:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.roi,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:ROI:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:ROI:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.roi,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:ROI:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.roi,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:ROI:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:ROI:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:ROI:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:ROI:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:ROI:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:ROI:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.roi,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:ROI:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.roi,0,1)NDARRAY_PORT") + field(VAL, "OAV.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.roi,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.roi,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ROI:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.roi,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:ROI:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:ROI:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:ROI:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:ROI:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.roi,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ROI:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.roi,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:ROI:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.roi,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:ROI:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:ROI:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:ROI:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ROI:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:ROI:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:ROI:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:ROI:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ROI:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:ROI:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:ROI:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:ROI:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ROI:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:ROI:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:ROI:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:ROI:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:ROI:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:ROI:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.roi,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:ROI:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.roi,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:ROI:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:ROI:SortSize") + field(OUT, "S03SIM-DI-OAV-01:ROI:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:ROI:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:ROI:AsynIO") +{ + field(PORT, "OAV.roi") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the label for the ROI # +################################################################### +record(stringout, "S03SIM-DI-OAV-01:ROI:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.roi,0,1)NAME") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.roi,0,1)NAME") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the ROI definition # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-DI-OAV-01:ROI:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DIM0_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DIM0_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DIM1_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DIM1_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI:BinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DIM2_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:BinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DIM2_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DIM0_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DIM0_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DIM1_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DIM1_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI:MinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DIM2_MIN") + field(LOPR, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:MinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DIM2_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DIM0_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DIM0_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DIM1_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DIM1_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI:SizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DIM2_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:SizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DIM2_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI:AutoSizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DIM0_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI:AutoSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DIM0_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI:AutoSizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DIM1_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI:AutoSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DIM1_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI:AutoSizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DIM2_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI:AutoSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DIM2_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DIM0_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DIM1_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:MaxSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DIM2_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DIM0_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DIM0_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DIM1_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DIM1_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI:ReverseZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DIM2_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI:ReverseZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DIM2_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI:EnableX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DIM0_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI:EnableX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DIM0_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI:EnableY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DIM1_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI:EnableY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DIM1_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI:EnableZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)DIM2_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI:EnableZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)DIM2_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the scaling of the data. Useful when # +# binning or converting data types # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ROI:EnableScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)ENABLE_SCALE") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI:EnableScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)ENABLE_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.roi,0,1)SCALE_VALUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ROI:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.roi,0,1)SCALE_VALUE") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ROI:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-DI-OAV-01:ROI:MaxX") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:ROI:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:ROI:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:ROI:MaxX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:ROI:MinX.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:ROI:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:ROI:MaxY") +{ + field(INP, "S03SIM-DI-OAV-01:ROI:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:ROI:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:ROI:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:ROI:MaxY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:ROI:MinY.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:ROI:SizeY.HOPR NPP") +} + +################################################################### +# These records whether dimensions of 1 are collapsed (removed) # # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ROI:CollapseDims") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.roi,0,1)COLLAPSE_DIMS") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI:CollapseDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.roi,0,1)COLLAPSE_DIMS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +#=================================================================# +# Template file: NDROI.template +# Database for ND ROIs +# Mark Rivers +# April 22, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, OAV.rois.roi1, edmtab, NDROI.edl, P=S03SIM-DI-OAV-01,R=:ROI1: + +# This associates a BOY screen with the template +# % gui, OAV.rois.roi1, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-DI-OAV-01, R=:ROI1:, DESC=Region of Interest +# % gui, OAV.rois.roi1, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-DI-OAV-01, R=:ROI1:, DESC=Region of Interest +# % gui, OAV.rois.roi1, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-DI-OAV-01, R=:ROI1:, DESC=Region of Interest + +# % gui, OAV.rois.roi1, groupHeading, Info +# % gui, OAV.rois.roi1, readback, Port name, S03SIM-DI-OAV-01:ROI1:PortName_RBV +# % gui, OAV.rois.roi1, readback, Plugin type, S03SIM-DI-OAV-01:ROI1:PluginType_RBV +# Input +# % gui, OAV.rois.roi1, demandString, Input, S03SIM-DI-OAV-01:ROI1:NDArrayPort +# % gui, OAV.rois.roi1, readback, Input, S03SIM-DI-OAV-01:ROI1:NDArrayPort_RBV + +# % gui, OAV.rois.roi1, groupHeading, Callback +# % gui, OAV.rois.roi1, enum, Callbacks, S03SIM-DI-OAV-01:ROI1:EnableCallbacks +# % gui, OAV.rois.roi1, statusbits, Callbacks, S03SIM-DI-OAV-01:ROI1:EnableCallbacks_RBV +# % gui, OAV.rois.roi1, demand, Min Callback Time, S03SIM-DI-OAV-01:ROI1:MinCallbackTime +# % gui, OAV.rois.roi1, readback, Min Callback Time, S03SIM-DI-OAV-01:ROI1:MinCallbackTime_RBV +# % gui, OAV.rois.roi1, enum, Block Callbacks, S03SIM-DI-OAV-01:ROI1:BlockingCallbacks +# % gui, OAV.rois.roi1, statusbits, Block Callbacks, S03SIM-DI-OAV-01:ROI1:BlockingCallbacks_RBV + +# % gui, OAV.rois.roi1, groupHeading, Counters +# % gui, OAV.rois.roi1, demand, Array Counter, S03SIM-DI-OAV-01:ROI1:ArrayCounter +# % gui, OAV.rois.roi1, readback, Array Counter, S03SIM-DI-OAV-01:ROI1:ArrayCounter_RBV +# % gui, OAV.rois.roi1, readback, Array Rate (fps), S03SIM-DI-OAV-01:ROI1:ArrayRate_RBV +# % gui, OAV.rois.roi1, readback, Queue Use, S03SIM-DI-OAV-01:ROI1:QueueUse +# % gui, OAV.rois.roi1, readback, Queue Size, S03SIM-DI-OAV-01:ROI1:QueueSize +# % gui, OAV.rois.roi1, demand, Dropped Arrays, S03SIM-DI-OAV-01:ROI1:DroppedArrays +# % gui, OAV.rois.roi1, readback, Dropped Arrays, S03SIM-DI-OAV-01:ROI1:DroppedArrays_RBV + +# % gui, OAV.rois.roi1, groupHeading, Array Settings +# % gui, OAV.rois.roi1, readback, Num Dimensions, S03SIM-DI-OAV-01:ROI1:NDimensions_RBV +# % gui, OAV.rois.roi1, readback, Dim 0 Size, S03SIM-DI-OAV-01:ROI1:ArraySize0_RBV +# % gui, OAV.rois.roi1, readback, Dim 1 Size, S03SIM-DI-OAV-01:ROI1:ArraySize1_RBV +# % gui, OAV.rois.roi1, readback, Dim 2 Size, S03SIM-DI-OAV-01:ROI1:ArraySize2_RBV +# % gui, OAV.rois.roi1, readback, Input Data Type, S03SIM-DI-OAV-01:ROI1:DataType_RBV +# % gui, OAV.rois.roi1, readback, Colour Mode, S03SIM-DI-OAV-01:ROI1:ColorMode_RBV +# % gui, OAV.rois.roi1, readback, Bayer Pattern, S03SIM-DI-OAV-01:ROI1:BayerPattern_RBV +# % gui, OAV.rois.roi1, readback, Unique id, S03SIM-DI-OAV-01:ROI1:UniqueId_RBV +# % gui, OAV.rois.roi1, readback, Timestamp, S03SIM-DI-OAV-01:ROI1:TimeStamp_RBV + +# Output +# % gui, OAV.rois.roi1, groupHeading, Output +# % gui, OAV.rois.roi1, demand, Name, S03SIM-DI-OAV-01:ROI1:Name +# % gui, OAV.rois.roi1, enum, Out data type, S03SIM-DI-OAV-01:ROI1:DataTypeOut +# % gui, OAV.rois.roi1, readback, Out data type, S03SIM-DI-OAV-01:ROI1:DataTypeOut_RBV +# % gui, OAV.rois.roi1, demand, Attributes file, S03SIM-DI-OAV-01:ROI1:NDAttributesFile +# Scaling +# % gui, OAV.rois.roi1, groupHeading, Scaling +# % gui, OAV.rois.roi1, enum, Enable Scaling, S03SIM-DI-OAV-01:ROI1:EnableScale +# % gui, OAV.rois.roi1, readback, Enable Scaling, S03SIM-DI-OAV-01:ROI1:EnableScale_RBV +# % gui, OAV.rois.roi1, demand, Scale Divisor, S03SIM-DI-OAV-01:ROI1:Scale +# % gui, OAV.rois.roi1, readback, Scale Divisor, S03SIM-DI-OAV-01:ROI1:Scale_RBV +# X region +# % gui, OAV.rois.roi1, groupHeading, X Region +# % gui, OAV.rois.roi1, enum, X, S03SIM-DI-OAV-01:ROI1:EnableX +# % gui, OAV.rois.roi1, readback, X, S03SIM-DI-OAV-01:ROI1:EnableX_RBV +# % gui, OAV.rois.roi1, enum, Autosize X, S03SIM-DI-OAV-01:ROI1:AutoSizeX +# % gui, OAV.rois.roi1, readback, Autosize X, S03SIM-DI-OAV-01:ROI1:AutoSizeX_RBV +# % gui, OAV.rois.roi1, readback, Input Size X, S03SIM-DI-OAV-01:ROI1:MaxSizeX_RBV +# % gui, OAV.rois.roi1, demand, Binning X, S03SIM-DI-OAV-01:ROI1:BinX +# % gui, OAV.rois.roi1, readback, Binning X, S03SIM-DI-OAV-01:ROI1:BinX_RBV +# % gui, OAV.rois.roi1, demand, Start X, S03SIM-DI-OAV-01:ROI1:MinX +# % gui, OAV.rois.roi1, readback, Start X, S03SIM-DI-OAV-01:ROI1:MinX_RBV +# % gui, OAV.rois.roi1, demand, Size X, S03SIM-DI-OAV-01:ROI1:SizeX +# % gui, OAV.rois.roi1, readback, Size X, S03SIM-DI-OAV-01:ROI1:SizeX_RBV +# % gui, OAV.rois.roi1, enum, Reverse X, S03SIM-DI-OAV-01:ROI1:ReverseX +# % gui, OAV.rois.roi1, readback, Reverse X, S03SIM-DI-OAV-01:ROI1:ReverseX_RBV +# % gui, OAV.rois.roi1, readback, Bytes X, S03SIM-DI-OAV-01:ROI1:ArraySizeX_RBV +# Y region +# % gui, OAV.rois.roi1, groupHeading, Y Region +# % gui, OAV.rois.roi1, enum, Y, S03SIM-DI-OAV-01:ROI1:EnableY +# % gui, OAV.rois.roi1, readback, Y, S03SIM-DI-OAV-01:ROI1:EnableY_RBV +# % gui, OAV.rois.roi1, enum, Autosize Y, S03SIM-DI-OAV-01:ROI1:AutoSizeY +# % gui, OAV.rois.roi1, readback, Autosize Y, S03SIM-DI-OAV-01:ROI1:AutoSizeY_RBV +# % gui, OAV.rois.roi1, readback, Input size Y, S03SIM-DI-OAV-01:ROI1:MaxSizeY_RBV +# % gui, OAV.rois.roi1, demand, Binning Y, S03SIM-DI-OAV-01:ROI1:BinY +# % gui, OAV.rois.roi1, readback, Binning Y, S03SIM-DI-OAV-01:ROI1:BinY_RBV +# % gui, OAV.rois.roi1, demand, Start Y, S03SIM-DI-OAV-01:ROI1:MinY +# % gui, OAV.rois.roi1, readback, Start Y, S03SIM-DI-OAV-01:ROI1:MinY_RBV +# % gui, OAV.rois.roi1, demand, Size Y, S03SIM-DI-OAV-01:ROI1:SizeY +# % gui, OAV.rois.roi1, readback, Size Y, S03SIM-DI-OAV-01:ROI1:SizeY_RBV +# % gui, OAV.rois.roi1, enum, Reverse Y, S03SIM-DI-OAV-01:ROI1:ReverseY +# % gui, OAV.rois.roi1, readback, Reverse Y, S03SIM-DI-OAV-01:ROI1:ReverseY_RBV +# % gui, OAV.rois.roi1, readback, Bytes Y, S03SIM-DI-OAV-01:ROI1:ArraySizeY_RBV +# Z region +# % gui, OAV.rois.roi1, groupHeading, Z Region +# % gui, OAV.rois.roi1, enum, Z, S03SIM-DI-OAV-01:ROI1:EnableZ +# % gui, OAV.rois.roi1, readback, Z, S03SIM-DI-OAV-01:ROI1:EnableZ_RBV +# % gui, OAV.rois.roi1, enum, Autosize Z, S03SIM-DI-OAV-01:ROI1:AutoSizeZ +# % gui, OAV.rois.roi1, readback, Autosize Z, S03SIM-DI-OAV-01:ROI1:AutoSizeZ_RBV +# % gui, OAV.rois.roi1, readback, Input size Z, S03SIM-DI-OAV-01:ROI1:MaxSizeZ_RBV +# % gui, OAV.rois.roi1, demand, Binning Z, S03SIM-DI-OAV-01:ROI1:BinZ +# % gui, OAV.rois.roi1, readback, Binning Z, S03SIM-DI-OAV-01:ROI1:BinZ_RBV +# % gui, OAV.rois.roi1, demand, Start Z, S03SIM-DI-OAV-01:ROI1:MinZ +# % gui, OAV.rois.roi1, readback, Start Z, S03SIM-DI-OAV-01:ROI1:MinZ_RBV +# % gui, OAV.rois.roi1, demand, Size Z, S03SIM-DI-OAV-01:ROI1:SizeZ +# % gui, OAV.rois.roi1, readback, Size Z, S03SIM-DI-OAV-01:ROI1:SizeZ_RBV +# % gui, OAV.rois.roi1, enum, Reverse Z, S03SIM-DI-OAV-01:ROI1:ReverseZ +# % gui, OAV.rois.roi1, readback, Reverse Z, S03SIM-DI-OAV-01:ROI1:ReverseZ_RBV +# % gui, OAV.rois.roi1, readback, Bytes Z, S03SIM-DI-OAV-01:ROI1:ArraySizeZ_RBV +# Memory +# % gui, OAV.rois.roi1, groupHeading, Memory +# % gui, OAV.rois.roi1, readback, Max memory, S03SIM-DI-OAV-01:ROI1:PoolMaxMem +# % gui, OAV.rois.roi1, readback, Max buffers, S03SIM-DI-OAV-01:ROI1:PoolMaxBuffers +# % gui, OAV.rois.roi1, readback, Used memory, S03SIM-DI-OAV-01:ROI1:PoolUsedMem +# % gui, OAV.rois.roi1, readback, Allocated buffers, S03SIM-DI-OAV-01:ROI1:PoolAllocBuffers +# % gui, OAV.rois.roi1, readback, Free buffers, S03SIM-DI-OAV-01:ROI1:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI1:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi1,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI1:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi1,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI1:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi1,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI1:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi1,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI1:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi1,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI1:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi1,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI1:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi1,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI1:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi1,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ROI1:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:ROI1:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI1:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI1:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:ROI1:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:ROI1:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:ROI1:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI1:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:ROI1:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:ROI1:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:ROI1:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:ROI1:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:ROI1:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:ROI1:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:ROI1:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi1,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ROI1:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI1:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ROI1:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI1:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:ROI1:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:ROI1:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi1,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:ROI1:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:ROI1:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI1:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:ROI1:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:ROI1:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI1:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI1:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:ROI1:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.rois.roi1,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:ROI1:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.rois.roi1,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:ROI1:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:ROI1:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi1,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:ROI1:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi1,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:ROI1:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI1:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:ROI1:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:ROI1:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI1:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi1,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:ROI1:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.rois.roi1,0,1)NDARRAY_PORT") + field(VAL, "OAV.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI1:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi1,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI1:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI1:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI1:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI1:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi1,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ROI1:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi1,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI1:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:ROI1:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI1:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI1:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:ROI1:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:ROI1:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI1:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:ROI1:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi1,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ROI1:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi1,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:ROI1:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi1,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI1:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI1:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI1:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:ROI1:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI1:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI1:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:ROI1:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ROI1:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:ROI1:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:ROI1:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ROI1:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:ROI1:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:ROI1:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ROI1:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:ROI1:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:ROI1:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:ROI1:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:ROI1:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:ROI1:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI1:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI1:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi1,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:ROI1:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi1,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI1:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI1:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:ROI1:SortSize") + field(OUT, "S03SIM-DI-OAV-01:ROI1:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:ROI1:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI1:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:ROI1:AsynIO") +{ + field(PORT, "OAV.rois.roi1") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the label for the ROI # +################################################################### +record(stringout, "S03SIM-DI-OAV-01:ROI1:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.rois.roi1,0,1)NAME") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI1:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi1,0,1)NAME") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the ROI definition # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-DI-OAV-01:ROI1:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM0_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DIM0_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI1:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM1_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DIM1_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI1:BinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM2_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:BinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DIM2_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI1:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM0_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DIM0_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI1:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM1_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DIM1_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI1:MinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM2_MIN") + field(LOPR, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:MinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DIM2_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI1:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM0_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DIM0_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI1:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM1_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DIM1_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI1:SizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM2_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:SizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DIM2_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI1:AutoSizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM0_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI1:AutoSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DIM0_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI1:AutoSizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM1_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI1:AutoSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DIM1_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI1:AutoSizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM2_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI1:AutoSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DIM2_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DIM0_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DIM1_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:MaxSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DIM2_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI1:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM0_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI1:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DIM0_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI1:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM1_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI1:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DIM1_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI1:ReverseZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM2_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI1:ReverseZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DIM2_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI1:EnableX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM0_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI1:EnableX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DIM0_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI1:EnableY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM1_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI1:EnableY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DIM1_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI1:EnableZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM2_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI1:EnableZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)DIM2_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the scaling of the data. Useful when # +# binning or converting data types # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ROI1:EnableScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)ENABLE_SCALE") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI1:EnableScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)ENABLE_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI1:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi1,0,1)SCALE_VALUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ROI1:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi1,0,1)SCALE_VALUE") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ROI1:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI1:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-DI-OAV-01:ROI1:MaxX") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:ROI1:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:ROI1:MaxX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:ROI1:MinX.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:ROI1:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:ROI1:MaxY") +{ + field(INP, "S03SIM-DI-OAV-01:ROI1:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:ROI1:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:ROI1:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:ROI1:MaxY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:ROI1:MinY.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:ROI1:SizeY.HOPR NPP") +} + +################################################################### +# These records whether dimensions of 1 are collapsed (removed) # # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ROI1:CollapseDims") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi1,0,1)COLLAPSE_DIMS") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI1:CollapseDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi1,0,1)COLLAPSE_DIMS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +#=================================================================# +# Template file: NDROI.template +# Database for ND ROIs +# Mark Rivers +# April 22, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, OAV.rois.roi2, edmtab, NDROI.edl, P=S03SIM-DI-OAV-01,R=:ROI2: + +# This associates a BOY screen with the template +# % gui, OAV.rois.roi2, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-DI-OAV-01, R=:ROI2:, DESC=Region of Interest +# % gui, OAV.rois.roi2, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-DI-OAV-01, R=:ROI2:, DESC=Region of Interest +# % gui, OAV.rois.roi2, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-DI-OAV-01, R=:ROI2:, DESC=Region of Interest + +# % gui, OAV.rois.roi2, groupHeading, Info +# % gui, OAV.rois.roi2, readback, Port name, S03SIM-DI-OAV-01:ROI2:PortName_RBV +# % gui, OAV.rois.roi2, readback, Plugin type, S03SIM-DI-OAV-01:ROI2:PluginType_RBV +# Input +# % gui, OAV.rois.roi2, demandString, Input, S03SIM-DI-OAV-01:ROI2:NDArrayPort +# % gui, OAV.rois.roi2, readback, Input, S03SIM-DI-OAV-01:ROI2:NDArrayPort_RBV + +# % gui, OAV.rois.roi2, groupHeading, Callback +# % gui, OAV.rois.roi2, enum, Callbacks, S03SIM-DI-OAV-01:ROI2:EnableCallbacks +# % gui, OAV.rois.roi2, statusbits, Callbacks, S03SIM-DI-OAV-01:ROI2:EnableCallbacks_RBV +# % gui, OAV.rois.roi2, demand, Min Callback Time, S03SIM-DI-OAV-01:ROI2:MinCallbackTime +# % gui, OAV.rois.roi2, readback, Min Callback Time, S03SIM-DI-OAV-01:ROI2:MinCallbackTime_RBV +# % gui, OAV.rois.roi2, enum, Block Callbacks, S03SIM-DI-OAV-01:ROI2:BlockingCallbacks +# % gui, OAV.rois.roi2, statusbits, Block Callbacks, S03SIM-DI-OAV-01:ROI2:BlockingCallbacks_RBV + +# % gui, OAV.rois.roi2, groupHeading, Counters +# % gui, OAV.rois.roi2, demand, Array Counter, S03SIM-DI-OAV-01:ROI2:ArrayCounter +# % gui, OAV.rois.roi2, readback, Array Counter, S03SIM-DI-OAV-01:ROI2:ArrayCounter_RBV +# % gui, OAV.rois.roi2, readback, Array Rate (fps), S03SIM-DI-OAV-01:ROI2:ArrayRate_RBV +# % gui, OAV.rois.roi2, readback, Queue Use, S03SIM-DI-OAV-01:ROI2:QueueUse +# % gui, OAV.rois.roi2, readback, Queue Size, S03SIM-DI-OAV-01:ROI2:QueueSize +# % gui, OAV.rois.roi2, demand, Dropped Arrays, S03SIM-DI-OAV-01:ROI2:DroppedArrays +# % gui, OAV.rois.roi2, readback, Dropped Arrays, S03SIM-DI-OAV-01:ROI2:DroppedArrays_RBV + +# % gui, OAV.rois.roi2, groupHeading, Array Settings +# % gui, OAV.rois.roi2, readback, Num Dimensions, S03SIM-DI-OAV-01:ROI2:NDimensions_RBV +# % gui, OAV.rois.roi2, readback, Dim 0 Size, S03SIM-DI-OAV-01:ROI2:ArraySize0_RBV +# % gui, OAV.rois.roi2, readback, Dim 1 Size, S03SIM-DI-OAV-01:ROI2:ArraySize1_RBV +# % gui, OAV.rois.roi2, readback, Dim 2 Size, S03SIM-DI-OAV-01:ROI2:ArraySize2_RBV +# % gui, OAV.rois.roi2, readback, Input Data Type, S03SIM-DI-OAV-01:ROI2:DataType_RBV +# % gui, OAV.rois.roi2, readback, Colour Mode, S03SIM-DI-OAV-01:ROI2:ColorMode_RBV +# % gui, OAV.rois.roi2, readback, Bayer Pattern, S03SIM-DI-OAV-01:ROI2:BayerPattern_RBV +# % gui, OAV.rois.roi2, readback, Unique id, S03SIM-DI-OAV-01:ROI2:UniqueId_RBV +# % gui, OAV.rois.roi2, readback, Timestamp, S03SIM-DI-OAV-01:ROI2:TimeStamp_RBV + +# Output +# % gui, OAV.rois.roi2, groupHeading, Output +# % gui, OAV.rois.roi2, demand, Name, S03SIM-DI-OAV-01:ROI2:Name +# % gui, OAV.rois.roi2, enum, Out data type, S03SIM-DI-OAV-01:ROI2:DataTypeOut +# % gui, OAV.rois.roi2, readback, Out data type, S03SIM-DI-OAV-01:ROI2:DataTypeOut_RBV +# % gui, OAV.rois.roi2, demand, Attributes file, S03SIM-DI-OAV-01:ROI2:NDAttributesFile +# Scaling +# % gui, OAV.rois.roi2, groupHeading, Scaling +# % gui, OAV.rois.roi2, enum, Enable Scaling, S03SIM-DI-OAV-01:ROI2:EnableScale +# % gui, OAV.rois.roi2, readback, Enable Scaling, S03SIM-DI-OAV-01:ROI2:EnableScale_RBV +# % gui, OAV.rois.roi2, demand, Scale Divisor, S03SIM-DI-OAV-01:ROI2:Scale +# % gui, OAV.rois.roi2, readback, Scale Divisor, S03SIM-DI-OAV-01:ROI2:Scale_RBV +# X region +# % gui, OAV.rois.roi2, groupHeading, X Region +# % gui, OAV.rois.roi2, enum, X, S03SIM-DI-OAV-01:ROI2:EnableX +# % gui, OAV.rois.roi2, readback, X, S03SIM-DI-OAV-01:ROI2:EnableX_RBV +# % gui, OAV.rois.roi2, enum, Autosize X, S03SIM-DI-OAV-01:ROI2:AutoSizeX +# % gui, OAV.rois.roi2, readback, Autosize X, S03SIM-DI-OAV-01:ROI2:AutoSizeX_RBV +# % gui, OAV.rois.roi2, readback, Input Size X, S03SIM-DI-OAV-01:ROI2:MaxSizeX_RBV +# % gui, OAV.rois.roi2, demand, Binning X, S03SIM-DI-OAV-01:ROI2:BinX +# % gui, OAV.rois.roi2, readback, Binning X, S03SIM-DI-OAV-01:ROI2:BinX_RBV +# % gui, OAV.rois.roi2, demand, Start X, S03SIM-DI-OAV-01:ROI2:MinX +# % gui, OAV.rois.roi2, readback, Start X, S03SIM-DI-OAV-01:ROI2:MinX_RBV +# % gui, OAV.rois.roi2, demand, Size X, S03SIM-DI-OAV-01:ROI2:SizeX +# % gui, OAV.rois.roi2, readback, Size X, S03SIM-DI-OAV-01:ROI2:SizeX_RBV +# % gui, OAV.rois.roi2, enum, Reverse X, S03SIM-DI-OAV-01:ROI2:ReverseX +# % gui, OAV.rois.roi2, readback, Reverse X, S03SIM-DI-OAV-01:ROI2:ReverseX_RBV +# % gui, OAV.rois.roi2, readback, Bytes X, S03SIM-DI-OAV-01:ROI2:ArraySizeX_RBV +# Y region +# % gui, OAV.rois.roi2, groupHeading, Y Region +# % gui, OAV.rois.roi2, enum, Y, S03SIM-DI-OAV-01:ROI2:EnableY +# % gui, OAV.rois.roi2, readback, Y, S03SIM-DI-OAV-01:ROI2:EnableY_RBV +# % gui, OAV.rois.roi2, enum, Autosize Y, S03SIM-DI-OAV-01:ROI2:AutoSizeY +# % gui, OAV.rois.roi2, readback, Autosize Y, S03SIM-DI-OAV-01:ROI2:AutoSizeY_RBV +# % gui, OAV.rois.roi2, readback, Input size Y, S03SIM-DI-OAV-01:ROI2:MaxSizeY_RBV +# % gui, OAV.rois.roi2, demand, Binning Y, S03SIM-DI-OAV-01:ROI2:BinY +# % gui, OAV.rois.roi2, readback, Binning Y, S03SIM-DI-OAV-01:ROI2:BinY_RBV +# % gui, OAV.rois.roi2, demand, Start Y, S03SIM-DI-OAV-01:ROI2:MinY +# % gui, OAV.rois.roi2, readback, Start Y, S03SIM-DI-OAV-01:ROI2:MinY_RBV +# % gui, OAV.rois.roi2, demand, Size Y, S03SIM-DI-OAV-01:ROI2:SizeY +# % gui, OAV.rois.roi2, readback, Size Y, S03SIM-DI-OAV-01:ROI2:SizeY_RBV +# % gui, OAV.rois.roi2, enum, Reverse Y, S03SIM-DI-OAV-01:ROI2:ReverseY +# % gui, OAV.rois.roi2, readback, Reverse Y, S03SIM-DI-OAV-01:ROI2:ReverseY_RBV +# % gui, OAV.rois.roi2, readback, Bytes Y, S03SIM-DI-OAV-01:ROI2:ArraySizeY_RBV +# Z region +# % gui, OAV.rois.roi2, groupHeading, Z Region +# % gui, OAV.rois.roi2, enum, Z, S03SIM-DI-OAV-01:ROI2:EnableZ +# % gui, OAV.rois.roi2, readback, Z, S03SIM-DI-OAV-01:ROI2:EnableZ_RBV +# % gui, OAV.rois.roi2, enum, Autosize Z, S03SIM-DI-OAV-01:ROI2:AutoSizeZ +# % gui, OAV.rois.roi2, readback, Autosize Z, S03SIM-DI-OAV-01:ROI2:AutoSizeZ_RBV +# % gui, OAV.rois.roi2, readback, Input size Z, S03SIM-DI-OAV-01:ROI2:MaxSizeZ_RBV +# % gui, OAV.rois.roi2, demand, Binning Z, S03SIM-DI-OAV-01:ROI2:BinZ +# % gui, OAV.rois.roi2, readback, Binning Z, S03SIM-DI-OAV-01:ROI2:BinZ_RBV +# % gui, OAV.rois.roi2, demand, Start Z, S03SIM-DI-OAV-01:ROI2:MinZ +# % gui, OAV.rois.roi2, readback, Start Z, S03SIM-DI-OAV-01:ROI2:MinZ_RBV +# % gui, OAV.rois.roi2, demand, Size Z, S03SIM-DI-OAV-01:ROI2:SizeZ +# % gui, OAV.rois.roi2, readback, Size Z, S03SIM-DI-OAV-01:ROI2:SizeZ_RBV +# % gui, OAV.rois.roi2, enum, Reverse Z, S03SIM-DI-OAV-01:ROI2:ReverseZ +# % gui, OAV.rois.roi2, readback, Reverse Z, S03SIM-DI-OAV-01:ROI2:ReverseZ_RBV +# % gui, OAV.rois.roi2, readback, Bytes Z, S03SIM-DI-OAV-01:ROI2:ArraySizeZ_RBV +# Memory +# % gui, OAV.rois.roi2, groupHeading, Memory +# % gui, OAV.rois.roi2, readback, Max memory, S03SIM-DI-OAV-01:ROI2:PoolMaxMem +# % gui, OAV.rois.roi2, readback, Max buffers, S03SIM-DI-OAV-01:ROI2:PoolMaxBuffers +# % gui, OAV.rois.roi2, readback, Used memory, S03SIM-DI-OAV-01:ROI2:PoolUsedMem +# % gui, OAV.rois.roi2, readback, Allocated buffers, S03SIM-DI-OAV-01:ROI2:PoolAllocBuffers +# % gui, OAV.rois.roi2, readback, Free buffers, S03SIM-DI-OAV-01:ROI2:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI2:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi2,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI2:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi2,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI2:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi2,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI2:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi2,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI2:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi2,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI2:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi2,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI2:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi2,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI2:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi2,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ROI2:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:ROI2:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI2:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI2:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:ROI2:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:ROI2:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:ROI2:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI2:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:ROI2:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:ROI2:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:ROI2:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:ROI2:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:ROI2:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:ROI2:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:ROI2:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi2,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ROI2:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI2:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ROI2:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI2:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:ROI2:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:ROI2:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi2,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:ROI2:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:ROI2:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI2:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:ROI2:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:ROI2:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI2:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI2:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:ROI2:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.rois.roi2,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:ROI2:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.rois.roi2,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:ROI2:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:ROI2:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi2,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:ROI2:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi2,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:ROI2:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI2:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:ROI2:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:ROI2:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI2:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi2,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:ROI2:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.rois.roi2,0,1)NDARRAY_PORT") + field(VAL, "OAV.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI2:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi2,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI2:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI2:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI2:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI2:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi2,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ROI2:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi2,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI2:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:ROI2:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI2:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI2:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:ROI2:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:ROI2:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI2:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:ROI2:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi2,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ROI2:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi2,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:ROI2:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi2,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI2:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI2:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI2:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:ROI2:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI2:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI2:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:ROI2:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ROI2:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:ROI2:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:ROI2:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ROI2:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:ROI2:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:ROI2:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ROI2:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:ROI2:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:ROI2:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:ROI2:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:ROI2:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:ROI2:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI2:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI2:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi2,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:ROI2:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi2,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI2:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI2:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:ROI2:SortSize") + field(OUT, "S03SIM-DI-OAV-01:ROI2:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:ROI2:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI2:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:ROI2:AsynIO") +{ + field(PORT, "OAV.rois.roi2") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the label for the ROI # +################################################################### +record(stringout, "S03SIM-DI-OAV-01:ROI2:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.rois.roi2,0,1)NAME") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI2:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi2,0,1)NAME") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the ROI definition # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-DI-OAV-01:ROI2:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM0_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DIM0_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI2:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM1_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DIM1_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI2:BinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM2_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:BinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DIM2_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI2:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM0_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DIM0_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI2:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM1_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DIM1_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI2:MinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM2_MIN") + field(LOPR, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:MinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DIM2_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI2:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM0_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DIM0_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI2:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM1_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DIM1_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI2:SizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM2_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:SizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DIM2_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI2:AutoSizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM0_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI2:AutoSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DIM0_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI2:AutoSizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM1_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI2:AutoSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DIM1_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI2:AutoSizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM2_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI2:AutoSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DIM2_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DIM0_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DIM1_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:MaxSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DIM2_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI2:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM0_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI2:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DIM0_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI2:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM1_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI2:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DIM1_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI2:ReverseZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM2_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI2:ReverseZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DIM2_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI2:EnableX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM0_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI2:EnableX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DIM0_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI2:EnableY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM1_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI2:EnableY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DIM1_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI2:EnableZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM2_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI2:EnableZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)DIM2_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the scaling of the data. Useful when # +# binning or converting data types # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ROI2:EnableScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)ENABLE_SCALE") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI2:EnableScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)ENABLE_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI2:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi2,0,1)SCALE_VALUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ROI2:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi2,0,1)SCALE_VALUE") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ROI2:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI2:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-DI-OAV-01:ROI2:MaxX") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:ROI2:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:ROI2:MaxX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:ROI2:MinX.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:ROI2:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:ROI2:MaxY") +{ + field(INP, "S03SIM-DI-OAV-01:ROI2:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:ROI2:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:ROI2:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:ROI2:MaxY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:ROI2:MinY.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:ROI2:SizeY.HOPR NPP") +} + +################################################################### +# These records whether dimensions of 1 are collapsed (removed) # # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ROI2:CollapseDims") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi2,0,1)COLLAPSE_DIMS") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI2:CollapseDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi2,0,1)COLLAPSE_DIMS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +#=================================================================# +# Template file: NDROI.template +# Database for ND ROIs +# Mark Rivers +# April 22, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, OAV.rois.roi3, edmtab, NDROI.edl, P=S03SIM-DI-OAV-01,R=:ROI3: + +# This associates a BOY screen with the template +# % gui, OAV.rois.roi3, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-DI-OAV-01, R=:ROI3:, DESC=Region of Interest +# % gui, OAV.rois.roi3, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-DI-OAV-01, R=:ROI3:, DESC=Region of Interest +# % gui, OAV.rois.roi3, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-DI-OAV-01, R=:ROI3:, DESC=Region of Interest + +# % gui, OAV.rois.roi3, groupHeading, Info +# % gui, OAV.rois.roi3, readback, Port name, S03SIM-DI-OAV-01:ROI3:PortName_RBV +# % gui, OAV.rois.roi3, readback, Plugin type, S03SIM-DI-OAV-01:ROI3:PluginType_RBV +# Input +# % gui, OAV.rois.roi3, demandString, Input, S03SIM-DI-OAV-01:ROI3:NDArrayPort +# % gui, OAV.rois.roi3, readback, Input, S03SIM-DI-OAV-01:ROI3:NDArrayPort_RBV + +# % gui, OAV.rois.roi3, groupHeading, Callback +# % gui, OAV.rois.roi3, enum, Callbacks, S03SIM-DI-OAV-01:ROI3:EnableCallbacks +# % gui, OAV.rois.roi3, statusbits, Callbacks, S03SIM-DI-OAV-01:ROI3:EnableCallbacks_RBV +# % gui, OAV.rois.roi3, demand, Min Callback Time, S03SIM-DI-OAV-01:ROI3:MinCallbackTime +# % gui, OAV.rois.roi3, readback, Min Callback Time, S03SIM-DI-OAV-01:ROI3:MinCallbackTime_RBV +# % gui, OAV.rois.roi3, enum, Block Callbacks, S03SIM-DI-OAV-01:ROI3:BlockingCallbacks +# % gui, OAV.rois.roi3, statusbits, Block Callbacks, S03SIM-DI-OAV-01:ROI3:BlockingCallbacks_RBV + +# % gui, OAV.rois.roi3, groupHeading, Counters +# % gui, OAV.rois.roi3, demand, Array Counter, S03SIM-DI-OAV-01:ROI3:ArrayCounter +# % gui, OAV.rois.roi3, readback, Array Counter, S03SIM-DI-OAV-01:ROI3:ArrayCounter_RBV +# % gui, OAV.rois.roi3, readback, Array Rate (fps), S03SIM-DI-OAV-01:ROI3:ArrayRate_RBV +# % gui, OAV.rois.roi3, readback, Queue Use, S03SIM-DI-OAV-01:ROI3:QueueUse +# % gui, OAV.rois.roi3, readback, Queue Size, S03SIM-DI-OAV-01:ROI3:QueueSize +# % gui, OAV.rois.roi3, demand, Dropped Arrays, S03SIM-DI-OAV-01:ROI3:DroppedArrays +# % gui, OAV.rois.roi3, readback, Dropped Arrays, S03SIM-DI-OAV-01:ROI3:DroppedArrays_RBV + +# % gui, OAV.rois.roi3, groupHeading, Array Settings +# % gui, OAV.rois.roi3, readback, Num Dimensions, S03SIM-DI-OAV-01:ROI3:NDimensions_RBV +# % gui, OAV.rois.roi3, readback, Dim 0 Size, S03SIM-DI-OAV-01:ROI3:ArraySize0_RBV +# % gui, OAV.rois.roi3, readback, Dim 1 Size, S03SIM-DI-OAV-01:ROI3:ArraySize1_RBV +# % gui, OAV.rois.roi3, readback, Dim 2 Size, S03SIM-DI-OAV-01:ROI3:ArraySize2_RBV +# % gui, OAV.rois.roi3, readback, Input Data Type, S03SIM-DI-OAV-01:ROI3:DataType_RBV +# % gui, OAV.rois.roi3, readback, Colour Mode, S03SIM-DI-OAV-01:ROI3:ColorMode_RBV +# % gui, OAV.rois.roi3, readback, Bayer Pattern, S03SIM-DI-OAV-01:ROI3:BayerPattern_RBV +# % gui, OAV.rois.roi3, readback, Unique id, S03SIM-DI-OAV-01:ROI3:UniqueId_RBV +# % gui, OAV.rois.roi3, readback, Timestamp, S03SIM-DI-OAV-01:ROI3:TimeStamp_RBV + +# Output +# % gui, OAV.rois.roi3, groupHeading, Output +# % gui, OAV.rois.roi3, demand, Name, S03SIM-DI-OAV-01:ROI3:Name +# % gui, OAV.rois.roi3, enum, Out data type, S03SIM-DI-OAV-01:ROI3:DataTypeOut +# % gui, OAV.rois.roi3, readback, Out data type, S03SIM-DI-OAV-01:ROI3:DataTypeOut_RBV +# % gui, OAV.rois.roi3, demand, Attributes file, S03SIM-DI-OAV-01:ROI3:NDAttributesFile +# Scaling +# % gui, OAV.rois.roi3, groupHeading, Scaling +# % gui, OAV.rois.roi3, enum, Enable Scaling, S03SIM-DI-OAV-01:ROI3:EnableScale +# % gui, OAV.rois.roi3, readback, Enable Scaling, S03SIM-DI-OAV-01:ROI3:EnableScale_RBV +# % gui, OAV.rois.roi3, demand, Scale Divisor, S03SIM-DI-OAV-01:ROI3:Scale +# % gui, OAV.rois.roi3, readback, Scale Divisor, S03SIM-DI-OAV-01:ROI3:Scale_RBV +# X region +# % gui, OAV.rois.roi3, groupHeading, X Region +# % gui, OAV.rois.roi3, enum, X, S03SIM-DI-OAV-01:ROI3:EnableX +# % gui, OAV.rois.roi3, readback, X, S03SIM-DI-OAV-01:ROI3:EnableX_RBV +# % gui, OAV.rois.roi3, enum, Autosize X, S03SIM-DI-OAV-01:ROI3:AutoSizeX +# % gui, OAV.rois.roi3, readback, Autosize X, S03SIM-DI-OAV-01:ROI3:AutoSizeX_RBV +# % gui, OAV.rois.roi3, readback, Input Size X, S03SIM-DI-OAV-01:ROI3:MaxSizeX_RBV +# % gui, OAV.rois.roi3, demand, Binning X, S03SIM-DI-OAV-01:ROI3:BinX +# % gui, OAV.rois.roi3, readback, Binning X, S03SIM-DI-OAV-01:ROI3:BinX_RBV +# % gui, OAV.rois.roi3, demand, Start X, S03SIM-DI-OAV-01:ROI3:MinX +# % gui, OAV.rois.roi3, readback, Start X, S03SIM-DI-OAV-01:ROI3:MinX_RBV +# % gui, OAV.rois.roi3, demand, Size X, S03SIM-DI-OAV-01:ROI3:SizeX +# % gui, OAV.rois.roi3, readback, Size X, S03SIM-DI-OAV-01:ROI3:SizeX_RBV +# % gui, OAV.rois.roi3, enum, Reverse X, S03SIM-DI-OAV-01:ROI3:ReverseX +# % gui, OAV.rois.roi3, readback, Reverse X, S03SIM-DI-OAV-01:ROI3:ReverseX_RBV +# % gui, OAV.rois.roi3, readback, Bytes X, S03SIM-DI-OAV-01:ROI3:ArraySizeX_RBV +# Y region +# % gui, OAV.rois.roi3, groupHeading, Y Region +# % gui, OAV.rois.roi3, enum, Y, S03SIM-DI-OAV-01:ROI3:EnableY +# % gui, OAV.rois.roi3, readback, Y, S03SIM-DI-OAV-01:ROI3:EnableY_RBV +# % gui, OAV.rois.roi3, enum, Autosize Y, S03SIM-DI-OAV-01:ROI3:AutoSizeY +# % gui, OAV.rois.roi3, readback, Autosize Y, S03SIM-DI-OAV-01:ROI3:AutoSizeY_RBV +# % gui, OAV.rois.roi3, readback, Input size Y, S03SIM-DI-OAV-01:ROI3:MaxSizeY_RBV +# % gui, OAV.rois.roi3, demand, Binning Y, S03SIM-DI-OAV-01:ROI3:BinY +# % gui, OAV.rois.roi3, readback, Binning Y, S03SIM-DI-OAV-01:ROI3:BinY_RBV +# % gui, OAV.rois.roi3, demand, Start Y, S03SIM-DI-OAV-01:ROI3:MinY +# % gui, OAV.rois.roi3, readback, Start Y, S03SIM-DI-OAV-01:ROI3:MinY_RBV +# % gui, OAV.rois.roi3, demand, Size Y, S03SIM-DI-OAV-01:ROI3:SizeY +# % gui, OAV.rois.roi3, readback, Size Y, S03SIM-DI-OAV-01:ROI3:SizeY_RBV +# % gui, OAV.rois.roi3, enum, Reverse Y, S03SIM-DI-OAV-01:ROI3:ReverseY +# % gui, OAV.rois.roi3, readback, Reverse Y, S03SIM-DI-OAV-01:ROI3:ReverseY_RBV +# % gui, OAV.rois.roi3, readback, Bytes Y, S03SIM-DI-OAV-01:ROI3:ArraySizeY_RBV +# Z region +# % gui, OAV.rois.roi3, groupHeading, Z Region +# % gui, OAV.rois.roi3, enum, Z, S03SIM-DI-OAV-01:ROI3:EnableZ +# % gui, OAV.rois.roi3, readback, Z, S03SIM-DI-OAV-01:ROI3:EnableZ_RBV +# % gui, OAV.rois.roi3, enum, Autosize Z, S03SIM-DI-OAV-01:ROI3:AutoSizeZ +# % gui, OAV.rois.roi3, readback, Autosize Z, S03SIM-DI-OAV-01:ROI3:AutoSizeZ_RBV +# % gui, OAV.rois.roi3, readback, Input size Z, S03SIM-DI-OAV-01:ROI3:MaxSizeZ_RBV +# % gui, OAV.rois.roi3, demand, Binning Z, S03SIM-DI-OAV-01:ROI3:BinZ +# % gui, OAV.rois.roi3, readback, Binning Z, S03SIM-DI-OAV-01:ROI3:BinZ_RBV +# % gui, OAV.rois.roi3, demand, Start Z, S03SIM-DI-OAV-01:ROI3:MinZ +# % gui, OAV.rois.roi3, readback, Start Z, S03SIM-DI-OAV-01:ROI3:MinZ_RBV +# % gui, OAV.rois.roi3, demand, Size Z, S03SIM-DI-OAV-01:ROI3:SizeZ +# % gui, OAV.rois.roi3, readback, Size Z, S03SIM-DI-OAV-01:ROI3:SizeZ_RBV +# % gui, OAV.rois.roi3, enum, Reverse Z, S03SIM-DI-OAV-01:ROI3:ReverseZ +# % gui, OAV.rois.roi3, readback, Reverse Z, S03SIM-DI-OAV-01:ROI3:ReverseZ_RBV +# % gui, OAV.rois.roi3, readback, Bytes Z, S03SIM-DI-OAV-01:ROI3:ArraySizeZ_RBV +# Memory +# % gui, OAV.rois.roi3, groupHeading, Memory +# % gui, OAV.rois.roi3, readback, Max memory, S03SIM-DI-OAV-01:ROI3:PoolMaxMem +# % gui, OAV.rois.roi3, readback, Max buffers, S03SIM-DI-OAV-01:ROI3:PoolMaxBuffers +# % gui, OAV.rois.roi3, readback, Used memory, S03SIM-DI-OAV-01:ROI3:PoolUsedMem +# % gui, OAV.rois.roi3, readback, Allocated buffers, S03SIM-DI-OAV-01:ROI3:PoolAllocBuffers +# % gui, OAV.rois.roi3, readback, Free buffers, S03SIM-DI-OAV-01:ROI3:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI3:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi3,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI3:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi3,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI3:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi3,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI3:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi3,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI3:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi3,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI3:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi3,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI3:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi3,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI3:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi3,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ROI3:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:ROI3:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI3:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI3:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:ROI3:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:ROI3:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:ROI3:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI3:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:ROI3:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:ROI3:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:ROI3:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:ROI3:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:ROI3:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:ROI3:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:ROI3:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi3,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ROI3:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI3:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ROI3:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI3:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:ROI3:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:ROI3:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi3,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:ROI3:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:ROI3:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI3:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:ROI3:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:ROI3:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI3:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI3:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:ROI3:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.rois.roi3,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:ROI3:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.rois.roi3,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:ROI3:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:ROI3:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi3,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:ROI3:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi3,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:ROI3:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI3:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:ROI3:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:ROI3:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI3:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi3,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:ROI3:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.rois.roi3,0,1)NDARRAY_PORT") + field(VAL, "OAV.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI3:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi3,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI3:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI3:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI3:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI3:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi3,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ROI3:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi3,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI3:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:ROI3:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI3:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI3:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:ROI3:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:ROI3:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI3:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:ROI3:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi3,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ROI3:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi3,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:ROI3:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi3,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI3:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI3:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI3:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:ROI3:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI3:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI3:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:ROI3:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ROI3:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:ROI3:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:ROI3:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ROI3:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:ROI3:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:ROI3:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ROI3:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:ROI3:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:ROI3:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:ROI3:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:ROI3:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:ROI3:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI3:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI3:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi3,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:ROI3:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi3,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI3:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI3:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:ROI3:SortSize") + field(OUT, "S03SIM-DI-OAV-01:ROI3:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:ROI3:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI3:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:ROI3:AsynIO") +{ + field(PORT, "OAV.rois.roi3") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the label for the ROI # +################################################################### +record(stringout, "S03SIM-DI-OAV-01:ROI3:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.rois.roi3,0,1)NAME") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI3:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi3,0,1)NAME") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the ROI definition # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-DI-OAV-01:ROI3:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM0_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DIM0_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI3:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM1_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DIM1_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI3:BinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM2_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:BinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DIM2_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI3:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM0_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DIM0_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI3:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM1_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DIM1_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI3:MinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM2_MIN") + field(LOPR, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:MinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DIM2_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI3:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM0_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DIM0_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI3:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM1_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DIM1_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI3:SizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM2_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:SizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DIM2_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI3:AutoSizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM0_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI3:AutoSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DIM0_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI3:AutoSizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM1_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI3:AutoSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DIM1_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI3:AutoSizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM2_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI3:AutoSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DIM2_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DIM0_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DIM1_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:MaxSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DIM2_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI3:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM0_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI3:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DIM0_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI3:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM1_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI3:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DIM1_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI3:ReverseZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM2_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI3:ReverseZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DIM2_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI3:EnableX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM0_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI3:EnableX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DIM0_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI3:EnableY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM1_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI3:EnableY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DIM1_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI3:EnableZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM2_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI3:EnableZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)DIM2_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the scaling of the data. Useful when # +# binning or converting data types # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ROI3:EnableScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)ENABLE_SCALE") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI3:EnableScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)ENABLE_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI3:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi3,0,1)SCALE_VALUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ROI3:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi3,0,1)SCALE_VALUE") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ROI3:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI3:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-DI-OAV-01:ROI3:MaxX") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:ROI3:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:ROI3:MaxX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:ROI3:MinX.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:ROI3:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:ROI3:MaxY") +{ + field(INP, "S03SIM-DI-OAV-01:ROI3:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:ROI3:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:ROI3:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:ROI3:MaxY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:ROI3:MinY.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:ROI3:SizeY.HOPR NPP") +} + +################################################################### +# These records whether dimensions of 1 are collapsed (removed) # # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ROI3:CollapseDims") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi3,0,1)COLLAPSE_DIMS") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI3:CollapseDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi3,0,1)COLLAPSE_DIMS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +#=================================================================# +# Template file: NDROI.template +# Database for ND ROIs +# Mark Rivers +# April 22, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, OAV.rois.roi4, edmtab, NDROI.edl, P=S03SIM-DI-OAV-01,R=:ROI4: + +# This associates a BOY screen with the template +# % gui, OAV.rois.roi4, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-DI-OAV-01, R=:ROI4:, DESC=Region of Interest +# % gui, OAV.rois.roi4, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-DI-OAV-01, R=:ROI4:, DESC=Region of Interest +# % gui, OAV.rois.roi4, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-DI-OAV-01, R=:ROI4:, DESC=Region of Interest + +# % gui, OAV.rois.roi4, groupHeading, Info +# % gui, OAV.rois.roi4, readback, Port name, S03SIM-DI-OAV-01:ROI4:PortName_RBV +# % gui, OAV.rois.roi4, readback, Plugin type, S03SIM-DI-OAV-01:ROI4:PluginType_RBV +# Input +# % gui, OAV.rois.roi4, demandString, Input, S03SIM-DI-OAV-01:ROI4:NDArrayPort +# % gui, OAV.rois.roi4, readback, Input, S03SIM-DI-OAV-01:ROI4:NDArrayPort_RBV + +# % gui, OAV.rois.roi4, groupHeading, Callback +# % gui, OAV.rois.roi4, enum, Callbacks, S03SIM-DI-OAV-01:ROI4:EnableCallbacks +# % gui, OAV.rois.roi4, statusbits, Callbacks, S03SIM-DI-OAV-01:ROI4:EnableCallbacks_RBV +# % gui, OAV.rois.roi4, demand, Min Callback Time, S03SIM-DI-OAV-01:ROI4:MinCallbackTime +# % gui, OAV.rois.roi4, readback, Min Callback Time, S03SIM-DI-OAV-01:ROI4:MinCallbackTime_RBV +# % gui, OAV.rois.roi4, enum, Block Callbacks, S03SIM-DI-OAV-01:ROI4:BlockingCallbacks +# % gui, OAV.rois.roi4, statusbits, Block Callbacks, S03SIM-DI-OAV-01:ROI4:BlockingCallbacks_RBV + +# % gui, OAV.rois.roi4, groupHeading, Counters +# % gui, OAV.rois.roi4, demand, Array Counter, S03SIM-DI-OAV-01:ROI4:ArrayCounter +# % gui, OAV.rois.roi4, readback, Array Counter, S03SIM-DI-OAV-01:ROI4:ArrayCounter_RBV +# % gui, OAV.rois.roi4, readback, Array Rate (fps), S03SIM-DI-OAV-01:ROI4:ArrayRate_RBV +# % gui, OAV.rois.roi4, readback, Queue Use, S03SIM-DI-OAV-01:ROI4:QueueUse +# % gui, OAV.rois.roi4, readback, Queue Size, S03SIM-DI-OAV-01:ROI4:QueueSize +# % gui, OAV.rois.roi4, demand, Dropped Arrays, S03SIM-DI-OAV-01:ROI4:DroppedArrays +# % gui, OAV.rois.roi4, readback, Dropped Arrays, S03SIM-DI-OAV-01:ROI4:DroppedArrays_RBV + +# % gui, OAV.rois.roi4, groupHeading, Array Settings +# % gui, OAV.rois.roi4, readback, Num Dimensions, S03SIM-DI-OAV-01:ROI4:NDimensions_RBV +# % gui, OAV.rois.roi4, readback, Dim 0 Size, S03SIM-DI-OAV-01:ROI4:ArraySize0_RBV +# % gui, OAV.rois.roi4, readback, Dim 1 Size, S03SIM-DI-OAV-01:ROI4:ArraySize1_RBV +# % gui, OAV.rois.roi4, readback, Dim 2 Size, S03SIM-DI-OAV-01:ROI4:ArraySize2_RBV +# % gui, OAV.rois.roi4, readback, Input Data Type, S03SIM-DI-OAV-01:ROI4:DataType_RBV +# % gui, OAV.rois.roi4, readback, Colour Mode, S03SIM-DI-OAV-01:ROI4:ColorMode_RBV +# % gui, OAV.rois.roi4, readback, Bayer Pattern, S03SIM-DI-OAV-01:ROI4:BayerPattern_RBV +# % gui, OAV.rois.roi4, readback, Unique id, S03SIM-DI-OAV-01:ROI4:UniqueId_RBV +# % gui, OAV.rois.roi4, readback, Timestamp, S03SIM-DI-OAV-01:ROI4:TimeStamp_RBV + +# Output +# % gui, OAV.rois.roi4, groupHeading, Output +# % gui, OAV.rois.roi4, demand, Name, S03SIM-DI-OAV-01:ROI4:Name +# % gui, OAV.rois.roi4, enum, Out data type, S03SIM-DI-OAV-01:ROI4:DataTypeOut +# % gui, OAV.rois.roi4, readback, Out data type, S03SIM-DI-OAV-01:ROI4:DataTypeOut_RBV +# % gui, OAV.rois.roi4, demand, Attributes file, S03SIM-DI-OAV-01:ROI4:NDAttributesFile +# Scaling +# % gui, OAV.rois.roi4, groupHeading, Scaling +# % gui, OAV.rois.roi4, enum, Enable Scaling, S03SIM-DI-OAV-01:ROI4:EnableScale +# % gui, OAV.rois.roi4, readback, Enable Scaling, S03SIM-DI-OAV-01:ROI4:EnableScale_RBV +# % gui, OAV.rois.roi4, demand, Scale Divisor, S03SIM-DI-OAV-01:ROI4:Scale +# % gui, OAV.rois.roi4, readback, Scale Divisor, S03SIM-DI-OAV-01:ROI4:Scale_RBV +# X region +# % gui, OAV.rois.roi4, groupHeading, X Region +# % gui, OAV.rois.roi4, enum, X, S03SIM-DI-OAV-01:ROI4:EnableX +# % gui, OAV.rois.roi4, readback, X, S03SIM-DI-OAV-01:ROI4:EnableX_RBV +# % gui, OAV.rois.roi4, enum, Autosize X, S03SIM-DI-OAV-01:ROI4:AutoSizeX +# % gui, OAV.rois.roi4, readback, Autosize X, S03SIM-DI-OAV-01:ROI4:AutoSizeX_RBV +# % gui, OAV.rois.roi4, readback, Input Size X, S03SIM-DI-OAV-01:ROI4:MaxSizeX_RBV +# % gui, OAV.rois.roi4, demand, Binning X, S03SIM-DI-OAV-01:ROI4:BinX +# % gui, OAV.rois.roi4, readback, Binning X, S03SIM-DI-OAV-01:ROI4:BinX_RBV +# % gui, OAV.rois.roi4, demand, Start X, S03SIM-DI-OAV-01:ROI4:MinX +# % gui, OAV.rois.roi4, readback, Start X, S03SIM-DI-OAV-01:ROI4:MinX_RBV +# % gui, OAV.rois.roi4, demand, Size X, S03SIM-DI-OAV-01:ROI4:SizeX +# % gui, OAV.rois.roi4, readback, Size X, S03SIM-DI-OAV-01:ROI4:SizeX_RBV +# % gui, OAV.rois.roi4, enum, Reverse X, S03SIM-DI-OAV-01:ROI4:ReverseX +# % gui, OAV.rois.roi4, readback, Reverse X, S03SIM-DI-OAV-01:ROI4:ReverseX_RBV +# % gui, OAV.rois.roi4, readback, Bytes X, S03SIM-DI-OAV-01:ROI4:ArraySizeX_RBV +# Y region +# % gui, OAV.rois.roi4, groupHeading, Y Region +# % gui, OAV.rois.roi4, enum, Y, S03SIM-DI-OAV-01:ROI4:EnableY +# % gui, OAV.rois.roi4, readback, Y, S03SIM-DI-OAV-01:ROI4:EnableY_RBV +# % gui, OAV.rois.roi4, enum, Autosize Y, S03SIM-DI-OAV-01:ROI4:AutoSizeY +# % gui, OAV.rois.roi4, readback, Autosize Y, S03SIM-DI-OAV-01:ROI4:AutoSizeY_RBV +# % gui, OAV.rois.roi4, readback, Input size Y, S03SIM-DI-OAV-01:ROI4:MaxSizeY_RBV +# % gui, OAV.rois.roi4, demand, Binning Y, S03SIM-DI-OAV-01:ROI4:BinY +# % gui, OAV.rois.roi4, readback, Binning Y, S03SIM-DI-OAV-01:ROI4:BinY_RBV +# % gui, OAV.rois.roi4, demand, Start Y, S03SIM-DI-OAV-01:ROI4:MinY +# % gui, OAV.rois.roi4, readback, Start Y, S03SIM-DI-OAV-01:ROI4:MinY_RBV +# % gui, OAV.rois.roi4, demand, Size Y, S03SIM-DI-OAV-01:ROI4:SizeY +# % gui, OAV.rois.roi4, readback, Size Y, S03SIM-DI-OAV-01:ROI4:SizeY_RBV +# % gui, OAV.rois.roi4, enum, Reverse Y, S03SIM-DI-OAV-01:ROI4:ReverseY +# % gui, OAV.rois.roi4, readback, Reverse Y, S03SIM-DI-OAV-01:ROI4:ReverseY_RBV +# % gui, OAV.rois.roi4, readback, Bytes Y, S03SIM-DI-OAV-01:ROI4:ArraySizeY_RBV +# Z region +# % gui, OAV.rois.roi4, groupHeading, Z Region +# % gui, OAV.rois.roi4, enum, Z, S03SIM-DI-OAV-01:ROI4:EnableZ +# % gui, OAV.rois.roi4, readback, Z, S03SIM-DI-OAV-01:ROI4:EnableZ_RBV +# % gui, OAV.rois.roi4, enum, Autosize Z, S03SIM-DI-OAV-01:ROI4:AutoSizeZ +# % gui, OAV.rois.roi4, readback, Autosize Z, S03SIM-DI-OAV-01:ROI4:AutoSizeZ_RBV +# % gui, OAV.rois.roi4, readback, Input size Z, S03SIM-DI-OAV-01:ROI4:MaxSizeZ_RBV +# % gui, OAV.rois.roi4, demand, Binning Z, S03SIM-DI-OAV-01:ROI4:BinZ +# % gui, OAV.rois.roi4, readback, Binning Z, S03SIM-DI-OAV-01:ROI4:BinZ_RBV +# % gui, OAV.rois.roi4, demand, Start Z, S03SIM-DI-OAV-01:ROI4:MinZ +# % gui, OAV.rois.roi4, readback, Start Z, S03SIM-DI-OAV-01:ROI4:MinZ_RBV +# % gui, OAV.rois.roi4, demand, Size Z, S03SIM-DI-OAV-01:ROI4:SizeZ +# % gui, OAV.rois.roi4, readback, Size Z, S03SIM-DI-OAV-01:ROI4:SizeZ_RBV +# % gui, OAV.rois.roi4, enum, Reverse Z, S03SIM-DI-OAV-01:ROI4:ReverseZ +# % gui, OAV.rois.roi4, readback, Reverse Z, S03SIM-DI-OAV-01:ROI4:ReverseZ_RBV +# % gui, OAV.rois.roi4, readback, Bytes Z, S03SIM-DI-OAV-01:ROI4:ArraySizeZ_RBV +# Memory +# % gui, OAV.rois.roi4, groupHeading, Memory +# % gui, OAV.rois.roi4, readback, Max memory, S03SIM-DI-OAV-01:ROI4:PoolMaxMem +# % gui, OAV.rois.roi4, readback, Max buffers, S03SIM-DI-OAV-01:ROI4:PoolMaxBuffers +# % gui, OAV.rois.roi4, readback, Used memory, S03SIM-DI-OAV-01:ROI4:PoolUsedMem +# % gui, OAV.rois.roi4, readback, Allocated buffers, S03SIM-DI-OAV-01:ROI4:PoolAllocBuffers +# % gui, OAV.rois.roi4, readback, Free buffers, S03SIM-DI-OAV-01:ROI4:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI4:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi4,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI4:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi4,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI4:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi4,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI4:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi4,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI4:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi4,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI4:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi4,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI4:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi4,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI4:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi4,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ROI4:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:ROI4:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI4:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI4:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:ROI4:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:ROI4:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:ROI4:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI4:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:ROI4:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:ROI4:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:ROI4:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:ROI4:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:ROI4:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:ROI4:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:ROI4:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi4,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ROI4:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI4:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ROI4:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI4:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:ROI4:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:ROI4:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi4,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:ROI4:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:ROI4:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI4:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:ROI4:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:ROI4:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI4:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI4:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:ROI4:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.rois.roi4,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:ROI4:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.rois.roi4,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:ROI4:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:ROI4:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi4,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:ROI4:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi4,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:ROI4:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI4:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:ROI4:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:ROI4:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI4:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi4,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:ROI4:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.rois.roi4,0,1)NDARRAY_PORT") + field(VAL, "OAV.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI4:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi4,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI4:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI4:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI4:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI4:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi4,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ROI4:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi4,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI4:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:ROI4:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI4:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI4:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:ROI4:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:ROI4:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI4:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:ROI4:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi4,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ROI4:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi4,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:ROI4:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi4,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI4:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI4:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI4:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:ROI4:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI4:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI4:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:ROI4:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ROI4:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:ROI4:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:ROI4:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ROI4:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:ROI4:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:ROI4:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ROI4:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:ROI4:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:ROI4:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:ROI4:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:ROI4:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:ROI4:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI4:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI4:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi4,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:ROI4:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi4,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI4:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI4:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:ROI4:SortSize") + field(OUT, "S03SIM-DI-OAV-01:ROI4:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:ROI4:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI4:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:ROI4:AsynIO") +{ + field(PORT, "OAV.rois.roi4") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the label for the ROI # +################################################################### +record(stringout, "S03SIM-DI-OAV-01:ROI4:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.rois.roi4,0,1)NAME") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI4:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi4,0,1)NAME") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the ROI definition # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-DI-OAV-01:ROI4:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM0_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DIM0_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI4:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM1_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DIM1_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI4:BinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM2_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:BinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DIM2_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI4:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM0_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DIM0_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI4:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM1_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DIM1_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI4:MinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM2_MIN") + field(LOPR, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:MinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DIM2_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI4:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM0_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DIM0_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI4:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM1_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DIM1_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI4:SizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM2_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:SizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DIM2_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI4:AutoSizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM0_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI4:AutoSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DIM0_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI4:AutoSizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM1_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI4:AutoSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DIM1_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI4:AutoSizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM2_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI4:AutoSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DIM2_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DIM0_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DIM1_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:MaxSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DIM2_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI4:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM0_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI4:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DIM0_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI4:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM1_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI4:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DIM1_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI4:ReverseZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM2_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI4:ReverseZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DIM2_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI4:EnableX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM0_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI4:EnableX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DIM0_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI4:EnableY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM1_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI4:EnableY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DIM1_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI4:EnableZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM2_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI4:EnableZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)DIM2_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the scaling of the data. Useful when # +# binning or converting data types # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ROI4:EnableScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)ENABLE_SCALE") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI4:EnableScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)ENABLE_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI4:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi4,0,1)SCALE_VALUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ROI4:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi4,0,1)SCALE_VALUE") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ROI4:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI4:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-DI-OAV-01:ROI4:MaxX") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:ROI4:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:ROI4:MaxX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:ROI4:MinX.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:ROI4:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:ROI4:MaxY") +{ + field(INP, "S03SIM-DI-OAV-01:ROI4:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:ROI4:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:ROI4:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:ROI4:MaxY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:ROI4:MinY.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:ROI4:SizeY.HOPR NPP") +} + +################################################################### +# These records whether dimensions of 1 are collapsed (removed) # # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ROI4:CollapseDims") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi4,0,1)COLLAPSE_DIMS") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI4:CollapseDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi4,0,1)COLLAPSE_DIMS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +#=================================================================# +# Template file: NDROI.template +# Database for ND ROIs +# Mark Rivers +# April 22, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, OAV.rois.roi5, edmtab, NDROI.edl, P=S03SIM-DI-OAV-01,R=:ROI5: + +# This associates a BOY screen with the template +# % gui, OAV.rois.roi5, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-DI-OAV-01, R=:ROI5:, DESC=Region of Interest +# % gui, OAV.rois.roi5, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-DI-OAV-01, R=:ROI5:, DESC=Region of Interest +# % gui, OAV.rois.roi5, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-DI-OAV-01, R=:ROI5:, DESC=Region of Interest + +# % gui, OAV.rois.roi5, groupHeading, Info +# % gui, OAV.rois.roi5, readback, Port name, S03SIM-DI-OAV-01:ROI5:PortName_RBV +# % gui, OAV.rois.roi5, readback, Plugin type, S03SIM-DI-OAV-01:ROI5:PluginType_RBV +# Input +# % gui, OAV.rois.roi5, demandString, Input, S03SIM-DI-OAV-01:ROI5:NDArrayPort +# % gui, OAV.rois.roi5, readback, Input, S03SIM-DI-OAV-01:ROI5:NDArrayPort_RBV + +# % gui, OAV.rois.roi5, groupHeading, Callback +# % gui, OAV.rois.roi5, enum, Callbacks, S03SIM-DI-OAV-01:ROI5:EnableCallbacks +# % gui, OAV.rois.roi5, statusbits, Callbacks, S03SIM-DI-OAV-01:ROI5:EnableCallbacks_RBV +# % gui, OAV.rois.roi5, demand, Min Callback Time, S03SIM-DI-OAV-01:ROI5:MinCallbackTime +# % gui, OAV.rois.roi5, readback, Min Callback Time, S03SIM-DI-OAV-01:ROI5:MinCallbackTime_RBV +# % gui, OAV.rois.roi5, enum, Block Callbacks, S03SIM-DI-OAV-01:ROI5:BlockingCallbacks +# % gui, OAV.rois.roi5, statusbits, Block Callbacks, S03SIM-DI-OAV-01:ROI5:BlockingCallbacks_RBV + +# % gui, OAV.rois.roi5, groupHeading, Counters +# % gui, OAV.rois.roi5, demand, Array Counter, S03SIM-DI-OAV-01:ROI5:ArrayCounter +# % gui, OAV.rois.roi5, readback, Array Counter, S03SIM-DI-OAV-01:ROI5:ArrayCounter_RBV +# % gui, OAV.rois.roi5, readback, Array Rate (fps), S03SIM-DI-OAV-01:ROI5:ArrayRate_RBV +# % gui, OAV.rois.roi5, readback, Queue Use, S03SIM-DI-OAV-01:ROI5:QueueUse +# % gui, OAV.rois.roi5, readback, Queue Size, S03SIM-DI-OAV-01:ROI5:QueueSize +# % gui, OAV.rois.roi5, demand, Dropped Arrays, S03SIM-DI-OAV-01:ROI5:DroppedArrays +# % gui, OAV.rois.roi5, readback, Dropped Arrays, S03SIM-DI-OAV-01:ROI5:DroppedArrays_RBV + +# % gui, OAV.rois.roi5, groupHeading, Array Settings +# % gui, OAV.rois.roi5, readback, Num Dimensions, S03SIM-DI-OAV-01:ROI5:NDimensions_RBV +# % gui, OAV.rois.roi5, readback, Dim 0 Size, S03SIM-DI-OAV-01:ROI5:ArraySize0_RBV +# % gui, OAV.rois.roi5, readback, Dim 1 Size, S03SIM-DI-OAV-01:ROI5:ArraySize1_RBV +# % gui, OAV.rois.roi5, readback, Dim 2 Size, S03SIM-DI-OAV-01:ROI5:ArraySize2_RBV +# % gui, OAV.rois.roi5, readback, Input Data Type, S03SIM-DI-OAV-01:ROI5:DataType_RBV +# % gui, OAV.rois.roi5, readback, Colour Mode, S03SIM-DI-OAV-01:ROI5:ColorMode_RBV +# % gui, OAV.rois.roi5, readback, Bayer Pattern, S03SIM-DI-OAV-01:ROI5:BayerPattern_RBV +# % gui, OAV.rois.roi5, readback, Unique id, S03SIM-DI-OAV-01:ROI5:UniqueId_RBV +# % gui, OAV.rois.roi5, readback, Timestamp, S03SIM-DI-OAV-01:ROI5:TimeStamp_RBV + +# Output +# % gui, OAV.rois.roi5, groupHeading, Output +# % gui, OAV.rois.roi5, demand, Name, S03SIM-DI-OAV-01:ROI5:Name +# % gui, OAV.rois.roi5, enum, Out data type, S03SIM-DI-OAV-01:ROI5:DataTypeOut +# % gui, OAV.rois.roi5, readback, Out data type, S03SIM-DI-OAV-01:ROI5:DataTypeOut_RBV +# % gui, OAV.rois.roi5, demand, Attributes file, S03SIM-DI-OAV-01:ROI5:NDAttributesFile +# Scaling +# % gui, OAV.rois.roi5, groupHeading, Scaling +# % gui, OAV.rois.roi5, enum, Enable Scaling, S03SIM-DI-OAV-01:ROI5:EnableScale +# % gui, OAV.rois.roi5, readback, Enable Scaling, S03SIM-DI-OAV-01:ROI5:EnableScale_RBV +# % gui, OAV.rois.roi5, demand, Scale Divisor, S03SIM-DI-OAV-01:ROI5:Scale +# % gui, OAV.rois.roi5, readback, Scale Divisor, S03SIM-DI-OAV-01:ROI5:Scale_RBV +# X region +# % gui, OAV.rois.roi5, groupHeading, X Region +# % gui, OAV.rois.roi5, enum, X, S03SIM-DI-OAV-01:ROI5:EnableX +# % gui, OAV.rois.roi5, readback, X, S03SIM-DI-OAV-01:ROI5:EnableX_RBV +# % gui, OAV.rois.roi5, enum, Autosize X, S03SIM-DI-OAV-01:ROI5:AutoSizeX +# % gui, OAV.rois.roi5, readback, Autosize X, S03SIM-DI-OAV-01:ROI5:AutoSizeX_RBV +# % gui, OAV.rois.roi5, readback, Input Size X, S03SIM-DI-OAV-01:ROI5:MaxSizeX_RBV +# % gui, OAV.rois.roi5, demand, Binning X, S03SIM-DI-OAV-01:ROI5:BinX +# % gui, OAV.rois.roi5, readback, Binning X, S03SIM-DI-OAV-01:ROI5:BinX_RBV +# % gui, OAV.rois.roi5, demand, Start X, S03SIM-DI-OAV-01:ROI5:MinX +# % gui, OAV.rois.roi5, readback, Start X, S03SIM-DI-OAV-01:ROI5:MinX_RBV +# % gui, OAV.rois.roi5, demand, Size X, S03SIM-DI-OAV-01:ROI5:SizeX +# % gui, OAV.rois.roi5, readback, Size X, S03SIM-DI-OAV-01:ROI5:SizeX_RBV +# % gui, OAV.rois.roi5, enum, Reverse X, S03SIM-DI-OAV-01:ROI5:ReverseX +# % gui, OAV.rois.roi5, readback, Reverse X, S03SIM-DI-OAV-01:ROI5:ReverseX_RBV +# % gui, OAV.rois.roi5, readback, Bytes X, S03SIM-DI-OAV-01:ROI5:ArraySizeX_RBV +# Y region +# % gui, OAV.rois.roi5, groupHeading, Y Region +# % gui, OAV.rois.roi5, enum, Y, S03SIM-DI-OAV-01:ROI5:EnableY +# % gui, OAV.rois.roi5, readback, Y, S03SIM-DI-OAV-01:ROI5:EnableY_RBV +# % gui, OAV.rois.roi5, enum, Autosize Y, S03SIM-DI-OAV-01:ROI5:AutoSizeY +# % gui, OAV.rois.roi5, readback, Autosize Y, S03SIM-DI-OAV-01:ROI5:AutoSizeY_RBV +# % gui, OAV.rois.roi5, readback, Input size Y, S03SIM-DI-OAV-01:ROI5:MaxSizeY_RBV +# % gui, OAV.rois.roi5, demand, Binning Y, S03SIM-DI-OAV-01:ROI5:BinY +# % gui, OAV.rois.roi5, readback, Binning Y, S03SIM-DI-OAV-01:ROI5:BinY_RBV +# % gui, OAV.rois.roi5, demand, Start Y, S03SIM-DI-OAV-01:ROI5:MinY +# % gui, OAV.rois.roi5, readback, Start Y, S03SIM-DI-OAV-01:ROI5:MinY_RBV +# % gui, OAV.rois.roi5, demand, Size Y, S03SIM-DI-OAV-01:ROI5:SizeY +# % gui, OAV.rois.roi5, readback, Size Y, S03SIM-DI-OAV-01:ROI5:SizeY_RBV +# % gui, OAV.rois.roi5, enum, Reverse Y, S03SIM-DI-OAV-01:ROI5:ReverseY +# % gui, OAV.rois.roi5, readback, Reverse Y, S03SIM-DI-OAV-01:ROI5:ReverseY_RBV +# % gui, OAV.rois.roi5, readback, Bytes Y, S03SIM-DI-OAV-01:ROI5:ArraySizeY_RBV +# Z region +# % gui, OAV.rois.roi5, groupHeading, Z Region +# % gui, OAV.rois.roi5, enum, Z, S03SIM-DI-OAV-01:ROI5:EnableZ +# % gui, OAV.rois.roi5, readback, Z, S03SIM-DI-OAV-01:ROI5:EnableZ_RBV +# % gui, OAV.rois.roi5, enum, Autosize Z, S03SIM-DI-OAV-01:ROI5:AutoSizeZ +# % gui, OAV.rois.roi5, readback, Autosize Z, S03SIM-DI-OAV-01:ROI5:AutoSizeZ_RBV +# % gui, OAV.rois.roi5, readback, Input size Z, S03SIM-DI-OAV-01:ROI5:MaxSizeZ_RBV +# % gui, OAV.rois.roi5, demand, Binning Z, S03SIM-DI-OAV-01:ROI5:BinZ +# % gui, OAV.rois.roi5, readback, Binning Z, S03SIM-DI-OAV-01:ROI5:BinZ_RBV +# % gui, OAV.rois.roi5, demand, Start Z, S03SIM-DI-OAV-01:ROI5:MinZ +# % gui, OAV.rois.roi5, readback, Start Z, S03SIM-DI-OAV-01:ROI5:MinZ_RBV +# % gui, OAV.rois.roi5, demand, Size Z, S03SIM-DI-OAV-01:ROI5:SizeZ +# % gui, OAV.rois.roi5, readback, Size Z, S03SIM-DI-OAV-01:ROI5:SizeZ_RBV +# % gui, OAV.rois.roi5, enum, Reverse Z, S03SIM-DI-OAV-01:ROI5:ReverseZ +# % gui, OAV.rois.roi5, readback, Reverse Z, S03SIM-DI-OAV-01:ROI5:ReverseZ_RBV +# % gui, OAV.rois.roi5, readback, Bytes Z, S03SIM-DI-OAV-01:ROI5:ArraySizeZ_RBV +# Memory +# % gui, OAV.rois.roi5, groupHeading, Memory +# % gui, OAV.rois.roi5, readback, Max memory, S03SIM-DI-OAV-01:ROI5:PoolMaxMem +# % gui, OAV.rois.roi5, readback, Max buffers, S03SIM-DI-OAV-01:ROI5:PoolMaxBuffers +# % gui, OAV.rois.roi5, readback, Used memory, S03SIM-DI-OAV-01:ROI5:PoolUsedMem +# % gui, OAV.rois.roi5, readback, Allocated buffers, S03SIM-DI-OAV-01:ROI5:PoolAllocBuffers +# % gui, OAV.rois.roi5, readback, Free buffers, S03SIM-DI-OAV-01:ROI5:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI5:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi5,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI5:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi5,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI5:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi5,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI5:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi5,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI5:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi5,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI5:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi5,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI5:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi5,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI5:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi5,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ROI5:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:ROI5:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI5:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI5:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:ROI5:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:ROI5:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:ROI5:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI5:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:ROI5:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:ROI5:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:ROI5:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:ROI5:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:ROI5:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:ROI5:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:ROI5:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi5,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ROI5:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI5:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ROI5:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI5:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:ROI5:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:ROI5:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi5,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:ROI5:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:ROI5:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI5:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:ROI5:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:ROI5:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI5:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI5:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:ROI5:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.rois.roi5,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:ROI5:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.rois.roi5,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:ROI5:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:ROI5:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi5,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:ROI5:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi5,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:ROI5:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI5:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:ROI5:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:ROI5:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI5:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi5,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:ROI5:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.rois.roi5,0,1)NDARRAY_PORT") + field(VAL, "OAV.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI5:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi5,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI5:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI5:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI5:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI5:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi5,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ROI5:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi5,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI5:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:ROI5:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI5:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI5:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:ROI5:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:ROI5:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI5:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:ROI5:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi5,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ROI5:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi5,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:ROI5:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi5,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI5:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI5:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI5:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:ROI5:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI5:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI5:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:ROI5:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ROI5:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:ROI5:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:ROI5:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ROI5:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:ROI5:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:ROI5:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ROI5:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:ROI5:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:ROI5:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:ROI5:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:ROI5:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:ROI5:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI5:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI5:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi5,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:ROI5:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi5,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI5:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI5:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:ROI5:SortSize") + field(OUT, "S03SIM-DI-OAV-01:ROI5:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:ROI5:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI5:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:ROI5:AsynIO") +{ + field(PORT, "OAV.rois.roi5") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the label for the ROI # +################################################################### +record(stringout, "S03SIM-DI-OAV-01:ROI5:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.rois.roi5,0,1)NAME") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI5:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi5,0,1)NAME") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the ROI definition # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-DI-OAV-01:ROI5:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM0_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DIM0_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI5:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM1_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DIM1_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI5:BinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM2_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:BinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DIM2_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI5:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM0_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DIM0_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI5:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM1_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DIM1_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI5:MinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM2_MIN") + field(LOPR, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:MinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DIM2_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI5:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM0_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DIM0_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI5:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM1_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DIM1_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI5:SizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM2_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:SizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DIM2_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI5:AutoSizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM0_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI5:AutoSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DIM0_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI5:AutoSizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM1_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI5:AutoSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DIM1_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI5:AutoSizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM2_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI5:AutoSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DIM2_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DIM0_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DIM1_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:MaxSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DIM2_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI5:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM0_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI5:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DIM0_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI5:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM1_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI5:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DIM1_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI5:ReverseZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM2_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI5:ReverseZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DIM2_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI5:EnableX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM0_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI5:EnableX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DIM0_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI5:EnableY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM1_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI5:EnableY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DIM1_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI5:EnableZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM2_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI5:EnableZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)DIM2_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the scaling of the data. Useful when # +# binning or converting data types # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ROI5:EnableScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)ENABLE_SCALE") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI5:EnableScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)ENABLE_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI5:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi5,0,1)SCALE_VALUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ROI5:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi5,0,1)SCALE_VALUE") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ROI5:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI5:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-DI-OAV-01:ROI5:MaxX") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:ROI5:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:ROI5:MaxX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:ROI5:MinX.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:ROI5:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:ROI5:MaxY") +{ + field(INP, "S03SIM-DI-OAV-01:ROI5:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:ROI5:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:ROI5:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:ROI5:MaxY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:ROI5:MinY.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:ROI5:SizeY.HOPR NPP") +} + +################################################################### +# These records whether dimensions of 1 are collapsed (removed) # # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ROI5:CollapseDims") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi5,0,1)COLLAPSE_DIMS") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI5:CollapseDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi5,0,1)COLLAPSE_DIMS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +#=================================================================# +# Template file: NDROI.template +# Database for ND ROIs +# Mark Rivers +# April 22, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, OAV.rois.roi6, edmtab, NDROI.edl, P=S03SIM-DI-OAV-01,R=:ROI6: + +# This associates a BOY screen with the template +# % gui, OAV.rois.roi6, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-DI-OAV-01, R=:ROI6:, DESC=Region of Interest +# % gui, OAV.rois.roi6, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-DI-OAV-01, R=:ROI6:, DESC=Region of Interest +# % gui, OAV.rois.roi6, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-DI-OAV-01, R=:ROI6:, DESC=Region of Interest + +# % gui, OAV.rois.roi6, groupHeading, Info +# % gui, OAV.rois.roi6, readback, Port name, S03SIM-DI-OAV-01:ROI6:PortName_RBV +# % gui, OAV.rois.roi6, readback, Plugin type, S03SIM-DI-OAV-01:ROI6:PluginType_RBV +# Input +# % gui, OAV.rois.roi6, demandString, Input, S03SIM-DI-OAV-01:ROI6:NDArrayPort +# % gui, OAV.rois.roi6, readback, Input, S03SIM-DI-OAV-01:ROI6:NDArrayPort_RBV + +# % gui, OAV.rois.roi6, groupHeading, Callback +# % gui, OAV.rois.roi6, enum, Callbacks, S03SIM-DI-OAV-01:ROI6:EnableCallbacks +# % gui, OAV.rois.roi6, statusbits, Callbacks, S03SIM-DI-OAV-01:ROI6:EnableCallbacks_RBV +# % gui, OAV.rois.roi6, demand, Min Callback Time, S03SIM-DI-OAV-01:ROI6:MinCallbackTime +# % gui, OAV.rois.roi6, readback, Min Callback Time, S03SIM-DI-OAV-01:ROI6:MinCallbackTime_RBV +# % gui, OAV.rois.roi6, enum, Block Callbacks, S03SIM-DI-OAV-01:ROI6:BlockingCallbacks +# % gui, OAV.rois.roi6, statusbits, Block Callbacks, S03SIM-DI-OAV-01:ROI6:BlockingCallbacks_RBV + +# % gui, OAV.rois.roi6, groupHeading, Counters +# % gui, OAV.rois.roi6, demand, Array Counter, S03SIM-DI-OAV-01:ROI6:ArrayCounter +# % gui, OAV.rois.roi6, readback, Array Counter, S03SIM-DI-OAV-01:ROI6:ArrayCounter_RBV +# % gui, OAV.rois.roi6, readback, Array Rate (fps), S03SIM-DI-OAV-01:ROI6:ArrayRate_RBV +# % gui, OAV.rois.roi6, readback, Queue Use, S03SIM-DI-OAV-01:ROI6:QueueUse +# % gui, OAV.rois.roi6, readback, Queue Size, S03SIM-DI-OAV-01:ROI6:QueueSize +# % gui, OAV.rois.roi6, demand, Dropped Arrays, S03SIM-DI-OAV-01:ROI6:DroppedArrays +# % gui, OAV.rois.roi6, readback, Dropped Arrays, S03SIM-DI-OAV-01:ROI6:DroppedArrays_RBV + +# % gui, OAV.rois.roi6, groupHeading, Array Settings +# % gui, OAV.rois.roi6, readback, Num Dimensions, S03SIM-DI-OAV-01:ROI6:NDimensions_RBV +# % gui, OAV.rois.roi6, readback, Dim 0 Size, S03SIM-DI-OAV-01:ROI6:ArraySize0_RBV +# % gui, OAV.rois.roi6, readback, Dim 1 Size, S03SIM-DI-OAV-01:ROI6:ArraySize1_RBV +# % gui, OAV.rois.roi6, readback, Dim 2 Size, S03SIM-DI-OAV-01:ROI6:ArraySize2_RBV +# % gui, OAV.rois.roi6, readback, Input Data Type, S03SIM-DI-OAV-01:ROI6:DataType_RBV +# % gui, OAV.rois.roi6, readback, Colour Mode, S03SIM-DI-OAV-01:ROI6:ColorMode_RBV +# % gui, OAV.rois.roi6, readback, Bayer Pattern, S03SIM-DI-OAV-01:ROI6:BayerPattern_RBV +# % gui, OAV.rois.roi6, readback, Unique id, S03SIM-DI-OAV-01:ROI6:UniqueId_RBV +# % gui, OAV.rois.roi6, readback, Timestamp, S03SIM-DI-OAV-01:ROI6:TimeStamp_RBV + +# Output +# % gui, OAV.rois.roi6, groupHeading, Output +# % gui, OAV.rois.roi6, demand, Name, S03SIM-DI-OAV-01:ROI6:Name +# % gui, OAV.rois.roi6, enum, Out data type, S03SIM-DI-OAV-01:ROI6:DataTypeOut +# % gui, OAV.rois.roi6, readback, Out data type, S03SIM-DI-OAV-01:ROI6:DataTypeOut_RBV +# % gui, OAV.rois.roi6, demand, Attributes file, S03SIM-DI-OAV-01:ROI6:NDAttributesFile +# Scaling +# % gui, OAV.rois.roi6, groupHeading, Scaling +# % gui, OAV.rois.roi6, enum, Enable Scaling, S03SIM-DI-OAV-01:ROI6:EnableScale +# % gui, OAV.rois.roi6, readback, Enable Scaling, S03SIM-DI-OAV-01:ROI6:EnableScale_RBV +# % gui, OAV.rois.roi6, demand, Scale Divisor, S03SIM-DI-OAV-01:ROI6:Scale +# % gui, OAV.rois.roi6, readback, Scale Divisor, S03SIM-DI-OAV-01:ROI6:Scale_RBV +# X region +# % gui, OAV.rois.roi6, groupHeading, X Region +# % gui, OAV.rois.roi6, enum, X, S03SIM-DI-OAV-01:ROI6:EnableX +# % gui, OAV.rois.roi6, readback, X, S03SIM-DI-OAV-01:ROI6:EnableX_RBV +# % gui, OAV.rois.roi6, enum, Autosize X, S03SIM-DI-OAV-01:ROI6:AutoSizeX +# % gui, OAV.rois.roi6, readback, Autosize X, S03SIM-DI-OAV-01:ROI6:AutoSizeX_RBV +# % gui, OAV.rois.roi6, readback, Input Size X, S03SIM-DI-OAV-01:ROI6:MaxSizeX_RBV +# % gui, OAV.rois.roi6, demand, Binning X, S03SIM-DI-OAV-01:ROI6:BinX +# % gui, OAV.rois.roi6, readback, Binning X, S03SIM-DI-OAV-01:ROI6:BinX_RBV +# % gui, OAV.rois.roi6, demand, Start X, S03SIM-DI-OAV-01:ROI6:MinX +# % gui, OAV.rois.roi6, readback, Start X, S03SIM-DI-OAV-01:ROI6:MinX_RBV +# % gui, OAV.rois.roi6, demand, Size X, S03SIM-DI-OAV-01:ROI6:SizeX +# % gui, OAV.rois.roi6, readback, Size X, S03SIM-DI-OAV-01:ROI6:SizeX_RBV +# % gui, OAV.rois.roi6, enum, Reverse X, S03SIM-DI-OAV-01:ROI6:ReverseX +# % gui, OAV.rois.roi6, readback, Reverse X, S03SIM-DI-OAV-01:ROI6:ReverseX_RBV +# % gui, OAV.rois.roi6, readback, Bytes X, S03SIM-DI-OAV-01:ROI6:ArraySizeX_RBV +# Y region +# % gui, OAV.rois.roi6, groupHeading, Y Region +# % gui, OAV.rois.roi6, enum, Y, S03SIM-DI-OAV-01:ROI6:EnableY +# % gui, OAV.rois.roi6, readback, Y, S03SIM-DI-OAV-01:ROI6:EnableY_RBV +# % gui, OAV.rois.roi6, enum, Autosize Y, S03SIM-DI-OAV-01:ROI6:AutoSizeY +# % gui, OAV.rois.roi6, readback, Autosize Y, S03SIM-DI-OAV-01:ROI6:AutoSizeY_RBV +# % gui, OAV.rois.roi6, readback, Input size Y, S03SIM-DI-OAV-01:ROI6:MaxSizeY_RBV +# % gui, OAV.rois.roi6, demand, Binning Y, S03SIM-DI-OAV-01:ROI6:BinY +# % gui, OAV.rois.roi6, readback, Binning Y, S03SIM-DI-OAV-01:ROI6:BinY_RBV +# % gui, OAV.rois.roi6, demand, Start Y, S03SIM-DI-OAV-01:ROI6:MinY +# % gui, OAV.rois.roi6, readback, Start Y, S03SIM-DI-OAV-01:ROI6:MinY_RBV +# % gui, OAV.rois.roi6, demand, Size Y, S03SIM-DI-OAV-01:ROI6:SizeY +# % gui, OAV.rois.roi6, readback, Size Y, S03SIM-DI-OAV-01:ROI6:SizeY_RBV +# % gui, OAV.rois.roi6, enum, Reverse Y, S03SIM-DI-OAV-01:ROI6:ReverseY +# % gui, OAV.rois.roi6, readback, Reverse Y, S03SIM-DI-OAV-01:ROI6:ReverseY_RBV +# % gui, OAV.rois.roi6, readback, Bytes Y, S03SIM-DI-OAV-01:ROI6:ArraySizeY_RBV +# Z region +# % gui, OAV.rois.roi6, groupHeading, Z Region +# % gui, OAV.rois.roi6, enum, Z, S03SIM-DI-OAV-01:ROI6:EnableZ +# % gui, OAV.rois.roi6, readback, Z, S03SIM-DI-OAV-01:ROI6:EnableZ_RBV +# % gui, OAV.rois.roi6, enum, Autosize Z, S03SIM-DI-OAV-01:ROI6:AutoSizeZ +# % gui, OAV.rois.roi6, readback, Autosize Z, S03SIM-DI-OAV-01:ROI6:AutoSizeZ_RBV +# % gui, OAV.rois.roi6, readback, Input size Z, S03SIM-DI-OAV-01:ROI6:MaxSizeZ_RBV +# % gui, OAV.rois.roi6, demand, Binning Z, S03SIM-DI-OAV-01:ROI6:BinZ +# % gui, OAV.rois.roi6, readback, Binning Z, S03SIM-DI-OAV-01:ROI6:BinZ_RBV +# % gui, OAV.rois.roi6, demand, Start Z, S03SIM-DI-OAV-01:ROI6:MinZ +# % gui, OAV.rois.roi6, readback, Start Z, S03SIM-DI-OAV-01:ROI6:MinZ_RBV +# % gui, OAV.rois.roi6, demand, Size Z, S03SIM-DI-OAV-01:ROI6:SizeZ +# % gui, OAV.rois.roi6, readback, Size Z, S03SIM-DI-OAV-01:ROI6:SizeZ_RBV +# % gui, OAV.rois.roi6, enum, Reverse Z, S03SIM-DI-OAV-01:ROI6:ReverseZ +# % gui, OAV.rois.roi6, readback, Reverse Z, S03SIM-DI-OAV-01:ROI6:ReverseZ_RBV +# % gui, OAV.rois.roi6, readback, Bytes Z, S03SIM-DI-OAV-01:ROI6:ArraySizeZ_RBV +# Memory +# % gui, OAV.rois.roi6, groupHeading, Memory +# % gui, OAV.rois.roi6, readback, Max memory, S03SIM-DI-OAV-01:ROI6:PoolMaxMem +# % gui, OAV.rois.roi6, readback, Max buffers, S03SIM-DI-OAV-01:ROI6:PoolMaxBuffers +# % gui, OAV.rois.roi6, readback, Used memory, S03SIM-DI-OAV-01:ROI6:PoolUsedMem +# % gui, OAV.rois.roi6, readback, Allocated buffers, S03SIM-DI-OAV-01:ROI6:PoolAllocBuffers +# % gui, OAV.rois.roi6, readback, Free buffers, S03SIM-DI-OAV-01:ROI6:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI6:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi6,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI6:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi6,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI6:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi6,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI6:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi6,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI6:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi6,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI6:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi6,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI6:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi6,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI6:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi6,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ROI6:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:ROI6:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI6:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI6:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:ROI6:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:ROI6:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:ROI6:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI6:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:ROI6:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:ROI6:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:ROI6:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:ROI6:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:ROI6:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:ROI6:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:ROI6:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi6,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ROI6:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI6:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ROI6:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI6:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:ROI6:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:ROI6:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi6,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:ROI6:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:ROI6:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI6:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:ROI6:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:ROI6:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI6:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI6:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:ROI6:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.rois.roi6,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:ROI6:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.rois.roi6,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:ROI6:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:ROI6:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi6,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:ROI6:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi6,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:ROI6:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI6:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:ROI6:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:ROI6:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ROI6:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi6,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:ROI6:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.rois.roi6,0,1)NDARRAY_PORT") + field(VAL, "OAV.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI6:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi6,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI6:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI6:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI6:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI6:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi6,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ROI6:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi6,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI6:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:ROI6:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI6:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI6:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:ROI6:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:ROI6:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:ROI6:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:ROI6:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi6,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ROI6:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi6,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:ROI6:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi6,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI6:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ROI6:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI6:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:ROI6:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI6:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI6:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:ROI6:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ROI6:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:ROI6:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:ROI6:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ROI6:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:ROI6:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:ROI6:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ROI6:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:ROI6:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:ROI6:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:ROI6:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:ROI6:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:ROI6:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI6:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI6:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi6,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:ROI6:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi6,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI6:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ROI6:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:ROI6:SortSize") + field(OUT, "S03SIM-DI-OAV-01:ROI6:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:ROI6:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI6:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:ROI6:AsynIO") +{ + field(PORT, "OAV.rois.roi6") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the label for the ROI # +################################################################### +record(stringout, "S03SIM-DI-OAV-01:ROI6:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.rois.roi6,0,1)NAME") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:ROI6:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.rois.roi6,0,1)NAME") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the ROI definition # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-DI-OAV-01:ROI6:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM0_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DIM0_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI6:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM1_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DIM1_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI6:BinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM2_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:BinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DIM2_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI6:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM0_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DIM0_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI6:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM1_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DIM1_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI6:MinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM2_MIN") + field(LOPR, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:MinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DIM2_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI6:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM0_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DIM0_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI6:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM1_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DIM1_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ROI6:SizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM2_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:SizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DIM2_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI6:AutoSizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM0_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI6:AutoSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DIM0_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI6:AutoSizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM1_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI6:AutoSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DIM1_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI6:AutoSizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM2_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI6:AutoSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DIM2_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DIM0_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DIM1_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:MaxSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DIM2_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI6:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM0_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI6:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DIM0_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI6:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM1_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI6:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DIM1_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI6:ReverseZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM2_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI6:ReverseZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DIM2_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI6:EnableX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM0_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI6:EnableX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DIM0_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI6:EnableY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM1_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI6:EnableY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DIM1_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:ROI6:EnableZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM2_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI6:EnableZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)DIM2_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the scaling of the data. Useful when # +# binning or converting data types # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ROI6:EnableScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)ENABLE_SCALE") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI6:EnableScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)ENABLE_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ROI6:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.rois.roi6,0,1)SCALE_VALUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ROI6:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.rois.roi6,0,1)SCALE_VALUE") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ROI6:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ROI6:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-DI-OAV-01:ROI6:MaxX") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:ROI6:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:ROI6:MaxX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:ROI6:MinX.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:ROI6:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:ROI6:MaxY") +{ + field(INP, "S03SIM-DI-OAV-01:ROI6:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:ROI6:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:ROI6:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:ROI6:MaxY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:ROI6:MinY.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:ROI6:SizeY.HOPR NPP") +} + +################################################################### +# These records whether dimensions of 1 are collapsed (removed) # # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ROI6:CollapseDims") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.rois.roi6,0,1)COLLAPSE_DIMS") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ROI6:CollapseDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.rois.roi6,0,1)COLLAPSE_DIMS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +#=================================================================# +# Template file: NDROI.template +# Database for ND ROIs +# Mark Rivers +# April 22, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, FSCN1.roi, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-01,R=:ROI: + +# This associates a BOY screen with the template +# % gui, FSCN1.roi, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-01, R=:ROI:, DESC=Region of Interest +# % gui, FSCN1.roi, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:ROI:, DESC=Region of Interest +# % gui, FSCN1.roi, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-01, R=:ROI:, DESC=Region of Interest + +# % gui, FSCN1.roi, groupHeading, Info +# % gui, FSCN1.roi, readback, Port name, S03SIM-EA-FSCN-01:ROI:PortName_RBV +# % gui, FSCN1.roi, readback, Plugin type, S03SIM-EA-FSCN-01:ROI:PluginType_RBV +# Input +# % gui, FSCN1.roi, demandString, Input, S03SIM-EA-FSCN-01:ROI:NDArrayPort +# % gui, FSCN1.roi, readback, Input, S03SIM-EA-FSCN-01:ROI:NDArrayPort_RBV + +# % gui, FSCN1.roi, groupHeading, Callback +# % gui, FSCN1.roi, enum, Callbacks, S03SIM-EA-FSCN-01:ROI:EnableCallbacks +# % gui, FSCN1.roi, statusbits, Callbacks, S03SIM-EA-FSCN-01:ROI:EnableCallbacks_RBV +# % gui, FSCN1.roi, demand, Min Callback Time, S03SIM-EA-FSCN-01:ROI:MinCallbackTime +# % gui, FSCN1.roi, readback, Min Callback Time, S03SIM-EA-FSCN-01:ROI:MinCallbackTime_RBV +# % gui, FSCN1.roi, enum, Block Callbacks, S03SIM-EA-FSCN-01:ROI:BlockingCallbacks +# % gui, FSCN1.roi, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:ROI:BlockingCallbacks_RBV + +# % gui, FSCN1.roi, groupHeading, Counters +# % gui, FSCN1.roi, demand, Array Counter, S03SIM-EA-FSCN-01:ROI:ArrayCounter +# % gui, FSCN1.roi, readback, Array Counter, S03SIM-EA-FSCN-01:ROI:ArrayCounter_RBV +# % gui, FSCN1.roi, readback, Array Rate (fps), S03SIM-EA-FSCN-01:ROI:ArrayRate_RBV +# % gui, FSCN1.roi, readback, Queue Use, S03SIM-EA-FSCN-01:ROI:QueueUse +# % gui, FSCN1.roi, readback, Queue Size, S03SIM-EA-FSCN-01:ROI:QueueSize +# % gui, FSCN1.roi, demand, Dropped Arrays, S03SIM-EA-FSCN-01:ROI:DroppedArrays +# % gui, FSCN1.roi, readback, Dropped Arrays, S03SIM-EA-FSCN-01:ROI:DroppedArrays_RBV + +# % gui, FSCN1.roi, groupHeading, Array Settings +# % gui, FSCN1.roi, readback, Num Dimensions, S03SIM-EA-FSCN-01:ROI:NDimensions_RBV +# % gui, FSCN1.roi, readback, Dim 0 Size, S03SIM-EA-FSCN-01:ROI:ArraySize0_RBV +# % gui, FSCN1.roi, readback, Dim 1 Size, S03SIM-EA-FSCN-01:ROI:ArraySize1_RBV +# % gui, FSCN1.roi, readback, Dim 2 Size, S03SIM-EA-FSCN-01:ROI:ArraySize2_RBV +# % gui, FSCN1.roi, readback, Input Data Type, S03SIM-EA-FSCN-01:ROI:DataType_RBV +# % gui, FSCN1.roi, readback, Colour Mode, S03SIM-EA-FSCN-01:ROI:ColorMode_RBV +# % gui, FSCN1.roi, readback, Bayer Pattern, S03SIM-EA-FSCN-01:ROI:BayerPattern_RBV +# % gui, FSCN1.roi, readback, Unique id, S03SIM-EA-FSCN-01:ROI:UniqueId_RBV +# % gui, FSCN1.roi, readback, Timestamp, S03SIM-EA-FSCN-01:ROI:TimeStamp_RBV + +# Output +# % gui, FSCN1.roi, groupHeading, Output +# % gui, FSCN1.roi, demand, Name, S03SIM-EA-FSCN-01:ROI:Name +# % gui, FSCN1.roi, enum, Out data type, S03SIM-EA-FSCN-01:ROI:DataTypeOut +# % gui, FSCN1.roi, readback, Out data type, S03SIM-EA-FSCN-01:ROI:DataTypeOut_RBV +# % gui, FSCN1.roi, demand, Attributes file, S03SIM-EA-FSCN-01:ROI:NDAttributesFile +# Scaling +# % gui, FSCN1.roi, groupHeading, Scaling +# % gui, FSCN1.roi, enum, Enable Scaling, S03SIM-EA-FSCN-01:ROI:EnableScale +# % gui, FSCN1.roi, readback, Enable Scaling, S03SIM-EA-FSCN-01:ROI:EnableScale_RBV +# % gui, FSCN1.roi, demand, Scale Divisor, S03SIM-EA-FSCN-01:ROI:Scale +# % gui, FSCN1.roi, readback, Scale Divisor, S03SIM-EA-FSCN-01:ROI:Scale_RBV +# X region +# % gui, FSCN1.roi, groupHeading, X Region +# % gui, FSCN1.roi, enum, X, S03SIM-EA-FSCN-01:ROI:EnableX +# % gui, FSCN1.roi, readback, X, S03SIM-EA-FSCN-01:ROI:EnableX_RBV +# % gui, FSCN1.roi, enum, Autosize X, S03SIM-EA-FSCN-01:ROI:AutoSizeX +# % gui, FSCN1.roi, readback, Autosize X, S03SIM-EA-FSCN-01:ROI:AutoSizeX_RBV +# % gui, FSCN1.roi, readback, Input Size X, S03SIM-EA-FSCN-01:ROI:MaxSizeX_RBV +# % gui, FSCN1.roi, demand, Binning X, S03SIM-EA-FSCN-01:ROI:BinX +# % gui, FSCN1.roi, readback, Binning X, S03SIM-EA-FSCN-01:ROI:BinX_RBV +# % gui, FSCN1.roi, demand, Start X, S03SIM-EA-FSCN-01:ROI:MinX +# % gui, FSCN1.roi, readback, Start X, S03SIM-EA-FSCN-01:ROI:MinX_RBV +# % gui, FSCN1.roi, demand, Size X, S03SIM-EA-FSCN-01:ROI:SizeX +# % gui, FSCN1.roi, readback, Size X, S03SIM-EA-FSCN-01:ROI:SizeX_RBV +# % gui, FSCN1.roi, enum, Reverse X, S03SIM-EA-FSCN-01:ROI:ReverseX +# % gui, FSCN1.roi, readback, Reverse X, S03SIM-EA-FSCN-01:ROI:ReverseX_RBV +# % gui, FSCN1.roi, readback, Bytes X, S03SIM-EA-FSCN-01:ROI:ArraySizeX_RBV +# Y region +# % gui, FSCN1.roi, groupHeading, Y Region +# % gui, FSCN1.roi, enum, Y, S03SIM-EA-FSCN-01:ROI:EnableY +# % gui, FSCN1.roi, readback, Y, S03SIM-EA-FSCN-01:ROI:EnableY_RBV +# % gui, FSCN1.roi, enum, Autosize Y, S03SIM-EA-FSCN-01:ROI:AutoSizeY +# % gui, FSCN1.roi, readback, Autosize Y, S03SIM-EA-FSCN-01:ROI:AutoSizeY_RBV +# % gui, FSCN1.roi, readback, Input size Y, S03SIM-EA-FSCN-01:ROI:MaxSizeY_RBV +# % gui, FSCN1.roi, demand, Binning Y, S03SIM-EA-FSCN-01:ROI:BinY +# % gui, FSCN1.roi, readback, Binning Y, S03SIM-EA-FSCN-01:ROI:BinY_RBV +# % gui, FSCN1.roi, demand, Start Y, S03SIM-EA-FSCN-01:ROI:MinY +# % gui, FSCN1.roi, readback, Start Y, S03SIM-EA-FSCN-01:ROI:MinY_RBV +# % gui, FSCN1.roi, demand, Size Y, S03SIM-EA-FSCN-01:ROI:SizeY +# % gui, FSCN1.roi, readback, Size Y, S03SIM-EA-FSCN-01:ROI:SizeY_RBV +# % gui, FSCN1.roi, enum, Reverse Y, S03SIM-EA-FSCN-01:ROI:ReverseY +# % gui, FSCN1.roi, readback, Reverse Y, S03SIM-EA-FSCN-01:ROI:ReverseY_RBV +# % gui, FSCN1.roi, readback, Bytes Y, S03SIM-EA-FSCN-01:ROI:ArraySizeY_RBV +# Z region +# % gui, FSCN1.roi, groupHeading, Z Region +# % gui, FSCN1.roi, enum, Z, S03SIM-EA-FSCN-01:ROI:EnableZ +# % gui, FSCN1.roi, readback, Z, S03SIM-EA-FSCN-01:ROI:EnableZ_RBV +# % gui, FSCN1.roi, enum, Autosize Z, S03SIM-EA-FSCN-01:ROI:AutoSizeZ +# % gui, FSCN1.roi, readback, Autosize Z, S03SIM-EA-FSCN-01:ROI:AutoSizeZ_RBV +# % gui, FSCN1.roi, readback, Input size Z, S03SIM-EA-FSCN-01:ROI:MaxSizeZ_RBV +# % gui, FSCN1.roi, demand, Binning Z, S03SIM-EA-FSCN-01:ROI:BinZ +# % gui, FSCN1.roi, readback, Binning Z, S03SIM-EA-FSCN-01:ROI:BinZ_RBV +# % gui, FSCN1.roi, demand, Start Z, S03SIM-EA-FSCN-01:ROI:MinZ +# % gui, FSCN1.roi, readback, Start Z, S03SIM-EA-FSCN-01:ROI:MinZ_RBV +# % gui, FSCN1.roi, demand, Size Z, S03SIM-EA-FSCN-01:ROI:SizeZ +# % gui, FSCN1.roi, readback, Size Z, S03SIM-EA-FSCN-01:ROI:SizeZ_RBV +# % gui, FSCN1.roi, enum, Reverse Z, S03SIM-EA-FSCN-01:ROI:ReverseZ +# % gui, FSCN1.roi, readback, Reverse Z, S03SIM-EA-FSCN-01:ROI:ReverseZ_RBV +# % gui, FSCN1.roi, readback, Bytes Z, S03SIM-EA-FSCN-01:ROI:ArraySizeZ_RBV +# Memory +# % gui, FSCN1.roi, groupHeading, Memory +# % gui, FSCN1.roi, readback, Max memory, S03SIM-EA-FSCN-01:ROI:PoolMaxMem +# % gui, FSCN1.roi, readback, Max buffers, S03SIM-EA-FSCN-01:ROI:PoolMaxBuffers +# % gui, FSCN1.roi, readback, Used memory, S03SIM-EA-FSCN-01:ROI:PoolUsedMem +# % gui, FSCN1.roi, readback, Allocated buffers, S03SIM-EA-FSCN-01:ROI:PoolAllocBuffers +# % gui, FSCN1.roi, readback, Free buffers, S03SIM-EA-FSCN-01:ROI:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.roi,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.roi,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.roi,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.roi,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.roi,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.roi,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.roi,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.roi,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ROI:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:ROI:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:ROI:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:ROI:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:ROI:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:ROI:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:ROI:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:ROI:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.roi,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ROI:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ROI:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:ROI:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.roi,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:ROI:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:ROI:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:ROI:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:ROI:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:ROI:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.roi,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:ROI:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.roi,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:ROI:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:ROI:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.roi,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.roi,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:ROI:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:ROI:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.roi,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:ROI:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.roi,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.roi,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.roi,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.roi,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:ROI:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:ROI:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:ROI:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.roi,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.roi,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:ROI:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.roi,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:ROI:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:ROI:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:ROI:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:ROI:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:ROI:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:ROI:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:ROI:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:ROI:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:ROI:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:ROI:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.roi,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.roi,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:ROI:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:ROI:AsynIO") +{ + field(PORT, "FSCN1.roi") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the label for the ROI # +################################################################### +record(stringout, "S03SIM-EA-FSCN-01:ROI:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.roi,0,1)NAME") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.roi,0,1)NAME") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the ROI definition # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-EA-FSCN-01:ROI:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DIM0_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DIM0_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DIM1_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DIM1_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI:BinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DIM2_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:BinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DIM2_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DIM0_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DIM0_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DIM1_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DIM1_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI:MinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DIM2_MIN") + field(LOPR, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:MinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DIM2_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DIM0_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DIM0_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DIM1_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DIM1_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI:SizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DIM2_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:SizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DIM2_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI:AutoSizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DIM0_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI:AutoSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DIM0_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI:AutoSizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DIM1_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI:AutoSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DIM1_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI:AutoSizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DIM2_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI:AutoSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DIM2_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DIM0_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DIM1_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:MaxSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DIM2_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DIM0_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DIM0_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DIM1_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DIM1_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI:ReverseZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DIM2_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI:ReverseZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DIM2_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI:EnableX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DIM0_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI:EnableX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DIM0_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI:EnableY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DIM1_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI:EnableY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DIM1_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI:EnableZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)DIM2_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI:EnableZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)DIM2_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the scaling of the data. Useful when # +# binning or converting data types # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ROI:EnableScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)ENABLE_SCALE") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI:EnableScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)ENABLE_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.roi,0,1)SCALE_VALUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.roi,0,1)SCALE_VALUE") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ROI:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-01:ROI:MaxX") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:ROI:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:ROI:MaxX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:ROI:MinX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:ROI:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI:MaxY") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:ROI:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:ROI:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:ROI:MaxY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:ROI:MinY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:ROI:SizeY.HOPR NPP") +} + +################################################################### +# These records whether dimensions of 1 are collapsed (removed) # # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ROI:CollapseDims") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.roi,0,1)COLLAPSE_DIMS") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI:CollapseDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.roi,0,1)COLLAPSE_DIMS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +#=================================================================# +# Template file: NDROI.template +# Database for ND ROIs +# Mark Rivers +# April 22, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, FSCN1.rois.roi1, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-01,R=:ROI1: + +# This associates a BOY screen with the template +# % gui, FSCN1.rois.roi1, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-01, R=:ROI1:, DESC=Region of Interest +# % gui, FSCN1.rois.roi1, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:ROI1:, DESC=Region of Interest +# % gui, FSCN1.rois.roi1, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-01, R=:ROI1:, DESC=Region of Interest + +# % gui, FSCN1.rois.roi1, groupHeading, Info +# % gui, FSCN1.rois.roi1, readback, Port name, S03SIM-EA-FSCN-01:ROI1:PortName_RBV +# % gui, FSCN1.rois.roi1, readback, Plugin type, S03SIM-EA-FSCN-01:ROI1:PluginType_RBV +# Input +# % gui, FSCN1.rois.roi1, demandString, Input, S03SIM-EA-FSCN-01:ROI1:NDArrayPort +# % gui, FSCN1.rois.roi1, readback, Input, S03SIM-EA-FSCN-01:ROI1:NDArrayPort_RBV + +# % gui, FSCN1.rois.roi1, groupHeading, Callback +# % gui, FSCN1.rois.roi1, enum, Callbacks, S03SIM-EA-FSCN-01:ROI1:EnableCallbacks +# % gui, FSCN1.rois.roi1, statusbits, Callbacks, S03SIM-EA-FSCN-01:ROI1:EnableCallbacks_RBV +# % gui, FSCN1.rois.roi1, demand, Min Callback Time, S03SIM-EA-FSCN-01:ROI1:MinCallbackTime +# % gui, FSCN1.rois.roi1, readback, Min Callback Time, S03SIM-EA-FSCN-01:ROI1:MinCallbackTime_RBV +# % gui, FSCN1.rois.roi1, enum, Block Callbacks, S03SIM-EA-FSCN-01:ROI1:BlockingCallbacks +# % gui, FSCN1.rois.roi1, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:ROI1:BlockingCallbacks_RBV + +# % gui, FSCN1.rois.roi1, groupHeading, Counters +# % gui, FSCN1.rois.roi1, demand, Array Counter, S03SIM-EA-FSCN-01:ROI1:ArrayCounter +# % gui, FSCN1.rois.roi1, readback, Array Counter, S03SIM-EA-FSCN-01:ROI1:ArrayCounter_RBV +# % gui, FSCN1.rois.roi1, readback, Array Rate (fps), S03SIM-EA-FSCN-01:ROI1:ArrayRate_RBV +# % gui, FSCN1.rois.roi1, readback, Queue Use, S03SIM-EA-FSCN-01:ROI1:QueueUse +# % gui, FSCN1.rois.roi1, readback, Queue Size, S03SIM-EA-FSCN-01:ROI1:QueueSize +# % gui, FSCN1.rois.roi1, demand, Dropped Arrays, S03SIM-EA-FSCN-01:ROI1:DroppedArrays +# % gui, FSCN1.rois.roi1, readback, Dropped Arrays, S03SIM-EA-FSCN-01:ROI1:DroppedArrays_RBV + +# % gui, FSCN1.rois.roi1, groupHeading, Array Settings +# % gui, FSCN1.rois.roi1, readback, Num Dimensions, S03SIM-EA-FSCN-01:ROI1:NDimensions_RBV +# % gui, FSCN1.rois.roi1, readback, Dim 0 Size, S03SIM-EA-FSCN-01:ROI1:ArraySize0_RBV +# % gui, FSCN1.rois.roi1, readback, Dim 1 Size, S03SIM-EA-FSCN-01:ROI1:ArraySize1_RBV +# % gui, FSCN1.rois.roi1, readback, Dim 2 Size, S03SIM-EA-FSCN-01:ROI1:ArraySize2_RBV +# % gui, FSCN1.rois.roi1, readback, Input Data Type, S03SIM-EA-FSCN-01:ROI1:DataType_RBV +# % gui, FSCN1.rois.roi1, readback, Colour Mode, S03SIM-EA-FSCN-01:ROI1:ColorMode_RBV +# % gui, FSCN1.rois.roi1, readback, Bayer Pattern, S03SIM-EA-FSCN-01:ROI1:BayerPattern_RBV +# % gui, FSCN1.rois.roi1, readback, Unique id, S03SIM-EA-FSCN-01:ROI1:UniqueId_RBV +# % gui, FSCN1.rois.roi1, readback, Timestamp, S03SIM-EA-FSCN-01:ROI1:TimeStamp_RBV + +# Output +# % gui, FSCN1.rois.roi1, groupHeading, Output +# % gui, FSCN1.rois.roi1, demand, Name, S03SIM-EA-FSCN-01:ROI1:Name +# % gui, FSCN1.rois.roi1, enum, Out data type, S03SIM-EA-FSCN-01:ROI1:DataTypeOut +# % gui, FSCN1.rois.roi1, readback, Out data type, S03SIM-EA-FSCN-01:ROI1:DataTypeOut_RBV +# % gui, FSCN1.rois.roi1, demand, Attributes file, S03SIM-EA-FSCN-01:ROI1:NDAttributesFile +# Scaling +# % gui, FSCN1.rois.roi1, groupHeading, Scaling +# % gui, FSCN1.rois.roi1, enum, Enable Scaling, S03SIM-EA-FSCN-01:ROI1:EnableScale +# % gui, FSCN1.rois.roi1, readback, Enable Scaling, S03SIM-EA-FSCN-01:ROI1:EnableScale_RBV +# % gui, FSCN1.rois.roi1, demand, Scale Divisor, S03SIM-EA-FSCN-01:ROI1:Scale +# % gui, FSCN1.rois.roi1, readback, Scale Divisor, S03SIM-EA-FSCN-01:ROI1:Scale_RBV +# X region +# % gui, FSCN1.rois.roi1, groupHeading, X Region +# % gui, FSCN1.rois.roi1, enum, X, S03SIM-EA-FSCN-01:ROI1:EnableX +# % gui, FSCN1.rois.roi1, readback, X, S03SIM-EA-FSCN-01:ROI1:EnableX_RBV +# % gui, FSCN1.rois.roi1, enum, Autosize X, S03SIM-EA-FSCN-01:ROI1:AutoSizeX +# % gui, FSCN1.rois.roi1, readback, Autosize X, S03SIM-EA-FSCN-01:ROI1:AutoSizeX_RBV +# % gui, FSCN1.rois.roi1, readback, Input Size X, S03SIM-EA-FSCN-01:ROI1:MaxSizeX_RBV +# % gui, FSCN1.rois.roi1, demand, Binning X, S03SIM-EA-FSCN-01:ROI1:BinX +# % gui, FSCN1.rois.roi1, readback, Binning X, S03SIM-EA-FSCN-01:ROI1:BinX_RBV +# % gui, FSCN1.rois.roi1, demand, Start X, S03SIM-EA-FSCN-01:ROI1:MinX +# % gui, FSCN1.rois.roi1, readback, Start X, S03SIM-EA-FSCN-01:ROI1:MinX_RBV +# % gui, FSCN1.rois.roi1, demand, Size X, S03SIM-EA-FSCN-01:ROI1:SizeX +# % gui, FSCN1.rois.roi1, readback, Size X, S03SIM-EA-FSCN-01:ROI1:SizeX_RBV +# % gui, FSCN1.rois.roi1, enum, Reverse X, S03SIM-EA-FSCN-01:ROI1:ReverseX +# % gui, FSCN1.rois.roi1, readback, Reverse X, S03SIM-EA-FSCN-01:ROI1:ReverseX_RBV +# % gui, FSCN1.rois.roi1, readback, Bytes X, S03SIM-EA-FSCN-01:ROI1:ArraySizeX_RBV +# Y region +# % gui, FSCN1.rois.roi1, groupHeading, Y Region +# % gui, FSCN1.rois.roi1, enum, Y, S03SIM-EA-FSCN-01:ROI1:EnableY +# % gui, FSCN1.rois.roi1, readback, Y, S03SIM-EA-FSCN-01:ROI1:EnableY_RBV +# % gui, FSCN1.rois.roi1, enum, Autosize Y, S03SIM-EA-FSCN-01:ROI1:AutoSizeY +# % gui, FSCN1.rois.roi1, readback, Autosize Y, S03SIM-EA-FSCN-01:ROI1:AutoSizeY_RBV +# % gui, FSCN1.rois.roi1, readback, Input size Y, S03SIM-EA-FSCN-01:ROI1:MaxSizeY_RBV +# % gui, FSCN1.rois.roi1, demand, Binning Y, S03SIM-EA-FSCN-01:ROI1:BinY +# % gui, FSCN1.rois.roi1, readback, Binning Y, S03SIM-EA-FSCN-01:ROI1:BinY_RBV +# % gui, FSCN1.rois.roi1, demand, Start Y, S03SIM-EA-FSCN-01:ROI1:MinY +# % gui, FSCN1.rois.roi1, readback, Start Y, S03SIM-EA-FSCN-01:ROI1:MinY_RBV +# % gui, FSCN1.rois.roi1, demand, Size Y, S03SIM-EA-FSCN-01:ROI1:SizeY +# % gui, FSCN1.rois.roi1, readback, Size Y, S03SIM-EA-FSCN-01:ROI1:SizeY_RBV +# % gui, FSCN1.rois.roi1, enum, Reverse Y, S03SIM-EA-FSCN-01:ROI1:ReverseY +# % gui, FSCN1.rois.roi1, readback, Reverse Y, S03SIM-EA-FSCN-01:ROI1:ReverseY_RBV +# % gui, FSCN1.rois.roi1, readback, Bytes Y, S03SIM-EA-FSCN-01:ROI1:ArraySizeY_RBV +# Z region +# % gui, FSCN1.rois.roi1, groupHeading, Z Region +# % gui, FSCN1.rois.roi1, enum, Z, S03SIM-EA-FSCN-01:ROI1:EnableZ +# % gui, FSCN1.rois.roi1, readback, Z, S03SIM-EA-FSCN-01:ROI1:EnableZ_RBV +# % gui, FSCN1.rois.roi1, enum, Autosize Z, S03SIM-EA-FSCN-01:ROI1:AutoSizeZ +# % gui, FSCN1.rois.roi1, readback, Autosize Z, S03SIM-EA-FSCN-01:ROI1:AutoSizeZ_RBV +# % gui, FSCN1.rois.roi1, readback, Input size Z, S03SIM-EA-FSCN-01:ROI1:MaxSizeZ_RBV +# % gui, FSCN1.rois.roi1, demand, Binning Z, S03SIM-EA-FSCN-01:ROI1:BinZ +# % gui, FSCN1.rois.roi1, readback, Binning Z, S03SIM-EA-FSCN-01:ROI1:BinZ_RBV +# % gui, FSCN1.rois.roi1, demand, Start Z, S03SIM-EA-FSCN-01:ROI1:MinZ +# % gui, FSCN1.rois.roi1, readback, Start Z, S03SIM-EA-FSCN-01:ROI1:MinZ_RBV +# % gui, FSCN1.rois.roi1, demand, Size Z, S03SIM-EA-FSCN-01:ROI1:SizeZ +# % gui, FSCN1.rois.roi1, readback, Size Z, S03SIM-EA-FSCN-01:ROI1:SizeZ_RBV +# % gui, FSCN1.rois.roi1, enum, Reverse Z, S03SIM-EA-FSCN-01:ROI1:ReverseZ +# % gui, FSCN1.rois.roi1, readback, Reverse Z, S03SIM-EA-FSCN-01:ROI1:ReverseZ_RBV +# % gui, FSCN1.rois.roi1, readback, Bytes Z, S03SIM-EA-FSCN-01:ROI1:ArraySizeZ_RBV +# Memory +# % gui, FSCN1.rois.roi1, groupHeading, Memory +# % gui, FSCN1.rois.roi1, readback, Max memory, S03SIM-EA-FSCN-01:ROI1:PoolMaxMem +# % gui, FSCN1.rois.roi1, readback, Max buffers, S03SIM-EA-FSCN-01:ROI1:PoolMaxBuffers +# % gui, FSCN1.rois.roi1, readback, Used memory, S03SIM-EA-FSCN-01:ROI1:PoolUsedMem +# % gui, FSCN1.rois.roi1, readback, Allocated buffers, S03SIM-EA-FSCN-01:ROI1:PoolAllocBuffers +# % gui, FSCN1.rois.roi1, readback, Free buffers, S03SIM-EA-FSCN-01:ROI1:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI1:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI1:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI1:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI1:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI1:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI1:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI1:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI1:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ROI1:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI1:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI1:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI1:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:ROI1:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI1:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI1:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI1:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:ROI1:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:ROI1:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI1:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:ROI1:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:ROI1:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:ROI1:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:ROI1:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ROI1:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI1:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ROI1:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI1:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:ROI1:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI1:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:ROI1:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:ROI1:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI1:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:ROI1:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:ROI1:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI1:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI1:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:ROI1:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:ROI1:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:ROI1:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:ROI1:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI1:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:ROI1:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI1:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:ROI1:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI1:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI1:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:ROI1:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI1:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI1:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI1:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI1:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI1:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI1:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI1:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:ROI1:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI1:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI1:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:ROI1:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:ROI1:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI1:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI1:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI1:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:ROI1:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI1:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI1:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI1:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:ROI1:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI1:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI1:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:ROI1:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI1:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:ROI1:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:ROI1:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI1:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:ROI1:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:ROI1:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI1:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:ROI1:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:ROI1:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:ROI1:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI1:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:ROI1:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI1:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI1:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI1:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI1:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI1:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:ROI1:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI1:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI1:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI1:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:ROI1:AsynIO") +{ + field(PORT, "FSCN1.rois.roi1") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the label for the ROI # +################################################################### +record(stringout, "S03SIM-EA-FSCN-01:ROI1:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)NAME") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI1:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)NAME") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the ROI definition # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-EA-FSCN-01:ROI1:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM0_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM0_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI1:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM1_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM1_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI1:BinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM2_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:BinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM2_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI1:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM0_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM0_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI1:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM1_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM1_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI1:MinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM2_MIN") + field(LOPR, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:MinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM2_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI1:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM0_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM0_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI1:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM1_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM1_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI1:SizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM2_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:SizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM2_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI1:AutoSizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM0_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI1:AutoSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM0_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI1:AutoSizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM1_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI1:AutoSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM1_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI1:AutoSizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM2_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI1:AutoSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM2_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM0_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM1_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:MaxSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM2_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI1:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM0_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI1:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM0_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI1:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM1_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI1:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM1_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI1:ReverseZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM2_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI1:ReverseZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM2_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI1:EnableX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM0_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI1:EnableX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM0_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI1:EnableY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM1_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI1:EnableY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM1_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI1:EnableZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM2_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI1:EnableZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM2_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the scaling of the data. Useful when # +# binning or converting data types # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ROI1:EnableScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)ENABLE_SCALE") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI1:EnableScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)ENABLE_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI1:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)SCALE_VALUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI1:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)SCALE_VALUE") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ROI1:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI1:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-01:ROI1:MaxX") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:ROI1:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:ROI1:MaxX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:ROI1:MinX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:ROI1:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI1:MaxY") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI1:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:ROI1:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:ROI1:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:ROI1:MaxY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:ROI1:MinY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:ROI1:SizeY.HOPR NPP") +} + +################################################################### +# These records whether dimensions of 1 are collapsed (removed) # # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ROI1:CollapseDims") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi1,0,1)COLLAPSE_DIMS") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI1:CollapseDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi1,0,1)COLLAPSE_DIMS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +#=================================================================# +# Template file: NDROI.template +# Database for ND ROIs +# Mark Rivers +# April 22, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, FSCN1.rois.roi2, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-01,R=:ROI2: + +# This associates a BOY screen with the template +# % gui, FSCN1.rois.roi2, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-01, R=:ROI2:, DESC=Region of Interest +# % gui, FSCN1.rois.roi2, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:ROI2:, DESC=Region of Interest +# % gui, FSCN1.rois.roi2, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-01, R=:ROI2:, DESC=Region of Interest + +# % gui, FSCN1.rois.roi2, groupHeading, Info +# % gui, FSCN1.rois.roi2, readback, Port name, S03SIM-EA-FSCN-01:ROI2:PortName_RBV +# % gui, FSCN1.rois.roi2, readback, Plugin type, S03SIM-EA-FSCN-01:ROI2:PluginType_RBV +# Input +# % gui, FSCN1.rois.roi2, demandString, Input, S03SIM-EA-FSCN-01:ROI2:NDArrayPort +# % gui, FSCN1.rois.roi2, readback, Input, S03SIM-EA-FSCN-01:ROI2:NDArrayPort_RBV + +# % gui, FSCN1.rois.roi2, groupHeading, Callback +# % gui, FSCN1.rois.roi2, enum, Callbacks, S03SIM-EA-FSCN-01:ROI2:EnableCallbacks +# % gui, FSCN1.rois.roi2, statusbits, Callbacks, S03SIM-EA-FSCN-01:ROI2:EnableCallbacks_RBV +# % gui, FSCN1.rois.roi2, demand, Min Callback Time, S03SIM-EA-FSCN-01:ROI2:MinCallbackTime +# % gui, FSCN1.rois.roi2, readback, Min Callback Time, S03SIM-EA-FSCN-01:ROI2:MinCallbackTime_RBV +# % gui, FSCN1.rois.roi2, enum, Block Callbacks, S03SIM-EA-FSCN-01:ROI2:BlockingCallbacks +# % gui, FSCN1.rois.roi2, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:ROI2:BlockingCallbacks_RBV + +# % gui, FSCN1.rois.roi2, groupHeading, Counters +# % gui, FSCN1.rois.roi2, demand, Array Counter, S03SIM-EA-FSCN-01:ROI2:ArrayCounter +# % gui, FSCN1.rois.roi2, readback, Array Counter, S03SIM-EA-FSCN-01:ROI2:ArrayCounter_RBV +# % gui, FSCN1.rois.roi2, readback, Array Rate (fps), S03SIM-EA-FSCN-01:ROI2:ArrayRate_RBV +# % gui, FSCN1.rois.roi2, readback, Queue Use, S03SIM-EA-FSCN-01:ROI2:QueueUse +# % gui, FSCN1.rois.roi2, readback, Queue Size, S03SIM-EA-FSCN-01:ROI2:QueueSize +# % gui, FSCN1.rois.roi2, demand, Dropped Arrays, S03SIM-EA-FSCN-01:ROI2:DroppedArrays +# % gui, FSCN1.rois.roi2, readback, Dropped Arrays, S03SIM-EA-FSCN-01:ROI2:DroppedArrays_RBV + +# % gui, FSCN1.rois.roi2, groupHeading, Array Settings +# % gui, FSCN1.rois.roi2, readback, Num Dimensions, S03SIM-EA-FSCN-01:ROI2:NDimensions_RBV +# % gui, FSCN1.rois.roi2, readback, Dim 0 Size, S03SIM-EA-FSCN-01:ROI2:ArraySize0_RBV +# % gui, FSCN1.rois.roi2, readback, Dim 1 Size, S03SIM-EA-FSCN-01:ROI2:ArraySize1_RBV +# % gui, FSCN1.rois.roi2, readback, Dim 2 Size, S03SIM-EA-FSCN-01:ROI2:ArraySize2_RBV +# % gui, FSCN1.rois.roi2, readback, Input Data Type, S03SIM-EA-FSCN-01:ROI2:DataType_RBV +# % gui, FSCN1.rois.roi2, readback, Colour Mode, S03SIM-EA-FSCN-01:ROI2:ColorMode_RBV +# % gui, FSCN1.rois.roi2, readback, Bayer Pattern, S03SIM-EA-FSCN-01:ROI2:BayerPattern_RBV +# % gui, FSCN1.rois.roi2, readback, Unique id, S03SIM-EA-FSCN-01:ROI2:UniqueId_RBV +# % gui, FSCN1.rois.roi2, readback, Timestamp, S03SIM-EA-FSCN-01:ROI2:TimeStamp_RBV + +# Output +# % gui, FSCN1.rois.roi2, groupHeading, Output +# % gui, FSCN1.rois.roi2, demand, Name, S03SIM-EA-FSCN-01:ROI2:Name +# % gui, FSCN1.rois.roi2, enum, Out data type, S03SIM-EA-FSCN-01:ROI2:DataTypeOut +# % gui, FSCN1.rois.roi2, readback, Out data type, S03SIM-EA-FSCN-01:ROI2:DataTypeOut_RBV +# % gui, FSCN1.rois.roi2, demand, Attributes file, S03SIM-EA-FSCN-01:ROI2:NDAttributesFile +# Scaling +# % gui, FSCN1.rois.roi2, groupHeading, Scaling +# % gui, FSCN1.rois.roi2, enum, Enable Scaling, S03SIM-EA-FSCN-01:ROI2:EnableScale +# % gui, FSCN1.rois.roi2, readback, Enable Scaling, S03SIM-EA-FSCN-01:ROI2:EnableScale_RBV +# % gui, FSCN1.rois.roi2, demand, Scale Divisor, S03SIM-EA-FSCN-01:ROI2:Scale +# % gui, FSCN1.rois.roi2, readback, Scale Divisor, S03SIM-EA-FSCN-01:ROI2:Scale_RBV +# X region +# % gui, FSCN1.rois.roi2, groupHeading, X Region +# % gui, FSCN1.rois.roi2, enum, X, S03SIM-EA-FSCN-01:ROI2:EnableX +# % gui, FSCN1.rois.roi2, readback, X, S03SIM-EA-FSCN-01:ROI2:EnableX_RBV +# % gui, FSCN1.rois.roi2, enum, Autosize X, S03SIM-EA-FSCN-01:ROI2:AutoSizeX +# % gui, FSCN1.rois.roi2, readback, Autosize X, S03SIM-EA-FSCN-01:ROI2:AutoSizeX_RBV +# % gui, FSCN1.rois.roi2, readback, Input Size X, S03SIM-EA-FSCN-01:ROI2:MaxSizeX_RBV +# % gui, FSCN1.rois.roi2, demand, Binning X, S03SIM-EA-FSCN-01:ROI2:BinX +# % gui, FSCN1.rois.roi2, readback, Binning X, S03SIM-EA-FSCN-01:ROI2:BinX_RBV +# % gui, FSCN1.rois.roi2, demand, Start X, S03SIM-EA-FSCN-01:ROI2:MinX +# % gui, FSCN1.rois.roi2, readback, Start X, S03SIM-EA-FSCN-01:ROI2:MinX_RBV +# % gui, FSCN1.rois.roi2, demand, Size X, S03SIM-EA-FSCN-01:ROI2:SizeX +# % gui, FSCN1.rois.roi2, readback, Size X, S03SIM-EA-FSCN-01:ROI2:SizeX_RBV +# % gui, FSCN1.rois.roi2, enum, Reverse X, S03SIM-EA-FSCN-01:ROI2:ReverseX +# % gui, FSCN1.rois.roi2, readback, Reverse X, S03SIM-EA-FSCN-01:ROI2:ReverseX_RBV +# % gui, FSCN1.rois.roi2, readback, Bytes X, S03SIM-EA-FSCN-01:ROI2:ArraySizeX_RBV +# Y region +# % gui, FSCN1.rois.roi2, groupHeading, Y Region +# % gui, FSCN1.rois.roi2, enum, Y, S03SIM-EA-FSCN-01:ROI2:EnableY +# % gui, FSCN1.rois.roi2, readback, Y, S03SIM-EA-FSCN-01:ROI2:EnableY_RBV +# % gui, FSCN1.rois.roi2, enum, Autosize Y, S03SIM-EA-FSCN-01:ROI2:AutoSizeY +# % gui, FSCN1.rois.roi2, readback, Autosize Y, S03SIM-EA-FSCN-01:ROI2:AutoSizeY_RBV +# % gui, FSCN1.rois.roi2, readback, Input size Y, S03SIM-EA-FSCN-01:ROI2:MaxSizeY_RBV +# % gui, FSCN1.rois.roi2, demand, Binning Y, S03SIM-EA-FSCN-01:ROI2:BinY +# % gui, FSCN1.rois.roi2, readback, Binning Y, S03SIM-EA-FSCN-01:ROI2:BinY_RBV +# % gui, FSCN1.rois.roi2, demand, Start Y, S03SIM-EA-FSCN-01:ROI2:MinY +# % gui, FSCN1.rois.roi2, readback, Start Y, S03SIM-EA-FSCN-01:ROI2:MinY_RBV +# % gui, FSCN1.rois.roi2, demand, Size Y, S03SIM-EA-FSCN-01:ROI2:SizeY +# % gui, FSCN1.rois.roi2, readback, Size Y, S03SIM-EA-FSCN-01:ROI2:SizeY_RBV +# % gui, FSCN1.rois.roi2, enum, Reverse Y, S03SIM-EA-FSCN-01:ROI2:ReverseY +# % gui, FSCN1.rois.roi2, readback, Reverse Y, S03SIM-EA-FSCN-01:ROI2:ReverseY_RBV +# % gui, FSCN1.rois.roi2, readback, Bytes Y, S03SIM-EA-FSCN-01:ROI2:ArraySizeY_RBV +# Z region +# % gui, FSCN1.rois.roi2, groupHeading, Z Region +# % gui, FSCN1.rois.roi2, enum, Z, S03SIM-EA-FSCN-01:ROI2:EnableZ +# % gui, FSCN1.rois.roi2, readback, Z, S03SIM-EA-FSCN-01:ROI2:EnableZ_RBV +# % gui, FSCN1.rois.roi2, enum, Autosize Z, S03SIM-EA-FSCN-01:ROI2:AutoSizeZ +# % gui, FSCN1.rois.roi2, readback, Autosize Z, S03SIM-EA-FSCN-01:ROI2:AutoSizeZ_RBV +# % gui, FSCN1.rois.roi2, readback, Input size Z, S03SIM-EA-FSCN-01:ROI2:MaxSizeZ_RBV +# % gui, FSCN1.rois.roi2, demand, Binning Z, S03SIM-EA-FSCN-01:ROI2:BinZ +# % gui, FSCN1.rois.roi2, readback, Binning Z, S03SIM-EA-FSCN-01:ROI2:BinZ_RBV +# % gui, FSCN1.rois.roi2, demand, Start Z, S03SIM-EA-FSCN-01:ROI2:MinZ +# % gui, FSCN1.rois.roi2, readback, Start Z, S03SIM-EA-FSCN-01:ROI2:MinZ_RBV +# % gui, FSCN1.rois.roi2, demand, Size Z, S03SIM-EA-FSCN-01:ROI2:SizeZ +# % gui, FSCN1.rois.roi2, readback, Size Z, S03SIM-EA-FSCN-01:ROI2:SizeZ_RBV +# % gui, FSCN1.rois.roi2, enum, Reverse Z, S03SIM-EA-FSCN-01:ROI2:ReverseZ +# % gui, FSCN1.rois.roi2, readback, Reverse Z, S03SIM-EA-FSCN-01:ROI2:ReverseZ_RBV +# % gui, FSCN1.rois.roi2, readback, Bytes Z, S03SIM-EA-FSCN-01:ROI2:ArraySizeZ_RBV +# Memory +# % gui, FSCN1.rois.roi2, groupHeading, Memory +# % gui, FSCN1.rois.roi2, readback, Max memory, S03SIM-EA-FSCN-01:ROI2:PoolMaxMem +# % gui, FSCN1.rois.roi2, readback, Max buffers, S03SIM-EA-FSCN-01:ROI2:PoolMaxBuffers +# % gui, FSCN1.rois.roi2, readback, Used memory, S03SIM-EA-FSCN-01:ROI2:PoolUsedMem +# % gui, FSCN1.rois.roi2, readback, Allocated buffers, S03SIM-EA-FSCN-01:ROI2:PoolAllocBuffers +# % gui, FSCN1.rois.roi2, readback, Free buffers, S03SIM-EA-FSCN-01:ROI2:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI2:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI2:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI2:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI2:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI2:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI2:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI2:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI2:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ROI2:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI2:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI2:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI2:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:ROI2:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI2:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI2:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI2:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:ROI2:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:ROI2:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI2:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:ROI2:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:ROI2:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:ROI2:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:ROI2:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ROI2:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI2:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ROI2:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI2:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:ROI2:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI2:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:ROI2:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:ROI2:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI2:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:ROI2:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:ROI2:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI2:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI2:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:ROI2:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:ROI2:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:ROI2:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:ROI2:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI2:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:ROI2:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI2:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:ROI2:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI2:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI2:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:ROI2:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI2:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI2:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI2:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI2:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI2:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI2:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI2:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:ROI2:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI2:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI2:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:ROI2:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:ROI2:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI2:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI2:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI2:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:ROI2:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI2:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI2:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI2:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:ROI2:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI2:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI2:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:ROI2:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI2:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:ROI2:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:ROI2:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI2:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:ROI2:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:ROI2:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI2:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:ROI2:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:ROI2:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:ROI2:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI2:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:ROI2:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI2:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI2:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI2:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI2:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI2:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:ROI2:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI2:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI2:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI2:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:ROI2:AsynIO") +{ + field(PORT, "FSCN1.rois.roi2") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the label for the ROI # +################################################################### +record(stringout, "S03SIM-EA-FSCN-01:ROI2:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)NAME") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI2:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)NAME") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the ROI definition # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-EA-FSCN-01:ROI2:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM0_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM0_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI2:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM1_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM1_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI2:BinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM2_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:BinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM2_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI2:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM0_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM0_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI2:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM1_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM1_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI2:MinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM2_MIN") + field(LOPR, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:MinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM2_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI2:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM0_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM0_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI2:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM1_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM1_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI2:SizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM2_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:SizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM2_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI2:AutoSizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM0_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI2:AutoSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM0_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI2:AutoSizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM1_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI2:AutoSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM1_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI2:AutoSizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM2_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI2:AutoSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM2_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM0_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM1_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:MaxSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM2_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI2:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM0_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI2:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM0_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI2:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM1_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI2:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM1_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI2:ReverseZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM2_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI2:ReverseZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM2_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI2:EnableX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM0_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI2:EnableX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM0_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI2:EnableY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM1_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI2:EnableY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM1_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI2:EnableZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM2_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI2:EnableZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM2_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the scaling of the data. Useful when # +# binning or converting data types # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ROI2:EnableScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)ENABLE_SCALE") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI2:EnableScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)ENABLE_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI2:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)SCALE_VALUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI2:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)SCALE_VALUE") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ROI2:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI2:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-01:ROI2:MaxX") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:ROI2:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:ROI2:MaxX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:ROI2:MinX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:ROI2:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI2:MaxY") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI2:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:ROI2:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:ROI2:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:ROI2:MaxY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:ROI2:MinY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:ROI2:SizeY.HOPR NPP") +} + +################################################################### +# These records whether dimensions of 1 are collapsed (removed) # # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ROI2:CollapseDims") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi2,0,1)COLLAPSE_DIMS") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI2:CollapseDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi2,0,1)COLLAPSE_DIMS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +#=================================================================# +# Template file: NDROI.template +# Database for ND ROIs +# Mark Rivers +# April 22, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, FSCN1.rois.roi3, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-01,R=:ROI3: + +# This associates a BOY screen with the template +# % gui, FSCN1.rois.roi3, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-01, R=:ROI3:, DESC=Region of Interest +# % gui, FSCN1.rois.roi3, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:ROI3:, DESC=Region of Interest +# % gui, FSCN1.rois.roi3, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-01, R=:ROI3:, DESC=Region of Interest + +# % gui, FSCN1.rois.roi3, groupHeading, Info +# % gui, FSCN1.rois.roi3, readback, Port name, S03SIM-EA-FSCN-01:ROI3:PortName_RBV +# % gui, FSCN1.rois.roi3, readback, Plugin type, S03SIM-EA-FSCN-01:ROI3:PluginType_RBV +# Input +# % gui, FSCN1.rois.roi3, demandString, Input, S03SIM-EA-FSCN-01:ROI3:NDArrayPort +# % gui, FSCN1.rois.roi3, readback, Input, S03SIM-EA-FSCN-01:ROI3:NDArrayPort_RBV + +# % gui, FSCN1.rois.roi3, groupHeading, Callback +# % gui, FSCN1.rois.roi3, enum, Callbacks, S03SIM-EA-FSCN-01:ROI3:EnableCallbacks +# % gui, FSCN1.rois.roi3, statusbits, Callbacks, S03SIM-EA-FSCN-01:ROI3:EnableCallbacks_RBV +# % gui, FSCN1.rois.roi3, demand, Min Callback Time, S03SIM-EA-FSCN-01:ROI3:MinCallbackTime +# % gui, FSCN1.rois.roi3, readback, Min Callback Time, S03SIM-EA-FSCN-01:ROI3:MinCallbackTime_RBV +# % gui, FSCN1.rois.roi3, enum, Block Callbacks, S03SIM-EA-FSCN-01:ROI3:BlockingCallbacks +# % gui, FSCN1.rois.roi3, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:ROI3:BlockingCallbacks_RBV + +# % gui, FSCN1.rois.roi3, groupHeading, Counters +# % gui, FSCN1.rois.roi3, demand, Array Counter, S03SIM-EA-FSCN-01:ROI3:ArrayCounter +# % gui, FSCN1.rois.roi3, readback, Array Counter, S03SIM-EA-FSCN-01:ROI3:ArrayCounter_RBV +# % gui, FSCN1.rois.roi3, readback, Array Rate (fps), S03SIM-EA-FSCN-01:ROI3:ArrayRate_RBV +# % gui, FSCN1.rois.roi3, readback, Queue Use, S03SIM-EA-FSCN-01:ROI3:QueueUse +# % gui, FSCN1.rois.roi3, readback, Queue Size, S03SIM-EA-FSCN-01:ROI3:QueueSize +# % gui, FSCN1.rois.roi3, demand, Dropped Arrays, S03SIM-EA-FSCN-01:ROI3:DroppedArrays +# % gui, FSCN1.rois.roi3, readback, Dropped Arrays, S03SIM-EA-FSCN-01:ROI3:DroppedArrays_RBV + +# % gui, FSCN1.rois.roi3, groupHeading, Array Settings +# % gui, FSCN1.rois.roi3, readback, Num Dimensions, S03SIM-EA-FSCN-01:ROI3:NDimensions_RBV +# % gui, FSCN1.rois.roi3, readback, Dim 0 Size, S03SIM-EA-FSCN-01:ROI3:ArraySize0_RBV +# % gui, FSCN1.rois.roi3, readback, Dim 1 Size, S03SIM-EA-FSCN-01:ROI3:ArraySize1_RBV +# % gui, FSCN1.rois.roi3, readback, Dim 2 Size, S03SIM-EA-FSCN-01:ROI3:ArraySize2_RBV +# % gui, FSCN1.rois.roi3, readback, Input Data Type, S03SIM-EA-FSCN-01:ROI3:DataType_RBV +# % gui, FSCN1.rois.roi3, readback, Colour Mode, S03SIM-EA-FSCN-01:ROI3:ColorMode_RBV +# % gui, FSCN1.rois.roi3, readback, Bayer Pattern, S03SIM-EA-FSCN-01:ROI3:BayerPattern_RBV +# % gui, FSCN1.rois.roi3, readback, Unique id, S03SIM-EA-FSCN-01:ROI3:UniqueId_RBV +# % gui, FSCN1.rois.roi3, readback, Timestamp, S03SIM-EA-FSCN-01:ROI3:TimeStamp_RBV + +# Output +# % gui, FSCN1.rois.roi3, groupHeading, Output +# % gui, FSCN1.rois.roi3, demand, Name, S03SIM-EA-FSCN-01:ROI3:Name +# % gui, FSCN1.rois.roi3, enum, Out data type, S03SIM-EA-FSCN-01:ROI3:DataTypeOut +# % gui, FSCN1.rois.roi3, readback, Out data type, S03SIM-EA-FSCN-01:ROI3:DataTypeOut_RBV +# % gui, FSCN1.rois.roi3, demand, Attributes file, S03SIM-EA-FSCN-01:ROI3:NDAttributesFile +# Scaling +# % gui, FSCN1.rois.roi3, groupHeading, Scaling +# % gui, FSCN1.rois.roi3, enum, Enable Scaling, S03SIM-EA-FSCN-01:ROI3:EnableScale +# % gui, FSCN1.rois.roi3, readback, Enable Scaling, S03SIM-EA-FSCN-01:ROI3:EnableScale_RBV +# % gui, FSCN1.rois.roi3, demand, Scale Divisor, S03SIM-EA-FSCN-01:ROI3:Scale +# % gui, FSCN1.rois.roi3, readback, Scale Divisor, S03SIM-EA-FSCN-01:ROI3:Scale_RBV +# X region +# % gui, FSCN1.rois.roi3, groupHeading, X Region +# % gui, FSCN1.rois.roi3, enum, X, S03SIM-EA-FSCN-01:ROI3:EnableX +# % gui, FSCN1.rois.roi3, readback, X, S03SIM-EA-FSCN-01:ROI3:EnableX_RBV +# % gui, FSCN1.rois.roi3, enum, Autosize X, S03SIM-EA-FSCN-01:ROI3:AutoSizeX +# % gui, FSCN1.rois.roi3, readback, Autosize X, S03SIM-EA-FSCN-01:ROI3:AutoSizeX_RBV +# % gui, FSCN1.rois.roi3, readback, Input Size X, S03SIM-EA-FSCN-01:ROI3:MaxSizeX_RBV +# % gui, FSCN1.rois.roi3, demand, Binning X, S03SIM-EA-FSCN-01:ROI3:BinX +# % gui, FSCN1.rois.roi3, readback, Binning X, S03SIM-EA-FSCN-01:ROI3:BinX_RBV +# % gui, FSCN1.rois.roi3, demand, Start X, S03SIM-EA-FSCN-01:ROI3:MinX +# % gui, FSCN1.rois.roi3, readback, Start X, S03SIM-EA-FSCN-01:ROI3:MinX_RBV +# % gui, FSCN1.rois.roi3, demand, Size X, S03SIM-EA-FSCN-01:ROI3:SizeX +# % gui, FSCN1.rois.roi3, readback, Size X, S03SIM-EA-FSCN-01:ROI3:SizeX_RBV +# % gui, FSCN1.rois.roi3, enum, Reverse X, S03SIM-EA-FSCN-01:ROI3:ReverseX +# % gui, FSCN1.rois.roi3, readback, Reverse X, S03SIM-EA-FSCN-01:ROI3:ReverseX_RBV +# % gui, FSCN1.rois.roi3, readback, Bytes X, S03SIM-EA-FSCN-01:ROI3:ArraySizeX_RBV +# Y region +# % gui, FSCN1.rois.roi3, groupHeading, Y Region +# % gui, FSCN1.rois.roi3, enum, Y, S03SIM-EA-FSCN-01:ROI3:EnableY +# % gui, FSCN1.rois.roi3, readback, Y, S03SIM-EA-FSCN-01:ROI3:EnableY_RBV +# % gui, FSCN1.rois.roi3, enum, Autosize Y, S03SIM-EA-FSCN-01:ROI3:AutoSizeY +# % gui, FSCN1.rois.roi3, readback, Autosize Y, S03SIM-EA-FSCN-01:ROI3:AutoSizeY_RBV +# % gui, FSCN1.rois.roi3, readback, Input size Y, S03SIM-EA-FSCN-01:ROI3:MaxSizeY_RBV +# % gui, FSCN1.rois.roi3, demand, Binning Y, S03SIM-EA-FSCN-01:ROI3:BinY +# % gui, FSCN1.rois.roi3, readback, Binning Y, S03SIM-EA-FSCN-01:ROI3:BinY_RBV +# % gui, FSCN1.rois.roi3, demand, Start Y, S03SIM-EA-FSCN-01:ROI3:MinY +# % gui, FSCN1.rois.roi3, readback, Start Y, S03SIM-EA-FSCN-01:ROI3:MinY_RBV +# % gui, FSCN1.rois.roi3, demand, Size Y, S03SIM-EA-FSCN-01:ROI3:SizeY +# % gui, FSCN1.rois.roi3, readback, Size Y, S03SIM-EA-FSCN-01:ROI3:SizeY_RBV +# % gui, FSCN1.rois.roi3, enum, Reverse Y, S03SIM-EA-FSCN-01:ROI3:ReverseY +# % gui, FSCN1.rois.roi3, readback, Reverse Y, S03SIM-EA-FSCN-01:ROI3:ReverseY_RBV +# % gui, FSCN1.rois.roi3, readback, Bytes Y, S03SIM-EA-FSCN-01:ROI3:ArraySizeY_RBV +# Z region +# % gui, FSCN1.rois.roi3, groupHeading, Z Region +# % gui, FSCN1.rois.roi3, enum, Z, S03SIM-EA-FSCN-01:ROI3:EnableZ +# % gui, FSCN1.rois.roi3, readback, Z, S03SIM-EA-FSCN-01:ROI3:EnableZ_RBV +# % gui, FSCN1.rois.roi3, enum, Autosize Z, S03SIM-EA-FSCN-01:ROI3:AutoSizeZ +# % gui, FSCN1.rois.roi3, readback, Autosize Z, S03SIM-EA-FSCN-01:ROI3:AutoSizeZ_RBV +# % gui, FSCN1.rois.roi3, readback, Input size Z, S03SIM-EA-FSCN-01:ROI3:MaxSizeZ_RBV +# % gui, FSCN1.rois.roi3, demand, Binning Z, S03SIM-EA-FSCN-01:ROI3:BinZ +# % gui, FSCN1.rois.roi3, readback, Binning Z, S03SIM-EA-FSCN-01:ROI3:BinZ_RBV +# % gui, FSCN1.rois.roi3, demand, Start Z, S03SIM-EA-FSCN-01:ROI3:MinZ +# % gui, FSCN1.rois.roi3, readback, Start Z, S03SIM-EA-FSCN-01:ROI3:MinZ_RBV +# % gui, FSCN1.rois.roi3, demand, Size Z, S03SIM-EA-FSCN-01:ROI3:SizeZ +# % gui, FSCN1.rois.roi3, readback, Size Z, S03SIM-EA-FSCN-01:ROI3:SizeZ_RBV +# % gui, FSCN1.rois.roi3, enum, Reverse Z, S03SIM-EA-FSCN-01:ROI3:ReverseZ +# % gui, FSCN1.rois.roi3, readback, Reverse Z, S03SIM-EA-FSCN-01:ROI3:ReverseZ_RBV +# % gui, FSCN1.rois.roi3, readback, Bytes Z, S03SIM-EA-FSCN-01:ROI3:ArraySizeZ_RBV +# Memory +# % gui, FSCN1.rois.roi3, groupHeading, Memory +# % gui, FSCN1.rois.roi3, readback, Max memory, S03SIM-EA-FSCN-01:ROI3:PoolMaxMem +# % gui, FSCN1.rois.roi3, readback, Max buffers, S03SIM-EA-FSCN-01:ROI3:PoolMaxBuffers +# % gui, FSCN1.rois.roi3, readback, Used memory, S03SIM-EA-FSCN-01:ROI3:PoolUsedMem +# % gui, FSCN1.rois.roi3, readback, Allocated buffers, S03SIM-EA-FSCN-01:ROI3:PoolAllocBuffers +# % gui, FSCN1.rois.roi3, readback, Free buffers, S03SIM-EA-FSCN-01:ROI3:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI3:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI3:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI3:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI3:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI3:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI3:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI3:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI3:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ROI3:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI3:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI3:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI3:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:ROI3:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI3:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI3:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI3:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:ROI3:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:ROI3:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI3:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:ROI3:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:ROI3:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:ROI3:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:ROI3:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ROI3:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI3:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ROI3:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI3:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:ROI3:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI3:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:ROI3:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:ROI3:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI3:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:ROI3:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:ROI3:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI3:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI3:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:ROI3:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:ROI3:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:ROI3:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:ROI3:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI3:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:ROI3:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI3:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:ROI3:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI3:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI3:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:ROI3:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI3:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI3:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI3:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI3:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI3:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI3:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI3:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:ROI3:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI3:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI3:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:ROI3:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:ROI3:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI3:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI3:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI3:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:ROI3:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI3:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI3:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI3:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:ROI3:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI3:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI3:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:ROI3:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI3:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:ROI3:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:ROI3:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI3:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:ROI3:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:ROI3:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI3:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:ROI3:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:ROI3:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:ROI3:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI3:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:ROI3:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI3:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI3:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI3:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI3:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI3:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:ROI3:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI3:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI3:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI3:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:ROI3:AsynIO") +{ + field(PORT, "FSCN1.rois.roi3") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the label for the ROI # +################################################################### +record(stringout, "S03SIM-EA-FSCN-01:ROI3:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)NAME") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI3:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)NAME") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the ROI definition # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-EA-FSCN-01:ROI3:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM0_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM0_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI3:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM1_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM1_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI3:BinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM2_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:BinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM2_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI3:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM0_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM0_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI3:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM1_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM1_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI3:MinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM2_MIN") + field(LOPR, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:MinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM2_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI3:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM0_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM0_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI3:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM1_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM1_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI3:SizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM2_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:SizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM2_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI3:AutoSizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM0_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI3:AutoSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM0_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI3:AutoSizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM1_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI3:AutoSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM1_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI3:AutoSizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM2_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI3:AutoSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM2_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM0_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM1_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:MaxSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM2_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI3:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM0_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI3:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM0_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI3:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM1_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI3:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM1_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI3:ReverseZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM2_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI3:ReverseZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM2_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI3:EnableX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM0_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI3:EnableX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM0_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI3:EnableY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM1_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI3:EnableY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM1_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI3:EnableZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM2_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI3:EnableZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM2_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the scaling of the data. Useful when # +# binning or converting data types # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ROI3:EnableScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)ENABLE_SCALE") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI3:EnableScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)ENABLE_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI3:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)SCALE_VALUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI3:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)SCALE_VALUE") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ROI3:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI3:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-01:ROI3:MaxX") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:ROI3:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:ROI3:MaxX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:ROI3:MinX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:ROI3:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI3:MaxY") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI3:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:ROI3:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:ROI3:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:ROI3:MaxY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:ROI3:MinY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:ROI3:SizeY.HOPR NPP") +} + +################################################################### +# These records whether dimensions of 1 are collapsed (removed) # # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ROI3:CollapseDims") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi3,0,1)COLLAPSE_DIMS") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI3:CollapseDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi3,0,1)COLLAPSE_DIMS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +#=================================================================# +# Template file: NDROI.template +# Database for ND ROIs +# Mark Rivers +# April 22, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, FSCN1.rois.roi4, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-01,R=:ROI4: + +# This associates a BOY screen with the template +# % gui, FSCN1.rois.roi4, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-01, R=:ROI4:, DESC=Region of Interest +# % gui, FSCN1.rois.roi4, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:ROI4:, DESC=Region of Interest +# % gui, FSCN1.rois.roi4, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-01, R=:ROI4:, DESC=Region of Interest + +# % gui, FSCN1.rois.roi4, groupHeading, Info +# % gui, FSCN1.rois.roi4, readback, Port name, S03SIM-EA-FSCN-01:ROI4:PortName_RBV +# % gui, FSCN1.rois.roi4, readback, Plugin type, S03SIM-EA-FSCN-01:ROI4:PluginType_RBV +# Input +# % gui, FSCN1.rois.roi4, demandString, Input, S03SIM-EA-FSCN-01:ROI4:NDArrayPort +# % gui, FSCN1.rois.roi4, readback, Input, S03SIM-EA-FSCN-01:ROI4:NDArrayPort_RBV + +# % gui, FSCN1.rois.roi4, groupHeading, Callback +# % gui, FSCN1.rois.roi4, enum, Callbacks, S03SIM-EA-FSCN-01:ROI4:EnableCallbacks +# % gui, FSCN1.rois.roi4, statusbits, Callbacks, S03SIM-EA-FSCN-01:ROI4:EnableCallbacks_RBV +# % gui, FSCN1.rois.roi4, demand, Min Callback Time, S03SIM-EA-FSCN-01:ROI4:MinCallbackTime +# % gui, FSCN1.rois.roi4, readback, Min Callback Time, S03SIM-EA-FSCN-01:ROI4:MinCallbackTime_RBV +# % gui, FSCN1.rois.roi4, enum, Block Callbacks, S03SIM-EA-FSCN-01:ROI4:BlockingCallbacks +# % gui, FSCN1.rois.roi4, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:ROI4:BlockingCallbacks_RBV + +# % gui, FSCN1.rois.roi4, groupHeading, Counters +# % gui, FSCN1.rois.roi4, demand, Array Counter, S03SIM-EA-FSCN-01:ROI4:ArrayCounter +# % gui, FSCN1.rois.roi4, readback, Array Counter, S03SIM-EA-FSCN-01:ROI4:ArrayCounter_RBV +# % gui, FSCN1.rois.roi4, readback, Array Rate (fps), S03SIM-EA-FSCN-01:ROI4:ArrayRate_RBV +# % gui, FSCN1.rois.roi4, readback, Queue Use, S03SIM-EA-FSCN-01:ROI4:QueueUse +# % gui, FSCN1.rois.roi4, readback, Queue Size, S03SIM-EA-FSCN-01:ROI4:QueueSize +# % gui, FSCN1.rois.roi4, demand, Dropped Arrays, S03SIM-EA-FSCN-01:ROI4:DroppedArrays +# % gui, FSCN1.rois.roi4, readback, Dropped Arrays, S03SIM-EA-FSCN-01:ROI4:DroppedArrays_RBV + +# % gui, FSCN1.rois.roi4, groupHeading, Array Settings +# % gui, FSCN1.rois.roi4, readback, Num Dimensions, S03SIM-EA-FSCN-01:ROI4:NDimensions_RBV +# % gui, FSCN1.rois.roi4, readback, Dim 0 Size, S03SIM-EA-FSCN-01:ROI4:ArraySize0_RBV +# % gui, FSCN1.rois.roi4, readback, Dim 1 Size, S03SIM-EA-FSCN-01:ROI4:ArraySize1_RBV +# % gui, FSCN1.rois.roi4, readback, Dim 2 Size, S03SIM-EA-FSCN-01:ROI4:ArraySize2_RBV +# % gui, FSCN1.rois.roi4, readback, Input Data Type, S03SIM-EA-FSCN-01:ROI4:DataType_RBV +# % gui, FSCN1.rois.roi4, readback, Colour Mode, S03SIM-EA-FSCN-01:ROI4:ColorMode_RBV +# % gui, FSCN1.rois.roi4, readback, Bayer Pattern, S03SIM-EA-FSCN-01:ROI4:BayerPattern_RBV +# % gui, FSCN1.rois.roi4, readback, Unique id, S03SIM-EA-FSCN-01:ROI4:UniqueId_RBV +# % gui, FSCN1.rois.roi4, readback, Timestamp, S03SIM-EA-FSCN-01:ROI4:TimeStamp_RBV + +# Output +# % gui, FSCN1.rois.roi4, groupHeading, Output +# % gui, FSCN1.rois.roi4, demand, Name, S03SIM-EA-FSCN-01:ROI4:Name +# % gui, FSCN1.rois.roi4, enum, Out data type, S03SIM-EA-FSCN-01:ROI4:DataTypeOut +# % gui, FSCN1.rois.roi4, readback, Out data type, S03SIM-EA-FSCN-01:ROI4:DataTypeOut_RBV +# % gui, FSCN1.rois.roi4, demand, Attributes file, S03SIM-EA-FSCN-01:ROI4:NDAttributesFile +# Scaling +# % gui, FSCN1.rois.roi4, groupHeading, Scaling +# % gui, FSCN1.rois.roi4, enum, Enable Scaling, S03SIM-EA-FSCN-01:ROI4:EnableScale +# % gui, FSCN1.rois.roi4, readback, Enable Scaling, S03SIM-EA-FSCN-01:ROI4:EnableScale_RBV +# % gui, FSCN1.rois.roi4, demand, Scale Divisor, S03SIM-EA-FSCN-01:ROI4:Scale +# % gui, FSCN1.rois.roi4, readback, Scale Divisor, S03SIM-EA-FSCN-01:ROI4:Scale_RBV +# X region +# % gui, FSCN1.rois.roi4, groupHeading, X Region +# % gui, FSCN1.rois.roi4, enum, X, S03SIM-EA-FSCN-01:ROI4:EnableX +# % gui, FSCN1.rois.roi4, readback, X, S03SIM-EA-FSCN-01:ROI4:EnableX_RBV +# % gui, FSCN1.rois.roi4, enum, Autosize X, S03SIM-EA-FSCN-01:ROI4:AutoSizeX +# % gui, FSCN1.rois.roi4, readback, Autosize X, S03SIM-EA-FSCN-01:ROI4:AutoSizeX_RBV +# % gui, FSCN1.rois.roi4, readback, Input Size X, S03SIM-EA-FSCN-01:ROI4:MaxSizeX_RBV +# % gui, FSCN1.rois.roi4, demand, Binning X, S03SIM-EA-FSCN-01:ROI4:BinX +# % gui, FSCN1.rois.roi4, readback, Binning X, S03SIM-EA-FSCN-01:ROI4:BinX_RBV +# % gui, FSCN1.rois.roi4, demand, Start X, S03SIM-EA-FSCN-01:ROI4:MinX +# % gui, FSCN1.rois.roi4, readback, Start X, S03SIM-EA-FSCN-01:ROI4:MinX_RBV +# % gui, FSCN1.rois.roi4, demand, Size X, S03SIM-EA-FSCN-01:ROI4:SizeX +# % gui, FSCN1.rois.roi4, readback, Size X, S03SIM-EA-FSCN-01:ROI4:SizeX_RBV +# % gui, FSCN1.rois.roi4, enum, Reverse X, S03SIM-EA-FSCN-01:ROI4:ReverseX +# % gui, FSCN1.rois.roi4, readback, Reverse X, S03SIM-EA-FSCN-01:ROI4:ReverseX_RBV +# % gui, FSCN1.rois.roi4, readback, Bytes X, S03SIM-EA-FSCN-01:ROI4:ArraySizeX_RBV +# Y region +# % gui, FSCN1.rois.roi4, groupHeading, Y Region +# % gui, FSCN1.rois.roi4, enum, Y, S03SIM-EA-FSCN-01:ROI4:EnableY +# % gui, FSCN1.rois.roi4, readback, Y, S03SIM-EA-FSCN-01:ROI4:EnableY_RBV +# % gui, FSCN1.rois.roi4, enum, Autosize Y, S03SIM-EA-FSCN-01:ROI4:AutoSizeY +# % gui, FSCN1.rois.roi4, readback, Autosize Y, S03SIM-EA-FSCN-01:ROI4:AutoSizeY_RBV +# % gui, FSCN1.rois.roi4, readback, Input size Y, S03SIM-EA-FSCN-01:ROI4:MaxSizeY_RBV +# % gui, FSCN1.rois.roi4, demand, Binning Y, S03SIM-EA-FSCN-01:ROI4:BinY +# % gui, FSCN1.rois.roi4, readback, Binning Y, S03SIM-EA-FSCN-01:ROI4:BinY_RBV +# % gui, FSCN1.rois.roi4, demand, Start Y, S03SIM-EA-FSCN-01:ROI4:MinY +# % gui, FSCN1.rois.roi4, readback, Start Y, S03SIM-EA-FSCN-01:ROI4:MinY_RBV +# % gui, FSCN1.rois.roi4, demand, Size Y, S03SIM-EA-FSCN-01:ROI4:SizeY +# % gui, FSCN1.rois.roi4, readback, Size Y, S03SIM-EA-FSCN-01:ROI4:SizeY_RBV +# % gui, FSCN1.rois.roi4, enum, Reverse Y, S03SIM-EA-FSCN-01:ROI4:ReverseY +# % gui, FSCN1.rois.roi4, readback, Reverse Y, S03SIM-EA-FSCN-01:ROI4:ReverseY_RBV +# % gui, FSCN1.rois.roi4, readback, Bytes Y, S03SIM-EA-FSCN-01:ROI4:ArraySizeY_RBV +# Z region +# % gui, FSCN1.rois.roi4, groupHeading, Z Region +# % gui, FSCN1.rois.roi4, enum, Z, S03SIM-EA-FSCN-01:ROI4:EnableZ +# % gui, FSCN1.rois.roi4, readback, Z, S03SIM-EA-FSCN-01:ROI4:EnableZ_RBV +# % gui, FSCN1.rois.roi4, enum, Autosize Z, S03SIM-EA-FSCN-01:ROI4:AutoSizeZ +# % gui, FSCN1.rois.roi4, readback, Autosize Z, S03SIM-EA-FSCN-01:ROI4:AutoSizeZ_RBV +# % gui, FSCN1.rois.roi4, readback, Input size Z, S03SIM-EA-FSCN-01:ROI4:MaxSizeZ_RBV +# % gui, FSCN1.rois.roi4, demand, Binning Z, S03SIM-EA-FSCN-01:ROI4:BinZ +# % gui, FSCN1.rois.roi4, readback, Binning Z, S03SIM-EA-FSCN-01:ROI4:BinZ_RBV +# % gui, FSCN1.rois.roi4, demand, Start Z, S03SIM-EA-FSCN-01:ROI4:MinZ +# % gui, FSCN1.rois.roi4, readback, Start Z, S03SIM-EA-FSCN-01:ROI4:MinZ_RBV +# % gui, FSCN1.rois.roi4, demand, Size Z, S03SIM-EA-FSCN-01:ROI4:SizeZ +# % gui, FSCN1.rois.roi4, readback, Size Z, S03SIM-EA-FSCN-01:ROI4:SizeZ_RBV +# % gui, FSCN1.rois.roi4, enum, Reverse Z, S03SIM-EA-FSCN-01:ROI4:ReverseZ +# % gui, FSCN1.rois.roi4, readback, Reverse Z, S03SIM-EA-FSCN-01:ROI4:ReverseZ_RBV +# % gui, FSCN1.rois.roi4, readback, Bytes Z, S03SIM-EA-FSCN-01:ROI4:ArraySizeZ_RBV +# Memory +# % gui, FSCN1.rois.roi4, groupHeading, Memory +# % gui, FSCN1.rois.roi4, readback, Max memory, S03SIM-EA-FSCN-01:ROI4:PoolMaxMem +# % gui, FSCN1.rois.roi4, readback, Max buffers, S03SIM-EA-FSCN-01:ROI4:PoolMaxBuffers +# % gui, FSCN1.rois.roi4, readback, Used memory, S03SIM-EA-FSCN-01:ROI4:PoolUsedMem +# % gui, FSCN1.rois.roi4, readback, Allocated buffers, S03SIM-EA-FSCN-01:ROI4:PoolAllocBuffers +# % gui, FSCN1.rois.roi4, readback, Free buffers, S03SIM-EA-FSCN-01:ROI4:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI4:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI4:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI4:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI4:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI4:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI4:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI4:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI4:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ROI4:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI4:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI4:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI4:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:ROI4:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI4:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI4:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI4:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:ROI4:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:ROI4:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI4:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:ROI4:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:ROI4:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:ROI4:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:ROI4:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ROI4:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI4:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ROI4:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI4:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:ROI4:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI4:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:ROI4:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:ROI4:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI4:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:ROI4:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:ROI4:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI4:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI4:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:ROI4:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:ROI4:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:ROI4:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:ROI4:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI4:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:ROI4:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI4:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:ROI4:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI4:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI4:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:ROI4:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI4:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI4:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI4:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI4:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI4:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI4:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI4:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:ROI4:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI4:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI4:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:ROI4:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:ROI4:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI4:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI4:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI4:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:ROI4:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI4:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI4:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI4:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:ROI4:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI4:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI4:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:ROI4:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI4:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:ROI4:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:ROI4:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI4:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:ROI4:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:ROI4:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI4:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:ROI4:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:ROI4:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:ROI4:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI4:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:ROI4:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI4:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI4:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI4:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI4:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI4:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:ROI4:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI4:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI4:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI4:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:ROI4:AsynIO") +{ + field(PORT, "FSCN1.rois.roi4") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the label for the ROI # +################################################################### +record(stringout, "S03SIM-EA-FSCN-01:ROI4:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)NAME") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI4:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)NAME") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the ROI definition # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-EA-FSCN-01:ROI4:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM0_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM0_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI4:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM1_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM1_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI4:BinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM2_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:BinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM2_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI4:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM0_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM0_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI4:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM1_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM1_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI4:MinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM2_MIN") + field(LOPR, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:MinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM2_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI4:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM0_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM0_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI4:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM1_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM1_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI4:SizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM2_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:SizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM2_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI4:AutoSizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM0_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI4:AutoSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM0_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI4:AutoSizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM1_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI4:AutoSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM1_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI4:AutoSizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM2_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI4:AutoSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM2_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM0_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM1_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:MaxSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM2_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI4:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM0_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI4:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM0_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI4:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM1_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI4:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM1_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI4:ReverseZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM2_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI4:ReverseZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM2_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI4:EnableX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM0_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI4:EnableX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM0_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI4:EnableY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM1_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI4:EnableY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM1_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI4:EnableZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM2_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI4:EnableZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM2_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the scaling of the data. Useful when # +# binning or converting data types # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ROI4:EnableScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)ENABLE_SCALE") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI4:EnableScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)ENABLE_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI4:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)SCALE_VALUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI4:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)SCALE_VALUE") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ROI4:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI4:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-01:ROI4:MaxX") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:ROI4:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:ROI4:MaxX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:ROI4:MinX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:ROI4:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI4:MaxY") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI4:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:ROI4:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:ROI4:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:ROI4:MaxY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:ROI4:MinY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:ROI4:SizeY.HOPR NPP") +} + +################################################################### +# These records whether dimensions of 1 are collapsed (removed) # # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ROI4:CollapseDims") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi4,0,1)COLLAPSE_DIMS") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI4:CollapseDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi4,0,1)COLLAPSE_DIMS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +#=================================================================# +# Template file: NDROI.template +# Database for ND ROIs +# Mark Rivers +# April 22, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, FSCN1.rois.roi5, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-01,R=:ROI5: + +# This associates a BOY screen with the template +# % gui, FSCN1.rois.roi5, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-01, R=:ROI5:, DESC=Region of Interest +# % gui, FSCN1.rois.roi5, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:ROI5:, DESC=Region of Interest +# % gui, FSCN1.rois.roi5, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-01, R=:ROI5:, DESC=Region of Interest + +# % gui, FSCN1.rois.roi5, groupHeading, Info +# % gui, FSCN1.rois.roi5, readback, Port name, S03SIM-EA-FSCN-01:ROI5:PortName_RBV +# % gui, FSCN1.rois.roi5, readback, Plugin type, S03SIM-EA-FSCN-01:ROI5:PluginType_RBV +# Input +# % gui, FSCN1.rois.roi5, demandString, Input, S03SIM-EA-FSCN-01:ROI5:NDArrayPort +# % gui, FSCN1.rois.roi5, readback, Input, S03SIM-EA-FSCN-01:ROI5:NDArrayPort_RBV + +# % gui, FSCN1.rois.roi5, groupHeading, Callback +# % gui, FSCN1.rois.roi5, enum, Callbacks, S03SIM-EA-FSCN-01:ROI5:EnableCallbacks +# % gui, FSCN1.rois.roi5, statusbits, Callbacks, S03SIM-EA-FSCN-01:ROI5:EnableCallbacks_RBV +# % gui, FSCN1.rois.roi5, demand, Min Callback Time, S03SIM-EA-FSCN-01:ROI5:MinCallbackTime +# % gui, FSCN1.rois.roi5, readback, Min Callback Time, S03SIM-EA-FSCN-01:ROI5:MinCallbackTime_RBV +# % gui, FSCN1.rois.roi5, enum, Block Callbacks, S03SIM-EA-FSCN-01:ROI5:BlockingCallbacks +# % gui, FSCN1.rois.roi5, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:ROI5:BlockingCallbacks_RBV + +# % gui, FSCN1.rois.roi5, groupHeading, Counters +# % gui, FSCN1.rois.roi5, demand, Array Counter, S03SIM-EA-FSCN-01:ROI5:ArrayCounter +# % gui, FSCN1.rois.roi5, readback, Array Counter, S03SIM-EA-FSCN-01:ROI5:ArrayCounter_RBV +# % gui, FSCN1.rois.roi5, readback, Array Rate (fps), S03SIM-EA-FSCN-01:ROI5:ArrayRate_RBV +# % gui, FSCN1.rois.roi5, readback, Queue Use, S03SIM-EA-FSCN-01:ROI5:QueueUse +# % gui, FSCN1.rois.roi5, readback, Queue Size, S03SIM-EA-FSCN-01:ROI5:QueueSize +# % gui, FSCN1.rois.roi5, demand, Dropped Arrays, S03SIM-EA-FSCN-01:ROI5:DroppedArrays +# % gui, FSCN1.rois.roi5, readback, Dropped Arrays, S03SIM-EA-FSCN-01:ROI5:DroppedArrays_RBV + +# % gui, FSCN1.rois.roi5, groupHeading, Array Settings +# % gui, FSCN1.rois.roi5, readback, Num Dimensions, S03SIM-EA-FSCN-01:ROI5:NDimensions_RBV +# % gui, FSCN1.rois.roi5, readback, Dim 0 Size, S03SIM-EA-FSCN-01:ROI5:ArraySize0_RBV +# % gui, FSCN1.rois.roi5, readback, Dim 1 Size, S03SIM-EA-FSCN-01:ROI5:ArraySize1_RBV +# % gui, FSCN1.rois.roi5, readback, Dim 2 Size, S03SIM-EA-FSCN-01:ROI5:ArraySize2_RBV +# % gui, FSCN1.rois.roi5, readback, Input Data Type, S03SIM-EA-FSCN-01:ROI5:DataType_RBV +# % gui, FSCN1.rois.roi5, readback, Colour Mode, S03SIM-EA-FSCN-01:ROI5:ColorMode_RBV +# % gui, FSCN1.rois.roi5, readback, Bayer Pattern, S03SIM-EA-FSCN-01:ROI5:BayerPattern_RBV +# % gui, FSCN1.rois.roi5, readback, Unique id, S03SIM-EA-FSCN-01:ROI5:UniqueId_RBV +# % gui, FSCN1.rois.roi5, readback, Timestamp, S03SIM-EA-FSCN-01:ROI5:TimeStamp_RBV + +# Output +# % gui, FSCN1.rois.roi5, groupHeading, Output +# % gui, FSCN1.rois.roi5, demand, Name, S03SIM-EA-FSCN-01:ROI5:Name +# % gui, FSCN1.rois.roi5, enum, Out data type, S03SIM-EA-FSCN-01:ROI5:DataTypeOut +# % gui, FSCN1.rois.roi5, readback, Out data type, S03SIM-EA-FSCN-01:ROI5:DataTypeOut_RBV +# % gui, FSCN1.rois.roi5, demand, Attributes file, S03SIM-EA-FSCN-01:ROI5:NDAttributesFile +# Scaling +# % gui, FSCN1.rois.roi5, groupHeading, Scaling +# % gui, FSCN1.rois.roi5, enum, Enable Scaling, S03SIM-EA-FSCN-01:ROI5:EnableScale +# % gui, FSCN1.rois.roi5, readback, Enable Scaling, S03SIM-EA-FSCN-01:ROI5:EnableScale_RBV +# % gui, FSCN1.rois.roi5, demand, Scale Divisor, S03SIM-EA-FSCN-01:ROI5:Scale +# % gui, FSCN1.rois.roi5, readback, Scale Divisor, S03SIM-EA-FSCN-01:ROI5:Scale_RBV +# X region +# % gui, FSCN1.rois.roi5, groupHeading, X Region +# % gui, FSCN1.rois.roi5, enum, X, S03SIM-EA-FSCN-01:ROI5:EnableX +# % gui, FSCN1.rois.roi5, readback, X, S03SIM-EA-FSCN-01:ROI5:EnableX_RBV +# % gui, FSCN1.rois.roi5, enum, Autosize X, S03SIM-EA-FSCN-01:ROI5:AutoSizeX +# % gui, FSCN1.rois.roi5, readback, Autosize X, S03SIM-EA-FSCN-01:ROI5:AutoSizeX_RBV +# % gui, FSCN1.rois.roi5, readback, Input Size X, S03SIM-EA-FSCN-01:ROI5:MaxSizeX_RBV +# % gui, FSCN1.rois.roi5, demand, Binning X, S03SIM-EA-FSCN-01:ROI5:BinX +# % gui, FSCN1.rois.roi5, readback, Binning X, S03SIM-EA-FSCN-01:ROI5:BinX_RBV +# % gui, FSCN1.rois.roi5, demand, Start X, S03SIM-EA-FSCN-01:ROI5:MinX +# % gui, FSCN1.rois.roi5, readback, Start X, S03SIM-EA-FSCN-01:ROI5:MinX_RBV +# % gui, FSCN1.rois.roi5, demand, Size X, S03SIM-EA-FSCN-01:ROI5:SizeX +# % gui, FSCN1.rois.roi5, readback, Size X, S03SIM-EA-FSCN-01:ROI5:SizeX_RBV +# % gui, FSCN1.rois.roi5, enum, Reverse X, S03SIM-EA-FSCN-01:ROI5:ReverseX +# % gui, FSCN1.rois.roi5, readback, Reverse X, S03SIM-EA-FSCN-01:ROI5:ReverseX_RBV +# % gui, FSCN1.rois.roi5, readback, Bytes X, S03SIM-EA-FSCN-01:ROI5:ArraySizeX_RBV +# Y region +# % gui, FSCN1.rois.roi5, groupHeading, Y Region +# % gui, FSCN1.rois.roi5, enum, Y, S03SIM-EA-FSCN-01:ROI5:EnableY +# % gui, FSCN1.rois.roi5, readback, Y, S03SIM-EA-FSCN-01:ROI5:EnableY_RBV +# % gui, FSCN1.rois.roi5, enum, Autosize Y, S03SIM-EA-FSCN-01:ROI5:AutoSizeY +# % gui, FSCN1.rois.roi5, readback, Autosize Y, S03SIM-EA-FSCN-01:ROI5:AutoSizeY_RBV +# % gui, FSCN1.rois.roi5, readback, Input size Y, S03SIM-EA-FSCN-01:ROI5:MaxSizeY_RBV +# % gui, FSCN1.rois.roi5, demand, Binning Y, S03SIM-EA-FSCN-01:ROI5:BinY +# % gui, FSCN1.rois.roi5, readback, Binning Y, S03SIM-EA-FSCN-01:ROI5:BinY_RBV +# % gui, FSCN1.rois.roi5, demand, Start Y, S03SIM-EA-FSCN-01:ROI5:MinY +# % gui, FSCN1.rois.roi5, readback, Start Y, S03SIM-EA-FSCN-01:ROI5:MinY_RBV +# % gui, FSCN1.rois.roi5, demand, Size Y, S03SIM-EA-FSCN-01:ROI5:SizeY +# % gui, FSCN1.rois.roi5, readback, Size Y, S03SIM-EA-FSCN-01:ROI5:SizeY_RBV +# % gui, FSCN1.rois.roi5, enum, Reverse Y, S03SIM-EA-FSCN-01:ROI5:ReverseY +# % gui, FSCN1.rois.roi5, readback, Reverse Y, S03SIM-EA-FSCN-01:ROI5:ReverseY_RBV +# % gui, FSCN1.rois.roi5, readback, Bytes Y, S03SIM-EA-FSCN-01:ROI5:ArraySizeY_RBV +# Z region +# % gui, FSCN1.rois.roi5, groupHeading, Z Region +# % gui, FSCN1.rois.roi5, enum, Z, S03SIM-EA-FSCN-01:ROI5:EnableZ +# % gui, FSCN1.rois.roi5, readback, Z, S03SIM-EA-FSCN-01:ROI5:EnableZ_RBV +# % gui, FSCN1.rois.roi5, enum, Autosize Z, S03SIM-EA-FSCN-01:ROI5:AutoSizeZ +# % gui, FSCN1.rois.roi5, readback, Autosize Z, S03SIM-EA-FSCN-01:ROI5:AutoSizeZ_RBV +# % gui, FSCN1.rois.roi5, readback, Input size Z, S03SIM-EA-FSCN-01:ROI5:MaxSizeZ_RBV +# % gui, FSCN1.rois.roi5, demand, Binning Z, S03SIM-EA-FSCN-01:ROI5:BinZ +# % gui, FSCN1.rois.roi5, readback, Binning Z, S03SIM-EA-FSCN-01:ROI5:BinZ_RBV +# % gui, FSCN1.rois.roi5, demand, Start Z, S03SIM-EA-FSCN-01:ROI5:MinZ +# % gui, FSCN1.rois.roi5, readback, Start Z, S03SIM-EA-FSCN-01:ROI5:MinZ_RBV +# % gui, FSCN1.rois.roi5, demand, Size Z, S03SIM-EA-FSCN-01:ROI5:SizeZ +# % gui, FSCN1.rois.roi5, readback, Size Z, S03SIM-EA-FSCN-01:ROI5:SizeZ_RBV +# % gui, FSCN1.rois.roi5, enum, Reverse Z, S03SIM-EA-FSCN-01:ROI5:ReverseZ +# % gui, FSCN1.rois.roi5, readback, Reverse Z, S03SIM-EA-FSCN-01:ROI5:ReverseZ_RBV +# % gui, FSCN1.rois.roi5, readback, Bytes Z, S03SIM-EA-FSCN-01:ROI5:ArraySizeZ_RBV +# Memory +# % gui, FSCN1.rois.roi5, groupHeading, Memory +# % gui, FSCN1.rois.roi5, readback, Max memory, S03SIM-EA-FSCN-01:ROI5:PoolMaxMem +# % gui, FSCN1.rois.roi5, readback, Max buffers, S03SIM-EA-FSCN-01:ROI5:PoolMaxBuffers +# % gui, FSCN1.rois.roi5, readback, Used memory, S03SIM-EA-FSCN-01:ROI5:PoolUsedMem +# % gui, FSCN1.rois.roi5, readback, Allocated buffers, S03SIM-EA-FSCN-01:ROI5:PoolAllocBuffers +# % gui, FSCN1.rois.roi5, readback, Free buffers, S03SIM-EA-FSCN-01:ROI5:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI5:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI5:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI5:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI5:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI5:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI5:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI5:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI5:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ROI5:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI5:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI5:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI5:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:ROI5:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI5:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI5:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI5:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:ROI5:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:ROI5:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI5:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:ROI5:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:ROI5:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:ROI5:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:ROI5:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ROI5:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI5:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ROI5:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI5:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:ROI5:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI5:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:ROI5:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:ROI5:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI5:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:ROI5:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:ROI5:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI5:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI5:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:ROI5:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:ROI5:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:ROI5:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:ROI5:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI5:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:ROI5:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI5:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:ROI5:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI5:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI5:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:ROI5:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI5:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI5:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI5:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI5:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI5:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI5:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI5:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:ROI5:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI5:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI5:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:ROI5:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:ROI5:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI5:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI5:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI5:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:ROI5:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI5:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI5:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI5:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:ROI5:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI5:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI5:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:ROI5:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI5:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:ROI5:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:ROI5:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI5:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:ROI5:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:ROI5:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI5:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:ROI5:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:ROI5:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:ROI5:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI5:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:ROI5:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI5:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI5:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI5:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI5:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI5:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:ROI5:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI5:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI5:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI5:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:ROI5:AsynIO") +{ + field(PORT, "FSCN1.rois.roi5") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the label for the ROI # +################################################################### +record(stringout, "S03SIM-EA-FSCN-01:ROI5:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)NAME") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI5:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)NAME") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the ROI definition # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-EA-FSCN-01:ROI5:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM0_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM0_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI5:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM1_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM1_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI5:BinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM2_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:BinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM2_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI5:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM0_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM0_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI5:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM1_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM1_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI5:MinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM2_MIN") + field(LOPR, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:MinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM2_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI5:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM0_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM0_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI5:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM1_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM1_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI5:SizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM2_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:SizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM2_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI5:AutoSizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM0_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI5:AutoSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM0_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI5:AutoSizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM1_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI5:AutoSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM1_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI5:AutoSizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM2_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI5:AutoSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM2_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM0_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM1_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:MaxSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM2_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI5:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM0_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI5:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM0_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI5:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM1_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI5:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM1_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI5:ReverseZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM2_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI5:ReverseZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM2_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI5:EnableX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM0_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI5:EnableX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM0_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI5:EnableY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM1_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI5:EnableY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM1_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI5:EnableZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM2_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI5:EnableZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM2_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the scaling of the data. Useful when # +# binning or converting data types # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ROI5:EnableScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)ENABLE_SCALE") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI5:EnableScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)ENABLE_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI5:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)SCALE_VALUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI5:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)SCALE_VALUE") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ROI5:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI5:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-01:ROI5:MaxX") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:ROI5:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:ROI5:MaxX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:ROI5:MinX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:ROI5:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI5:MaxY") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI5:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:ROI5:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:ROI5:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:ROI5:MaxY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:ROI5:MinY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:ROI5:SizeY.HOPR NPP") +} + +################################################################### +# These records whether dimensions of 1 are collapsed (removed) # # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ROI5:CollapseDims") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi5,0,1)COLLAPSE_DIMS") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI5:CollapseDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi5,0,1)COLLAPSE_DIMS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +#=================================================================# +# Template file: NDROI.template +# Database for ND ROIs +# Mark Rivers +# April 22, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, FSCN1.rois.roi6, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-01,R=:ROI6: + +# This associates a BOY screen with the template +# % gui, FSCN1.rois.roi6, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-01, R=:ROI6:, DESC=Region of Interest +# % gui, FSCN1.rois.roi6, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:ROI6:, DESC=Region of Interest +# % gui, FSCN1.rois.roi6, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-01, R=:ROI6:, DESC=Region of Interest + +# % gui, FSCN1.rois.roi6, groupHeading, Info +# % gui, FSCN1.rois.roi6, readback, Port name, S03SIM-EA-FSCN-01:ROI6:PortName_RBV +# % gui, FSCN1.rois.roi6, readback, Plugin type, S03SIM-EA-FSCN-01:ROI6:PluginType_RBV +# Input +# % gui, FSCN1.rois.roi6, demandString, Input, S03SIM-EA-FSCN-01:ROI6:NDArrayPort +# % gui, FSCN1.rois.roi6, readback, Input, S03SIM-EA-FSCN-01:ROI6:NDArrayPort_RBV + +# % gui, FSCN1.rois.roi6, groupHeading, Callback +# % gui, FSCN1.rois.roi6, enum, Callbacks, S03SIM-EA-FSCN-01:ROI6:EnableCallbacks +# % gui, FSCN1.rois.roi6, statusbits, Callbacks, S03SIM-EA-FSCN-01:ROI6:EnableCallbacks_RBV +# % gui, FSCN1.rois.roi6, demand, Min Callback Time, S03SIM-EA-FSCN-01:ROI6:MinCallbackTime +# % gui, FSCN1.rois.roi6, readback, Min Callback Time, S03SIM-EA-FSCN-01:ROI6:MinCallbackTime_RBV +# % gui, FSCN1.rois.roi6, enum, Block Callbacks, S03SIM-EA-FSCN-01:ROI6:BlockingCallbacks +# % gui, FSCN1.rois.roi6, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:ROI6:BlockingCallbacks_RBV + +# % gui, FSCN1.rois.roi6, groupHeading, Counters +# % gui, FSCN1.rois.roi6, demand, Array Counter, S03SIM-EA-FSCN-01:ROI6:ArrayCounter +# % gui, FSCN1.rois.roi6, readback, Array Counter, S03SIM-EA-FSCN-01:ROI6:ArrayCounter_RBV +# % gui, FSCN1.rois.roi6, readback, Array Rate (fps), S03SIM-EA-FSCN-01:ROI6:ArrayRate_RBV +# % gui, FSCN1.rois.roi6, readback, Queue Use, S03SIM-EA-FSCN-01:ROI6:QueueUse +# % gui, FSCN1.rois.roi6, readback, Queue Size, S03SIM-EA-FSCN-01:ROI6:QueueSize +# % gui, FSCN1.rois.roi6, demand, Dropped Arrays, S03SIM-EA-FSCN-01:ROI6:DroppedArrays +# % gui, FSCN1.rois.roi6, readback, Dropped Arrays, S03SIM-EA-FSCN-01:ROI6:DroppedArrays_RBV + +# % gui, FSCN1.rois.roi6, groupHeading, Array Settings +# % gui, FSCN1.rois.roi6, readback, Num Dimensions, S03SIM-EA-FSCN-01:ROI6:NDimensions_RBV +# % gui, FSCN1.rois.roi6, readback, Dim 0 Size, S03SIM-EA-FSCN-01:ROI6:ArraySize0_RBV +# % gui, FSCN1.rois.roi6, readback, Dim 1 Size, S03SIM-EA-FSCN-01:ROI6:ArraySize1_RBV +# % gui, FSCN1.rois.roi6, readback, Dim 2 Size, S03SIM-EA-FSCN-01:ROI6:ArraySize2_RBV +# % gui, FSCN1.rois.roi6, readback, Input Data Type, S03SIM-EA-FSCN-01:ROI6:DataType_RBV +# % gui, FSCN1.rois.roi6, readback, Colour Mode, S03SIM-EA-FSCN-01:ROI6:ColorMode_RBV +# % gui, FSCN1.rois.roi6, readback, Bayer Pattern, S03SIM-EA-FSCN-01:ROI6:BayerPattern_RBV +# % gui, FSCN1.rois.roi6, readback, Unique id, S03SIM-EA-FSCN-01:ROI6:UniqueId_RBV +# % gui, FSCN1.rois.roi6, readback, Timestamp, S03SIM-EA-FSCN-01:ROI6:TimeStamp_RBV + +# Output +# % gui, FSCN1.rois.roi6, groupHeading, Output +# % gui, FSCN1.rois.roi6, demand, Name, S03SIM-EA-FSCN-01:ROI6:Name +# % gui, FSCN1.rois.roi6, enum, Out data type, S03SIM-EA-FSCN-01:ROI6:DataTypeOut +# % gui, FSCN1.rois.roi6, readback, Out data type, S03SIM-EA-FSCN-01:ROI6:DataTypeOut_RBV +# % gui, FSCN1.rois.roi6, demand, Attributes file, S03SIM-EA-FSCN-01:ROI6:NDAttributesFile +# Scaling +# % gui, FSCN1.rois.roi6, groupHeading, Scaling +# % gui, FSCN1.rois.roi6, enum, Enable Scaling, S03SIM-EA-FSCN-01:ROI6:EnableScale +# % gui, FSCN1.rois.roi6, readback, Enable Scaling, S03SIM-EA-FSCN-01:ROI6:EnableScale_RBV +# % gui, FSCN1.rois.roi6, demand, Scale Divisor, S03SIM-EA-FSCN-01:ROI6:Scale +# % gui, FSCN1.rois.roi6, readback, Scale Divisor, S03SIM-EA-FSCN-01:ROI6:Scale_RBV +# X region +# % gui, FSCN1.rois.roi6, groupHeading, X Region +# % gui, FSCN1.rois.roi6, enum, X, S03SIM-EA-FSCN-01:ROI6:EnableX +# % gui, FSCN1.rois.roi6, readback, X, S03SIM-EA-FSCN-01:ROI6:EnableX_RBV +# % gui, FSCN1.rois.roi6, enum, Autosize X, S03SIM-EA-FSCN-01:ROI6:AutoSizeX +# % gui, FSCN1.rois.roi6, readback, Autosize X, S03SIM-EA-FSCN-01:ROI6:AutoSizeX_RBV +# % gui, FSCN1.rois.roi6, readback, Input Size X, S03SIM-EA-FSCN-01:ROI6:MaxSizeX_RBV +# % gui, FSCN1.rois.roi6, demand, Binning X, S03SIM-EA-FSCN-01:ROI6:BinX +# % gui, FSCN1.rois.roi6, readback, Binning X, S03SIM-EA-FSCN-01:ROI6:BinX_RBV +# % gui, FSCN1.rois.roi6, demand, Start X, S03SIM-EA-FSCN-01:ROI6:MinX +# % gui, FSCN1.rois.roi6, readback, Start X, S03SIM-EA-FSCN-01:ROI6:MinX_RBV +# % gui, FSCN1.rois.roi6, demand, Size X, S03SIM-EA-FSCN-01:ROI6:SizeX +# % gui, FSCN1.rois.roi6, readback, Size X, S03SIM-EA-FSCN-01:ROI6:SizeX_RBV +# % gui, FSCN1.rois.roi6, enum, Reverse X, S03SIM-EA-FSCN-01:ROI6:ReverseX +# % gui, FSCN1.rois.roi6, readback, Reverse X, S03SIM-EA-FSCN-01:ROI6:ReverseX_RBV +# % gui, FSCN1.rois.roi6, readback, Bytes X, S03SIM-EA-FSCN-01:ROI6:ArraySizeX_RBV +# Y region +# % gui, FSCN1.rois.roi6, groupHeading, Y Region +# % gui, FSCN1.rois.roi6, enum, Y, S03SIM-EA-FSCN-01:ROI6:EnableY +# % gui, FSCN1.rois.roi6, readback, Y, S03SIM-EA-FSCN-01:ROI6:EnableY_RBV +# % gui, FSCN1.rois.roi6, enum, Autosize Y, S03SIM-EA-FSCN-01:ROI6:AutoSizeY +# % gui, FSCN1.rois.roi6, readback, Autosize Y, S03SIM-EA-FSCN-01:ROI6:AutoSizeY_RBV +# % gui, FSCN1.rois.roi6, readback, Input size Y, S03SIM-EA-FSCN-01:ROI6:MaxSizeY_RBV +# % gui, FSCN1.rois.roi6, demand, Binning Y, S03SIM-EA-FSCN-01:ROI6:BinY +# % gui, FSCN1.rois.roi6, readback, Binning Y, S03SIM-EA-FSCN-01:ROI6:BinY_RBV +# % gui, FSCN1.rois.roi6, demand, Start Y, S03SIM-EA-FSCN-01:ROI6:MinY +# % gui, FSCN1.rois.roi6, readback, Start Y, S03SIM-EA-FSCN-01:ROI6:MinY_RBV +# % gui, FSCN1.rois.roi6, demand, Size Y, S03SIM-EA-FSCN-01:ROI6:SizeY +# % gui, FSCN1.rois.roi6, readback, Size Y, S03SIM-EA-FSCN-01:ROI6:SizeY_RBV +# % gui, FSCN1.rois.roi6, enum, Reverse Y, S03SIM-EA-FSCN-01:ROI6:ReverseY +# % gui, FSCN1.rois.roi6, readback, Reverse Y, S03SIM-EA-FSCN-01:ROI6:ReverseY_RBV +# % gui, FSCN1.rois.roi6, readback, Bytes Y, S03SIM-EA-FSCN-01:ROI6:ArraySizeY_RBV +# Z region +# % gui, FSCN1.rois.roi6, groupHeading, Z Region +# % gui, FSCN1.rois.roi6, enum, Z, S03SIM-EA-FSCN-01:ROI6:EnableZ +# % gui, FSCN1.rois.roi6, readback, Z, S03SIM-EA-FSCN-01:ROI6:EnableZ_RBV +# % gui, FSCN1.rois.roi6, enum, Autosize Z, S03SIM-EA-FSCN-01:ROI6:AutoSizeZ +# % gui, FSCN1.rois.roi6, readback, Autosize Z, S03SIM-EA-FSCN-01:ROI6:AutoSizeZ_RBV +# % gui, FSCN1.rois.roi6, readback, Input size Z, S03SIM-EA-FSCN-01:ROI6:MaxSizeZ_RBV +# % gui, FSCN1.rois.roi6, demand, Binning Z, S03SIM-EA-FSCN-01:ROI6:BinZ +# % gui, FSCN1.rois.roi6, readback, Binning Z, S03SIM-EA-FSCN-01:ROI6:BinZ_RBV +# % gui, FSCN1.rois.roi6, demand, Start Z, S03SIM-EA-FSCN-01:ROI6:MinZ +# % gui, FSCN1.rois.roi6, readback, Start Z, S03SIM-EA-FSCN-01:ROI6:MinZ_RBV +# % gui, FSCN1.rois.roi6, demand, Size Z, S03SIM-EA-FSCN-01:ROI6:SizeZ +# % gui, FSCN1.rois.roi6, readback, Size Z, S03SIM-EA-FSCN-01:ROI6:SizeZ_RBV +# % gui, FSCN1.rois.roi6, enum, Reverse Z, S03SIM-EA-FSCN-01:ROI6:ReverseZ +# % gui, FSCN1.rois.roi6, readback, Reverse Z, S03SIM-EA-FSCN-01:ROI6:ReverseZ_RBV +# % gui, FSCN1.rois.roi6, readback, Bytes Z, S03SIM-EA-FSCN-01:ROI6:ArraySizeZ_RBV +# Memory +# % gui, FSCN1.rois.roi6, groupHeading, Memory +# % gui, FSCN1.rois.roi6, readback, Max memory, S03SIM-EA-FSCN-01:ROI6:PoolMaxMem +# % gui, FSCN1.rois.roi6, readback, Max buffers, S03SIM-EA-FSCN-01:ROI6:PoolMaxBuffers +# % gui, FSCN1.rois.roi6, readback, Used memory, S03SIM-EA-FSCN-01:ROI6:PoolUsedMem +# % gui, FSCN1.rois.roi6, readback, Allocated buffers, S03SIM-EA-FSCN-01:ROI6:PoolAllocBuffers +# % gui, FSCN1.rois.roi6, readback, Free buffers, S03SIM-EA-FSCN-01:ROI6:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI6:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI6:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI6:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI6:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI6:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI6:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI6:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI6:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ROI6:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI6:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI6:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI6:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:ROI6:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI6:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI6:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI6:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:ROI6:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:ROI6:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI6:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:ROI6:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:ROI6:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:ROI6:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:ROI6:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ROI6:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI6:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ROI6:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI6:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:ROI6:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI6:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:ROI6:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:ROI6:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI6:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:ROI6:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:ROI6:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI6:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI6:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:ROI6:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:ROI6:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:ROI6:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:ROI6:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI6:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:ROI6:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI6:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:ROI6:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI6:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ROI6:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:ROI6:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI6:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI6:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI6:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI6:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI6:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI6:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI6:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:ROI6:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI6:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI6:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:ROI6:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:ROI6:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:ROI6:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI6:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI6:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:ROI6:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI6:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ROI6:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI6:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:ROI6:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI6:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI6:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:ROI6:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI6:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:ROI6:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:ROI6:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI6:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:ROI6:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:ROI6:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI6:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:ROI6:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:ROI6:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:ROI6:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI6:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:ROI6:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI6:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI6:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI6:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI6:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ROI6:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:ROI6:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:ROI6:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI6:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI6:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:ROI6:AsynIO") +{ + field(PORT, "FSCN1.rois.roi6") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the label for the ROI # +################################################################### +record(stringout, "S03SIM-EA-FSCN-01:ROI6:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)NAME") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:ROI6:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)NAME") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the ROI definition # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-EA-FSCN-01:ROI6:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM0_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM0_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI6:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM1_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM1_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI6:BinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM2_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:BinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM2_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI6:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM0_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM0_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI6:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM1_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM1_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI6:MinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM2_MIN") + field(LOPR, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:MinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM2_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI6:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM0_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM0_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI6:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM1_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM1_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ROI6:SizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM2_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:SizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM2_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI6:AutoSizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM0_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI6:AutoSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM0_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI6:AutoSizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM1_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI6:AutoSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM1_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI6:AutoSizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM2_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI6:AutoSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM2_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM0_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM1_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:MaxSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM2_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI6:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM0_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI6:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM0_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI6:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM1_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI6:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM1_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI6:ReverseZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM2_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI6:ReverseZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM2_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI6:EnableX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM0_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI6:EnableX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM0_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI6:EnableY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM1_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI6:EnableY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM1_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:ROI6:EnableZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM2_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI6:EnableZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM2_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the scaling of the data. Useful when # +# binning or converting data types # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ROI6:EnableScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)ENABLE_SCALE") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI6:EnableScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)ENABLE_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ROI6:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)SCALE_VALUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ROI6:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)SCALE_VALUE") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ROI6:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ROI6:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-01:ROI6:MaxX") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:ROI6:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:ROI6:MaxX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:ROI6:MinX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:ROI6:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:ROI6:MaxY") +{ + field(INP, "S03SIM-EA-FSCN-01:ROI6:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:ROI6:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:ROI6:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:ROI6:MaxY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:ROI6:MinY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:ROI6:SizeY.HOPR NPP") +} + +################################################################### +# These records whether dimensions of 1 are collapsed (removed) # # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ROI6:CollapseDims") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.rois.roi6,0,1)COLLAPSE_DIMS") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ROI6:CollapseDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.rois.roi6,0,1)COLLAPSE_DIMS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +#=================================================================# +# Template file: NDROI.template +# Database for ND ROIs +# Mark Rivers +# April 22, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, FSCN2.roi, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-02,R=:ROI: + +# This associates a BOY screen with the template +# % gui, FSCN2.roi, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-02, R=:ROI:, DESC=Region of Interest +# % gui, FSCN2.roi, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:ROI:, DESC=Region of Interest +# % gui, FSCN2.roi, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-02, R=:ROI:, DESC=Region of Interest + +# % gui, FSCN2.roi, groupHeading, Info +# % gui, FSCN2.roi, readback, Port name, S03SIM-EA-FSCN-02:ROI:PortName_RBV +# % gui, FSCN2.roi, readback, Plugin type, S03SIM-EA-FSCN-02:ROI:PluginType_RBV +# Input +# % gui, FSCN2.roi, demandString, Input, S03SIM-EA-FSCN-02:ROI:NDArrayPort +# % gui, FSCN2.roi, readback, Input, S03SIM-EA-FSCN-02:ROI:NDArrayPort_RBV + +# % gui, FSCN2.roi, groupHeading, Callback +# % gui, FSCN2.roi, enum, Callbacks, S03SIM-EA-FSCN-02:ROI:EnableCallbacks +# % gui, FSCN2.roi, statusbits, Callbacks, S03SIM-EA-FSCN-02:ROI:EnableCallbacks_RBV +# % gui, FSCN2.roi, demand, Min Callback Time, S03SIM-EA-FSCN-02:ROI:MinCallbackTime +# % gui, FSCN2.roi, readback, Min Callback Time, S03SIM-EA-FSCN-02:ROI:MinCallbackTime_RBV +# % gui, FSCN2.roi, enum, Block Callbacks, S03SIM-EA-FSCN-02:ROI:BlockingCallbacks +# % gui, FSCN2.roi, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:ROI:BlockingCallbacks_RBV + +# % gui, FSCN2.roi, groupHeading, Counters +# % gui, FSCN2.roi, demand, Array Counter, S03SIM-EA-FSCN-02:ROI:ArrayCounter +# % gui, FSCN2.roi, readback, Array Counter, S03SIM-EA-FSCN-02:ROI:ArrayCounter_RBV +# % gui, FSCN2.roi, readback, Array Rate (fps), S03SIM-EA-FSCN-02:ROI:ArrayRate_RBV +# % gui, FSCN2.roi, readback, Queue Use, S03SIM-EA-FSCN-02:ROI:QueueUse +# % gui, FSCN2.roi, readback, Queue Size, S03SIM-EA-FSCN-02:ROI:QueueSize +# % gui, FSCN2.roi, demand, Dropped Arrays, S03SIM-EA-FSCN-02:ROI:DroppedArrays +# % gui, FSCN2.roi, readback, Dropped Arrays, S03SIM-EA-FSCN-02:ROI:DroppedArrays_RBV + +# % gui, FSCN2.roi, groupHeading, Array Settings +# % gui, FSCN2.roi, readback, Num Dimensions, S03SIM-EA-FSCN-02:ROI:NDimensions_RBV +# % gui, FSCN2.roi, readback, Dim 0 Size, S03SIM-EA-FSCN-02:ROI:ArraySize0_RBV +# % gui, FSCN2.roi, readback, Dim 1 Size, S03SIM-EA-FSCN-02:ROI:ArraySize1_RBV +# % gui, FSCN2.roi, readback, Dim 2 Size, S03SIM-EA-FSCN-02:ROI:ArraySize2_RBV +# % gui, FSCN2.roi, readback, Input Data Type, S03SIM-EA-FSCN-02:ROI:DataType_RBV +# % gui, FSCN2.roi, readback, Colour Mode, S03SIM-EA-FSCN-02:ROI:ColorMode_RBV +# % gui, FSCN2.roi, readback, Bayer Pattern, S03SIM-EA-FSCN-02:ROI:BayerPattern_RBV +# % gui, FSCN2.roi, readback, Unique id, S03SIM-EA-FSCN-02:ROI:UniqueId_RBV +# % gui, FSCN2.roi, readback, Timestamp, S03SIM-EA-FSCN-02:ROI:TimeStamp_RBV + +# Output +# % gui, FSCN2.roi, groupHeading, Output +# % gui, FSCN2.roi, demand, Name, S03SIM-EA-FSCN-02:ROI:Name +# % gui, FSCN2.roi, enum, Out data type, S03SIM-EA-FSCN-02:ROI:DataTypeOut +# % gui, FSCN2.roi, readback, Out data type, S03SIM-EA-FSCN-02:ROI:DataTypeOut_RBV +# % gui, FSCN2.roi, demand, Attributes file, S03SIM-EA-FSCN-02:ROI:NDAttributesFile +# Scaling +# % gui, FSCN2.roi, groupHeading, Scaling +# % gui, FSCN2.roi, enum, Enable Scaling, S03SIM-EA-FSCN-02:ROI:EnableScale +# % gui, FSCN2.roi, readback, Enable Scaling, S03SIM-EA-FSCN-02:ROI:EnableScale_RBV +# % gui, FSCN2.roi, demand, Scale Divisor, S03SIM-EA-FSCN-02:ROI:Scale +# % gui, FSCN2.roi, readback, Scale Divisor, S03SIM-EA-FSCN-02:ROI:Scale_RBV +# X region +# % gui, FSCN2.roi, groupHeading, X Region +# % gui, FSCN2.roi, enum, X, S03SIM-EA-FSCN-02:ROI:EnableX +# % gui, FSCN2.roi, readback, X, S03SIM-EA-FSCN-02:ROI:EnableX_RBV +# % gui, FSCN2.roi, enum, Autosize X, S03SIM-EA-FSCN-02:ROI:AutoSizeX +# % gui, FSCN2.roi, readback, Autosize X, S03SIM-EA-FSCN-02:ROI:AutoSizeX_RBV +# % gui, FSCN2.roi, readback, Input Size X, S03SIM-EA-FSCN-02:ROI:MaxSizeX_RBV +# % gui, FSCN2.roi, demand, Binning X, S03SIM-EA-FSCN-02:ROI:BinX +# % gui, FSCN2.roi, readback, Binning X, S03SIM-EA-FSCN-02:ROI:BinX_RBV +# % gui, FSCN2.roi, demand, Start X, S03SIM-EA-FSCN-02:ROI:MinX +# % gui, FSCN2.roi, readback, Start X, S03SIM-EA-FSCN-02:ROI:MinX_RBV +# % gui, FSCN2.roi, demand, Size X, S03SIM-EA-FSCN-02:ROI:SizeX +# % gui, FSCN2.roi, readback, Size X, S03SIM-EA-FSCN-02:ROI:SizeX_RBV +# % gui, FSCN2.roi, enum, Reverse X, S03SIM-EA-FSCN-02:ROI:ReverseX +# % gui, FSCN2.roi, readback, Reverse X, S03SIM-EA-FSCN-02:ROI:ReverseX_RBV +# % gui, FSCN2.roi, readback, Bytes X, S03SIM-EA-FSCN-02:ROI:ArraySizeX_RBV +# Y region +# % gui, FSCN2.roi, groupHeading, Y Region +# % gui, FSCN2.roi, enum, Y, S03SIM-EA-FSCN-02:ROI:EnableY +# % gui, FSCN2.roi, readback, Y, S03SIM-EA-FSCN-02:ROI:EnableY_RBV +# % gui, FSCN2.roi, enum, Autosize Y, S03SIM-EA-FSCN-02:ROI:AutoSizeY +# % gui, FSCN2.roi, readback, Autosize Y, S03SIM-EA-FSCN-02:ROI:AutoSizeY_RBV +# % gui, FSCN2.roi, readback, Input size Y, S03SIM-EA-FSCN-02:ROI:MaxSizeY_RBV +# % gui, FSCN2.roi, demand, Binning Y, S03SIM-EA-FSCN-02:ROI:BinY +# % gui, FSCN2.roi, readback, Binning Y, S03SIM-EA-FSCN-02:ROI:BinY_RBV +# % gui, FSCN2.roi, demand, Start Y, S03SIM-EA-FSCN-02:ROI:MinY +# % gui, FSCN2.roi, readback, Start Y, S03SIM-EA-FSCN-02:ROI:MinY_RBV +# % gui, FSCN2.roi, demand, Size Y, S03SIM-EA-FSCN-02:ROI:SizeY +# % gui, FSCN2.roi, readback, Size Y, S03SIM-EA-FSCN-02:ROI:SizeY_RBV +# % gui, FSCN2.roi, enum, Reverse Y, S03SIM-EA-FSCN-02:ROI:ReverseY +# % gui, FSCN2.roi, readback, Reverse Y, S03SIM-EA-FSCN-02:ROI:ReverseY_RBV +# % gui, FSCN2.roi, readback, Bytes Y, S03SIM-EA-FSCN-02:ROI:ArraySizeY_RBV +# Z region +# % gui, FSCN2.roi, groupHeading, Z Region +# % gui, FSCN2.roi, enum, Z, S03SIM-EA-FSCN-02:ROI:EnableZ +# % gui, FSCN2.roi, readback, Z, S03SIM-EA-FSCN-02:ROI:EnableZ_RBV +# % gui, FSCN2.roi, enum, Autosize Z, S03SIM-EA-FSCN-02:ROI:AutoSizeZ +# % gui, FSCN2.roi, readback, Autosize Z, S03SIM-EA-FSCN-02:ROI:AutoSizeZ_RBV +# % gui, FSCN2.roi, readback, Input size Z, S03SIM-EA-FSCN-02:ROI:MaxSizeZ_RBV +# % gui, FSCN2.roi, demand, Binning Z, S03SIM-EA-FSCN-02:ROI:BinZ +# % gui, FSCN2.roi, readback, Binning Z, S03SIM-EA-FSCN-02:ROI:BinZ_RBV +# % gui, FSCN2.roi, demand, Start Z, S03SIM-EA-FSCN-02:ROI:MinZ +# % gui, FSCN2.roi, readback, Start Z, S03SIM-EA-FSCN-02:ROI:MinZ_RBV +# % gui, FSCN2.roi, demand, Size Z, S03SIM-EA-FSCN-02:ROI:SizeZ +# % gui, FSCN2.roi, readback, Size Z, S03SIM-EA-FSCN-02:ROI:SizeZ_RBV +# % gui, FSCN2.roi, enum, Reverse Z, S03SIM-EA-FSCN-02:ROI:ReverseZ +# % gui, FSCN2.roi, readback, Reverse Z, S03SIM-EA-FSCN-02:ROI:ReverseZ_RBV +# % gui, FSCN2.roi, readback, Bytes Z, S03SIM-EA-FSCN-02:ROI:ArraySizeZ_RBV +# Memory +# % gui, FSCN2.roi, groupHeading, Memory +# % gui, FSCN2.roi, readback, Max memory, S03SIM-EA-FSCN-02:ROI:PoolMaxMem +# % gui, FSCN2.roi, readback, Max buffers, S03SIM-EA-FSCN-02:ROI:PoolMaxBuffers +# % gui, FSCN2.roi, readback, Used memory, S03SIM-EA-FSCN-02:ROI:PoolUsedMem +# % gui, FSCN2.roi, readback, Allocated buffers, S03SIM-EA-FSCN-02:ROI:PoolAllocBuffers +# % gui, FSCN2.roi, readback, Free buffers, S03SIM-EA-FSCN-02:ROI:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.roi,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.roi,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.roi,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.roi,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.roi,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.roi,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.roi,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.roi,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ROI:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:ROI:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:ROI:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:ROI:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:ROI:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:ROI:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:ROI:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:ROI:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.roi,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ROI:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ROI:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:ROI:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.roi,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:ROI:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:ROI:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:ROI:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:ROI:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:ROI:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.roi,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:ROI:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.roi,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:ROI:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:ROI:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.roi,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.roi,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:ROI:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:ROI:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.roi,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:ROI:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.roi,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.roi,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.roi,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.roi,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:ROI:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:ROI:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:ROI:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.roi,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.roi,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:ROI:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.roi,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:ROI:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:ROI:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:ROI:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:ROI:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:ROI:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:ROI:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:ROI:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:ROI:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:ROI:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:ROI:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.roi,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.roi,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:ROI:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:ROI:AsynIO") +{ + field(PORT, "FSCN2.roi") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the label for the ROI # +################################################################### +record(stringout, "S03SIM-EA-FSCN-02:ROI:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.roi,0,1)NAME") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.roi,0,1)NAME") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the ROI definition # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-EA-FSCN-02:ROI:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DIM0_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DIM0_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DIM1_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DIM1_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI:BinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DIM2_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:BinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DIM2_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DIM0_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DIM0_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DIM1_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DIM1_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI:MinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DIM2_MIN") + field(LOPR, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:MinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DIM2_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DIM0_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DIM0_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DIM1_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DIM1_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI:SizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DIM2_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:SizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DIM2_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI:AutoSizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DIM0_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI:AutoSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DIM0_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI:AutoSizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DIM1_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI:AutoSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DIM1_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI:AutoSizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DIM2_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI:AutoSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DIM2_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DIM0_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DIM1_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:MaxSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DIM2_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DIM0_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DIM0_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DIM1_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DIM1_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI:ReverseZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DIM2_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI:ReverseZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DIM2_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI:EnableX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DIM0_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI:EnableX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DIM0_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI:EnableY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DIM1_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI:EnableY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DIM1_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI:EnableZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)DIM2_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI:EnableZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)DIM2_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the scaling of the data. Useful when # +# binning or converting data types # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ROI:EnableScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)ENABLE_SCALE") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI:EnableScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)ENABLE_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.roi,0,1)SCALE_VALUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.roi,0,1)SCALE_VALUE") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ROI:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-02:ROI:MaxX") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:ROI:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:ROI:MaxX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:ROI:MinX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:ROI:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI:MaxY") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:ROI:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:ROI:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:ROI:MaxY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:ROI:MinY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:ROI:SizeY.HOPR NPP") +} + +################################################################### +# These records whether dimensions of 1 are collapsed (removed) # # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ROI:CollapseDims") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.roi,0,1)COLLAPSE_DIMS") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI:CollapseDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.roi,0,1)COLLAPSE_DIMS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +#=================================================================# +# Template file: NDROI.template +# Database for ND ROIs +# Mark Rivers +# April 22, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, FSCN2.rois.roi1, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-02,R=:ROI1: + +# This associates a BOY screen with the template +# % gui, FSCN2.rois.roi1, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-02, R=:ROI1:, DESC=Region of Interest +# % gui, FSCN2.rois.roi1, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:ROI1:, DESC=Region of Interest +# % gui, FSCN2.rois.roi1, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-02, R=:ROI1:, DESC=Region of Interest + +# % gui, FSCN2.rois.roi1, groupHeading, Info +# % gui, FSCN2.rois.roi1, readback, Port name, S03SIM-EA-FSCN-02:ROI1:PortName_RBV +# % gui, FSCN2.rois.roi1, readback, Plugin type, S03SIM-EA-FSCN-02:ROI1:PluginType_RBV +# Input +# % gui, FSCN2.rois.roi1, demandString, Input, S03SIM-EA-FSCN-02:ROI1:NDArrayPort +# % gui, FSCN2.rois.roi1, readback, Input, S03SIM-EA-FSCN-02:ROI1:NDArrayPort_RBV + +# % gui, FSCN2.rois.roi1, groupHeading, Callback +# % gui, FSCN2.rois.roi1, enum, Callbacks, S03SIM-EA-FSCN-02:ROI1:EnableCallbacks +# % gui, FSCN2.rois.roi1, statusbits, Callbacks, S03SIM-EA-FSCN-02:ROI1:EnableCallbacks_RBV +# % gui, FSCN2.rois.roi1, demand, Min Callback Time, S03SIM-EA-FSCN-02:ROI1:MinCallbackTime +# % gui, FSCN2.rois.roi1, readback, Min Callback Time, S03SIM-EA-FSCN-02:ROI1:MinCallbackTime_RBV +# % gui, FSCN2.rois.roi1, enum, Block Callbacks, S03SIM-EA-FSCN-02:ROI1:BlockingCallbacks +# % gui, FSCN2.rois.roi1, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:ROI1:BlockingCallbacks_RBV + +# % gui, FSCN2.rois.roi1, groupHeading, Counters +# % gui, FSCN2.rois.roi1, demand, Array Counter, S03SIM-EA-FSCN-02:ROI1:ArrayCounter +# % gui, FSCN2.rois.roi1, readback, Array Counter, S03SIM-EA-FSCN-02:ROI1:ArrayCounter_RBV +# % gui, FSCN2.rois.roi1, readback, Array Rate (fps), S03SIM-EA-FSCN-02:ROI1:ArrayRate_RBV +# % gui, FSCN2.rois.roi1, readback, Queue Use, S03SIM-EA-FSCN-02:ROI1:QueueUse +# % gui, FSCN2.rois.roi1, readback, Queue Size, S03SIM-EA-FSCN-02:ROI1:QueueSize +# % gui, FSCN2.rois.roi1, demand, Dropped Arrays, S03SIM-EA-FSCN-02:ROI1:DroppedArrays +# % gui, FSCN2.rois.roi1, readback, Dropped Arrays, S03SIM-EA-FSCN-02:ROI1:DroppedArrays_RBV + +# % gui, FSCN2.rois.roi1, groupHeading, Array Settings +# % gui, FSCN2.rois.roi1, readback, Num Dimensions, S03SIM-EA-FSCN-02:ROI1:NDimensions_RBV +# % gui, FSCN2.rois.roi1, readback, Dim 0 Size, S03SIM-EA-FSCN-02:ROI1:ArraySize0_RBV +# % gui, FSCN2.rois.roi1, readback, Dim 1 Size, S03SIM-EA-FSCN-02:ROI1:ArraySize1_RBV +# % gui, FSCN2.rois.roi1, readback, Dim 2 Size, S03SIM-EA-FSCN-02:ROI1:ArraySize2_RBV +# % gui, FSCN2.rois.roi1, readback, Input Data Type, S03SIM-EA-FSCN-02:ROI1:DataType_RBV +# % gui, FSCN2.rois.roi1, readback, Colour Mode, S03SIM-EA-FSCN-02:ROI1:ColorMode_RBV +# % gui, FSCN2.rois.roi1, readback, Bayer Pattern, S03SIM-EA-FSCN-02:ROI1:BayerPattern_RBV +# % gui, FSCN2.rois.roi1, readback, Unique id, S03SIM-EA-FSCN-02:ROI1:UniqueId_RBV +# % gui, FSCN2.rois.roi1, readback, Timestamp, S03SIM-EA-FSCN-02:ROI1:TimeStamp_RBV + +# Output +# % gui, FSCN2.rois.roi1, groupHeading, Output +# % gui, FSCN2.rois.roi1, demand, Name, S03SIM-EA-FSCN-02:ROI1:Name +# % gui, FSCN2.rois.roi1, enum, Out data type, S03SIM-EA-FSCN-02:ROI1:DataTypeOut +# % gui, FSCN2.rois.roi1, readback, Out data type, S03SIM-EA-FSCN-02:ROI1:DataTypeOut_RBV +# % gui, FSCN2.rois.roi1, demand, Attributes file, S03SIM-EA-FSCN-02:ROI1:NDAttributesFile +# Scaling +# % gui, FSCN2.rois.roi1, groupHeading, Scaling +# % gui, FSCN2.rois.roi1, enum, Enable Scaling, S03SIM-EA-FSCN-02:ROI1:EnableScale +# % gui, FSCN2.rois.roi1, readback, Enable Scaling, S03SIM-EA-FSCN-02:ROI1:EnableScale_RBV +# % gui, FSCN2.rois.roi1, demand, Scale Divisor, S03SIM-EA-FSCN-02:ROI1:Scale +# % gui, FSCN2.rois.roi1, readback, Scale Divisor, S03SIM-EA-FSCN-02:ROI1:Scale_RBV +# X region +# % gui, FSCN2.rois.roi1, groupHeading, X Region +# % gui, FSCN2.rois.roi1, enum, X, S03SIM-EA-FSCN-02:ROI1:EnableX +# % gui, FSCN2.rois.roi1, readback, X, S03SIM-EA-FSCN-02:ROI1:EnableX_RBV +# % gui, FSCN2.rois.roi1, enum, Autosize X, S03SIM-EA-FSCN-02:ROI1:AutoSizeX +# % gui, FSCN2.rois.roi1, readback, Autosize X, S03SIM-EA-FSCN-02:ROI1:AutoSizeX_RBV +# % gui, FSCN2.rois.roi1, readback, Input Size X, S03SIM-EA-FSCN-02:ROI1:MaxSizeX_RBV +# % gui, FSCN2.rois.roi1, demand, Binning X, S03SIM-EA-FSCN-02:ROI1:BinX +# % gui, FSCN2.rois.roi1, readback, Binning X, S03SIM-EA-FSCN-02:ROI1:BinX_RBV +# % gui, FSCN2.rois.roi1, demand, Start X, S03SIM-EA-FSCN-02:ROI1:MinX +# % gui, FSCN2.rois.roi1, readback, Start X, S03SIM-EA-FSCN-02:ROI1:MinX_RBV +# % gui, FSCN2.rois.roi1, demand, Size X, S03SIM-EA-FSCN-02:ROI1:SizeX +# % gui, FSCN2.rois.roi1, readback, Size X, S03SIM-EA-FSCN-02:ROI1:SizeX_RBV +# % gui, FSCN2.rois.roi1, enum, Reverse X, S03SIM-EA-FSCN-02:ROI1:ReverseX +# % gui, FSCN2.rois.roi1, readback, Reverse X, S03SIM-EA-FSCN-02:ROI1:ReverseX_RBV +# % gui, FSCN2.rois.roi1, readback, Bytes X, S03SIM-EA-FSCN-02:ROI1:ArraySizeX_RBV +# Y region +# % gui, FSCN2.rois.roi1, groupHeading, Y Region +# % gui, FSCN2.rois.roi1, enum, Y, S03SIM-EA-FSCN-02:ROI1:EnableY +# % gui, FSCN2.rois.roi1, readback, Y, S03SIM-EA-FSCN-02:ROI1:EnableY_RBV +# % gui, FSCN2.rois.roi1, enum, Autosize Y, S03SIM-EA-FSCN-02:ROI1:AutoSizeY +# % gui, FSCN2.rois.roi1, readback, Autosize Y, S03SIM-EA-FSCN-02:ROI1:AutoSizeY_RBV +# % gui, FSCN2.rois.roi1, readback, Input size Y, S03SIM-EA-FSCN-02:ROI1:MaxSizeY_RBV +# % gui, FSCN2.rois.roi1, demand, Binning Y, S03SIM-EA-FSCN-02:ROI1:BinY +# % gui, FSCN2.rois.roi1, readback, Binning Y, S03SIM-EA-FSCN-02:ROI1:BinY_RBV +# % gui, FSCN2.rois.roi1, demand, Start Y, S03SIM-EA-FSCN-02:ROI1:MinY +# % gui, FSCN2.rois.roi1, readback, Start Y, S03SIM-EA-FSCN-02:ROI1:MinY_RBV +# % gui, FSCN2.rois.roi1, demand, Size Y, S03SIM-EA-FSCN-02:ROI1:SizeY +# % gui, FSCN2.rois.roi1, readback, Size Y, S03SIM-EA-FSCN-02:ROI1:SizeY_RBV +# % gui, FSCN2.rois.roi1, enum, Reverse Y, S03SIM-EA-FSCN-02:ROI1:ReverseY +# % gui, FSCN2.rois.roi1, readback, Reverse Y, S03SIM-EA-FSCN-02:ROI1:ReverseY_RBV +# % gui, FSCN2.rois.roi1, readback, Bytes Y, S03SIM-EA-FSCN-02:ROI1:ArraySizeY_RBV +# Z region +# % gui, FSCN2.rois.roi1, groupHeading, Z Region +# % gui, FSCN2.rois.roi1, enum, Z, S03SIM-EA-FSCN-02:ROI1:EnableZ +# % gui, FSCN2.rois.roi1, readback, Z, S03SIM-EA-FSCN-02:ROI1:EnableZ_RBV +# % gui, FSCN2.rois.roi1, enum, Autosize Z, S03SIM-EA-FSCN-02:ROI1:AutoSizeZ +# % gui, FSCN2.rois.roi1, readback, Autosize Z, S03SIM-EA-FSCN-02:ROI1:AutoSizeZ_RBV +# % gui, FSCN2.rois.roi1, readback, Input size Z, S03SIM-EA-FSCN-02:ROI1:MaxSizeZ_RBV +# % gui, FSCN2.rois.roi1, demand, Binning Z, S03SIM-EA-FSCN-02:ROI1:BinZ +# % gui, FSCN2.rois.roi1, readback, Binning Z, S03SIM-EA-FSCN-02:ROI1:BinZ_RBV +# % gui, FSCN2.rois.roi1, demand, Start Z, S03SIM-EA-FSCN-02:ROI1:MinZ +# % gui, FSCN2.rois.roi1, readback, Start Z, S03SIM-EA-FSCN-02:ROI1:MinZ_RBV +# % gui, FSCN2.rois.roi1, demand, Size Z, S03SIM-EA-FSCN-02:ROI1:SizeZ +# % gui, FSCN2.rois.roi1, readback, Size Z, S03SIM-EA-FSCN-02:ROI1:SizeZ_RBV +# % gui, FSCN2.rois.roi1, enum, Reverse Z, S03SIM-EA-FSCN-02:ROI1:ReverseZ +# % gui, FSCN2.rois.roi1, readback, Reverse Z, S03SIM-EA-FSCN-02:ROI1:ReverseZ_RBV +# % gui, FSCN2.rois.roi1, readback, Bytes Z, S03SIM-EA-FSCN-02:ROI1:ArraySizeZ_RBV +# Memory +# % gui, FSCN2.rois.roi1, groupHeading, Memory +# % gui, FSCN2.rois.roi1, readback, Max memory, S03SIM-EA-FSCN-02:ROI1:PoolMaxMem +# % gui, FSCN2.rois.roi1, readback, Max buffers, S03SIM-EA-FSCN-02:ROI1:PoolMaxBuffers +# % gui, FSCN2.rois.roi1, readback, Used memory, S03SIM-EA-FSCN-02:ROI1:PoolUsedMem +# % gui, FSCN2.rois.roi1, readback, Allocated buffers, S03SIM-EA-FSCN-02:ROI1:PoolAllocBuffers +# % gui, FSCN2.rois.roi1, readback, Free buffers, S03SIM-EA-FSCN-02:ROI1:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI1:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI1:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI1:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI1:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI1:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI1:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI1:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI1:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ROI1:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI1:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI1:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI1:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:ROI1:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI1:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI1:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI1:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:ROI1:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:ROI1:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI1:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:ROI1:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:ROI1:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:ROI1:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:ROI1:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ROI1:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI1:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ROI1:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI1:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:ROI1:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI1:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:ROI1:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:ROI1:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI1:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:ROI1:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:ROI1:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI1:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI1:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:ROI1:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:ROI1:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:ROI1:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:ROI1:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI1:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:ROI1:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI1:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:ROI1:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI1:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI1:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:ROI1:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI1:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI1:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI1:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI1:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI1:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI1:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI1:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:ROI1:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI1:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI1:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:ROI1:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:ROI1:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI1:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI1:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI1:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:ROI1:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI1:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI1:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI1:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:ROI1:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI1:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI1:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:ROI1:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI1:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:ROI1:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:ROI1:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI1:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:ROI1:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:ROI1:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI1:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:ROI1:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:ROI1:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:ROI1:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI1:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:ROI1:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI1:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI1:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI1:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI1:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI1:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:ROI1:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI1:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI1:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI1:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:ROI1:AsynIO") +{ + field(PORT, "FSCN2.rois.roi1") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the label for the ROI # +################################################################### +record(stringout, "S03SIM-EA-FSCN-02:ROI1:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)NAME") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI1:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)NAME") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the ROI definition # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-EA-FSCN-02:ROI1:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM0_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM0_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI1:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM1_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM1_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI1:BinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM2_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:BinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM2_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI1:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM0_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM0_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI1:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM1_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM1_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI1:MinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM2_MIN") + field(LOPR, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:MinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM2_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI1:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM0_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM0_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI1:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM1_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM1_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI1:SizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM2_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:SizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM2_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI1:AutoSizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM0_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI1:AutoSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM0_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI1:AutoSizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM1_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI1:AutoSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM1_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI1:AutoSizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM2_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI1:AutoSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM2_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM0_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM1_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:MaxSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM2_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI1:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM0_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI1:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM0_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI1:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM1_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI1:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM1_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI1:ReverseZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM2_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI1:ReverseZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM2_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI1:EnableX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM0_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI1:EnableX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM0_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI1:EnableY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM1_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI1:EnableY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM1_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI1:EnableZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM2_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI1:EnableZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM2_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the scaling of the data. Useful when # +# binning or converting data types # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ROI1:EnableScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)ENABLE_SCALE") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI1:EnableScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)ENABLE_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI1:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)SCALE_VALUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI1:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)SCALE_VALUE") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ROI1:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI1:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-02:ROI1:MaxX") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:ROI1:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:ROI1:MaxX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:ROI1:MinX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:ROI1:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI1:MaxY") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI1:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:ROI1:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:ROI1:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:ROI1:MaxY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:ROI1:MinY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:ROI1:SizeY.HOPR NPP") +} + +################################################################### +# These records whether dimensions of 1 are collapsed (removed) # # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ROI1:CollapseDims") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi1,0,1)COLLAPSE_DIMS") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI1:CollapseDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi1,0,1)COLLAPSE_DIMS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +#=================================================================# +# Template file: NDROI.template +# Database for ND ROIs +# Mark Rivers +# April 22, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, FSCN2.rois.roi2, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-02,R=:ROI2: + +# This associates a BOY screen with the template +# % gui, FSCN2.rois.roi2, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-02, R=:ROI2:, DESC=Region of Interest +# % gui, FSCN2.rois.roi2, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:ROI2:, DESC=Region of Interest +# % gui, FSCN2.rois.roi2, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-02, R=:ROI2:, DESC=Region of Interest + +# % gui, FSCN2.rois.roi2, groupHeading, Info +# % gui, FSCN2.rois.roi2, readback, Port name, S03SIM-EA-FSCN-02:ROI2:PortName_RBV +# % gui, FSCN2.rois.roi2, readback, Plugin type, S03SIM-EA-FSCN-02:ROI2:PluginType_RBV +# Input +# % gui, FSCN2.rois.roi2, demandString, Input, S03SIM-EA-FSCN-02:ROI2:NDArrayPort +# % gui, FSCN2.rois.roi2, readback, Input, S03SIM-EA-FSCN-02:ROI2:NDArrayPort_RBV + +# % gui, FSCN2.rois.roi2, groupHeading, Callback +# % gui, FSCN2.rois.roi2, enum, Callbacks, S03SIM-EA-FSCN-02:ROI2:EnableCallbacks +# % gui, FSCN2.rois.roi2, statusbits, Callbacks, S03SIM-EA-FSCN-02:ROI2:EnableCallbacks_RBV +# % gui, FSCN2.rois.roi2, demand, Min Callback Time, S03SIM-EA-FSCN-02:ROI2:MinCallbackTime +# % gui, FSCN2.rois.roi2, readback, Min Callback Time, S03SIM-EA-FSCN-02:ROI2:MinCallbackTime_RBV +# % gui, FSCN2.rois.roi2, enum, Block Callbacks, S03SIM-EA-FSCN-02:ROI2:BlockingCallbacks +# % gui, FSCN2.rois.roi2, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:ROI2:BlockingCallbacks_RBV + +# % gui, FSCN2.rois.roi2, groupHeading, Counters +# % gui, FSCN2.rois.roi2, demand, Array Counter, S03SIM-EA-FSCN-02:ROI2:ArrayCounter +# % gui, FSCN2.rois.roi2, readback, Array Counter, S03SIM-EA-FSCN-02:ROI2:ArrayCounter_RBV +# % gui, FSCN2.rois.roi2, readback, Array Rate (fps), S03SIM-EA-FSCN-02:ROI2:ArrayRate_RBV +# % gui, FSCN2.rois.roi2, readback, Queue Use, S03SIM-EA-FSCN-02:ROI2:QueueUse +# % gui, FSCN2.rois.roi2, readback, Queue Size, S03SIM-EA-FSCN-02:ROI2:QueueSize +# % gui, FSCN2.rois.roi2, demand, Dropped Arrays, S03SIM-EA-FSCN-02:ROI2:DroppedArrays +# % gui, FSCN2.rois.roi2, readback, Dropped Arrays, S03SIM-EA-FSCN-02:ROI2:DroppedArrays_RBV + +# % gui, FSCN2.rois.roi2, groupHeading, Array Settings +# % gui, FSCN2.rois.roi2, readback, Num Dimensions, S03SIM-EA-FSCN-02:ROI2:NDimensions_RBV +# % gui, FSCN2.rois.roi2, readback, Dim 0 Size, S03SIM-EA-FSCN-02:ROI2:ArraySize0_RBV +# % gui, FSCN2.rois.roi2, readback, Dim 1 Size, S03SIM-EA-FSCN-02:ROI2:ArraySize1_RBV +# % gui, FSCN2.rois.roi2, readback, Dim 2 Size, S03SIM-EA-FSCN-02:ROI2:ArraySize2_RBV +# % gui, FSCN2.rois.roi2, readback, Input Data Type, S03SIM-EA-FSCN-02:ROI2:DataType_RBV +# % gui, FSCN2.rois.roi2, readback, Colour Mode, S03SIM-EA-FSCN-02:ROI2:ColorMode_RBV +# % gui, FSCN2.rois.roi2, readback, Bayer Pattern, S03SIM-EA-FSCN-02:ROI2:BayerPattern_RBV +# % gui, FSCN2.rois.roi2, readback, Unique id, S03SIM-EA-FSCN-02:ROI2:UniqueId_RBV +# % gui, FSCN2.rois.roi2, readback, Timestamp, S03SIM-EA-FSCN-02:ROI2:TimeStamp_RBV + +# Output +# % gui, FSCN2.rois.roi2, groupHeading, Output +# % gui, FSCN2.rois.roi2, demand, Name, S03SIM-EA-FSCN-02:ROI2:Name +# % gui, FSCN2.rois.roi2, enum, Out data type, S03SIM-EA-FSCN-02:ROI2:DataTypeOut +# % gui, FSCN2.rois.roi2, readback, Out data type, S03SIM-EA-FSCN-02:ROI2:DataTypeOut_RBV +# % gui, FSCN2.rois.roi2, demand, Attributes file, S03SIM-EA-FSCN-02:ROI2:NDAttributesFile +# Scaling +# % gui, FSCN2.rois.roi2, groupHeading, Scaling +# % gui, FSCN2.rois.roi2, enum, Enable Scaling, S03SIM-EA-FSCN-02:ROI2:EnableScale +# % gui, FSCN2.rois.roi2, readback, Enable Scaling, S03SIM-EA-FSCN-02:ROI2:EnableScale_RBV +# % gui, FSCN2.rois.roi2, demand, Scale Divisor, S03SIM-EA-FSCN-02:ROI2:Scale +# % gui, FSCN2.rois.roi2, readback, Scale Divisor, S03SIM-EA-FSCN-02:ROI2:Scale_RBV +# X region +# % gui, FSCN2.rois.roi2, groupHeading, X Region +# % gui, FSCN2.rois.roi2, enum, X, S03SIM-EA-FSCN-02:ROI2:EnableX +# % gui, FSCN2.rois.roi2, readback, X, S03SIM-EA-FSCN-02:ROI2:EnableX_RBV +# % gui, FSCN2.rois.roi2, enum, Autosize X, S03SIM-EA-FSCN-02:ROI2:AutoSizeX +# % gui, FSCN2.rois.roi2, readback, Autosize X, S03SIM-EA-FSCN-02:ROI2:AutoSizeX_RBV +# % gui, FSCN2.rois.roi2, readback, Input Size X, S03SIM-EA-FSCN-02:ROI2:MaxSizeX_RBV +# % gui, FSCN2.rois.roi2, demand, Binning X, S03SIM-EA-FSCN-02:ROI2:BinX +# % gui, FSCN2.rois.roi2, readback, Binning X, S03SIM-EA-FSCN-02:ROI2:BinX_RBV +# % gui, FSCN2.rois.roi2, demand, Start X, S03SIM-EA-FSCN-02:ROI2:MinX +# % gui, FSCN2.rois.roi2, readback, Start X, S03SIM-EA-FSCN-02:ROI2:MinX_RBV +# % gui, FSCN2.rois.roi2, demand, Size X, S03SIM-EA-FSCN-02:ROI2:SizeX +# % gui, FSCN2.rois.roi2, readback, Size X, S03SIM-EA-FSCN-02:ROI2:SizeX_RBV +# % gui, FSCN2.rois.roi2, enum, Reverse X, S03SIM-EA-FSCN-02:ROI2:ReverseX +# % gui, FSCN2.rois.roi2, readback, Reverse X, S03SIM-EA-FSCN-02:ROI2:ReverseX_RBV +# % gui, FSCN2.rois.roi2, readback, Bytes X, S03SIM-EA-FSCN-02:ROI2:ArraySizeX_RBV +# Y region +# % gui, FSCN2.rois.roi2, groupHeading, Y Region +# % gui, FSCN2.rois.roi2, enum, Y, S03SIM-EA-FSCN-02:ROI2:EnableY +# % gui, FSCN2.rois.roi2, readback, Y, S03SIM-EA-FSCN-02:ROI2:EnableY_RBV +# % gui, FSCN2.rois.roi2, enum, Autosize Y, S03SIM-EA-FSCN-02:ROI2:AutoSizeY +# % gui, FSCN2.rois.roi2, readback, Autosize Y, S03SIM-EA-FSCN-02:ROI2:AutoSizeY_RBV +# % gui, FSCN2.rois.roi2, readback, Input size Y, S03SIM-EA-FSCN-02:ROI2:MaxSizeY_RBV +# % gui, FSCN2.rois.roi2, demand, Binning Y, S03SIM-EA-FSCN-02:ROI2:BinY +# % gui, FSCN2.rois.roi2, readback, Binning Y, S03SIM-EA-FSCN-02:ROI2:BinY_RBV +# % gui, FSCN2.rois.roi2, demand, Start Y, S03SIM-EA-FSCN-02:ROI2:MinY +# % gui, FSCN2.rois.roi2, readback, Start Y, S03SIM-EA-FSCN-02:ROI2:MinY_RBV +# % gui, FSCN2.rois.roi2, demand, Size Y, S03SIM-EA-FSCN-02:ROI2:SizeY +# % gui, FSCN2.rois.roi2, readback, Size Y, S03SIM-EA-FSCN-02:ROI2:SizeY_RBV +# % gui, FSCN2.rois.roi2, enum, Reverse Y, S03SIM-EA-FSCN-02:ROI2:ReverseY +# % gui, FSCN2.rois.roi2, readback, Reverse Y, S03SIM-EA-FSCN-02:ROI2:ReverseY_RBV +# % gui, FSCN2.rois.roi2, readback, Bytes Y, S03SIM-EA-FSCN-02:ROI2:ArraySizeY_RBV +# Z region +# % gui, FSCN2.rois.roi2, groupHeading, Z Region +# % gui, FSCN2.rois.roi2, enum, Z, S03SIM-EA-FSCN-02:ROI2:EnableZ +# % gui, FSCN2.rois.roi2, readback, Z, S03SIM-EA-FSCN-02:ROI2:EnableZ_RBV +# % gui, FSCN2.rois.roi2, enum, Autosize Z, S03SIM-EA-FSCN-02:ROI2:AutoSizeZ +# % gui, FSCN2.rois.roi2, readback, Autosize Z, S03SIM-EA-FSCN-02:ROI2:AutoSizeZ_RBV +# % gui, FSCN2.rois.roi2, readback, Input size Z, S03SIM-EA-FSCN-02:ROI2:MaxSizeZ_RBV +# % gui, FSCN2.rois.roi2, demand, Binning Z, S03SIM-EA-FSCN-02:ROI2:BinZ +# % gui, FSCN2.rois.roi2, readback, Binning Z, S03SIM-EA-FSCN-02:ROI2:BinZ_RBV +# % gui, FSCN2.rois.roi2, demand, Start Z, S03SIM-EA-FSCN-02:ROI2:MinZ +# % gui, FSCN2.rois.roi2, readback, Start Z, S03SIM-EA-FSCN-02:ROI2:MinZ_RBV +# % gui, FSCN2.rois.roi2, demand, Size Z, S03SIM-EA-FSCN-02:ROI2:SizeZ +# % gui, FSCN2.rois.roi2, readback, Size Z, S03SIM-EA-FSCN-02:ROI2:SizeZ_RBV +# % gui, FSCN2.rois.roi2, enum, Reverse Z, S03SIM-EA-FSCN-02:ROI2:ReverseZ +# % gui, FSCN2.rois.roi2, readback, Reverse Z, S03SIM-EA-FSCN-02:ROI2:ReverseZ_RBV +# % gui, FSCN2.rois.roi2, readback, Bytes Z, S03SIM-EA-FSCN-02:ROI2:ArraySizeZ_RBV +# Memory +# % gui, FSCN2.rois.roi2, groupHeading, Memory +# % gui, FSCN2.rois.roi2, readback, Max memory, S03SIM-EA-FSCN-02:ROI2:PoolMaxMem +# % gui, FSCN2.rois.roi2, readback, Max buffers, S03SIM-EA-FSCN-02:ROI2:PoolMaxBuffers +# % gui, FSCN2.rois.roi2, readback, Used memory, S03SIM-EA-FSCN-02:ROI2:PoolUsedMem +# % gui, FSCN2.rois.roi2, readback, Allocated buffers, S03SIM-EA-FSCN-02:ROI2:PoolAllocBuffers +# % gui, FSCN2.rois.roi2, readback, Free buffers, S03SIM-EA-FSCN-02:ROI2:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI2:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI2:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI2:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI2:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI2:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI2:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI2:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI2:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ROI2:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI2:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI2:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI2:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:ROI2:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI2:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI2:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI2:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:ROI2:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:ROI2:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI2:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:ROI2:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:ROI2:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:ROI2:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:ROI2:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ROI2:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI2:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ROI2:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI2:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:ROI2:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI2:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:ROI2:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:ROI2:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI2:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:ROI2:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:ROI2:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI2:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI2:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:ROI2:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:ROI2:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:ROI2:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:ROI2:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI2:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:ROI2:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI2:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:ROI2:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI2:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI2:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:ROI2:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI2:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI2:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI2:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI2:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI2:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI2:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI2:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:ROI2:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI2:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI2:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:ROI2:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:ROI2:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI2:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI2:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI2:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:ROI2:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI2:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI2:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI2:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:ROI2:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI2:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI2:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:ROI2:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI2:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:ROI2:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:ROI2:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI2:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:ROI2:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:ROI2:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI2:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:ROI2:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:ROI2:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:ROI2:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI2:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:ROI2:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI2:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI2:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI2:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI2:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI2:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:ROI2:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI2:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI2:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI2:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:ROI2:AsynIO") +{ + field(PORT, "FSCN2.rois.roi2") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the label for the ROI # +################################################################### +record(stringout, "S03SIM-EA-FSCN-02:ROI2:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)NAME") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI2:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)NAME") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the ROI definition # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-EA-FSCN-02:ROI2:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM0_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM0_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI2:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM1_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM1_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI2:BinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM2_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:BinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM2_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI2:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM0_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM0_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI2:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM1_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM1_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI2:MinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM2_MIN") + field(LOPR, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:MinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM2_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI2:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM0_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM0_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI2:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM1_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM1_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI2:SizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM2_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:SizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM2_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI2:AutoSizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM0_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI2:AutoSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM0_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI2:AutoSizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM1_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI2:AutoSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM1_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI2:AutoSizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM2_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI2:AutoSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM2_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM0_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM1_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:MaxSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM2_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI2:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM0_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI2:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM0_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI2:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM1_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI2:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM1_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI2:ReverseZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM2_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI2:ReverseZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM2_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI2:EnableX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM0_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI2:EnableX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM0_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI2:EnableY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM1_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI2:EnableY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM1_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI2:EnableZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM2_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI2:EnableZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM2_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the scaling of the data. Useful when # +# binning or converting data types # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ROI2:EnableScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)ENABLE_SCALE") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI2:EnableScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)ENABLE_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI2:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)SCALE_VALUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI2:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)SCALE_VALUE") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ROI2:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI2:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-02:ROI2:MaxX") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:ROI2:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:ROI2:MaxX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:ROI2:MinX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:ROI2:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI2:MaxY") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI2:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:ROI2:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:ROI2:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:ROI2:MaxY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:ROI2:MinY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:ROI2:SizeY.HOPR NPP") +} + +################################################################### +# These records whether dimensions of 1 are collapsed (removed) # # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ROI2:CollapseDims") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi2,0,1)COLLAPSE_DIMS") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI2:CollapseDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi2,0,1)COLLAPSE_DIMS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +#=================================================================# +# Template file: NDROI.template +# Database for ND ROIs +# Mark Rivers +# April 22, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, FSCN2.rois.roi3, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-02,R=:ROI3: + +# This associates a BOY screen with the template +# % gui, FSCN2.rois.roi3, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-02, R=:ROI3:, DESC=Region of Interest +# % gui, FSCN2.rois.roi3, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:ROI3:, DESC=Region of Interest +# % gui, FSCN2.rois.roi3, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-02, R=:ROI3:, DESC=Region of Interest + +# % gui, FSCN2.rois.roi3, groupHeading, Info +# % gui, FSCN2.rois.roi3, readback, Port name, S03SIM-EA-FSCN-02:ROI3:PortName_RBV +# % gui, FSCN2.rois.roi3, readback, Plugin type, S03SIM-EA-FSCN-02:ROI3:PluginType_RBV +# Input +# % gui, FSCN2.rois.roi3, demandString, Input, S03SIM-EA-FSCN-02:ROI3:NDArrayPort +# % gui, FSCN2.rois.roi3, readback, Input, S03SIM-EA-FSCN-02:ROI3:NDArrayPort_RBV + +# % gui, FSCN2.rois.roi3, groupHeading, Callback +# % gui, FSCN2.rois.roi3, enum, Callbacks, S03SIM-EA-FSCN-02:ROI3:EnableCallbacks +# % gui, FSCN2.rois.roi3, statusbits, Callbacks, S03SIM-EA-FSCN-02:ROI3:EnableCallbacks_RBV +# % gui, FSCN2.rois.roi3, demand, Min Callback Time, S03SIM-EA-FSCN-02:ROI3:MinCallbackTime +# % gui, FSCN2.rois.roi3, readback, Min Callback Time, S03SIM-EA-FSCN-02:ROI3:MinCallbackTime_RBV +# % gui, FSCN2.rois.roi3, enum, Block Callbacks, S03SIM-EA-FSCN-02:ROI3:BlockingCallbacks +# % gui, FSCN2.rois.roi3, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:ROI3:BlockingCallbacks_RBV + +# % gui, FSCN2.rois.roi3, groupHeading, Counters +# % gui, FSCN2.rois.roi3, demand, Array Counter, S03SIM-EA-FSCN-02:ROI3:ArrayCounter +# % gui, FSCN2.rois.roi3, readback, Array Counter, S03SIM-EA-FSCN-02:ROI3:ArrayCounter_RBV +# % gui, FSCN2.rois.roi3, readback, Array Rate (fps), S03SIM-EA-FSCN-02:ROI3:ArrayRate_RBV +# % gui, FSCN2.rois.roi3, readback, Queue Use, S03SIM-EA-FSCN-02:ROI3:QueueUse +# % gui, FSCN2.rois.roi3, readback, Queue Size, S03SIM-EA-FSCN-02:ROI3:QueueSize +# % gui, FSCN2.rois.roi3, demand, Dropped Arrays, S03SIM-EA-FSCN-02:ROI3:DroppedArrays +# % gui, FSCN2.rois.roi3, readback, Dropped Arrays, S03SIM-EA-FSCN-02:ROI3:DroppedArrays_RBV + +# % gui, FSCN2.rois.roi3, groupHeading, Array Settings +# % gui, FSCN2.rois.roi3, readback, Num Dimensions, S03SIM-EA-FSCN-02:ROI3:NDimensions_RBV +# % gui, FSCN2.rois.roi3, readback, Dim 0 Size, S03SIM-EA-FSCN-02:ROI3:ArraySize0_RBV +# % gui, FSCN2.rois.roi3, readback, Dim 1 Size, S03SIM-EA-FSCN-02:ROI3:ArraySize1_RBV +# % gui, FSCN2.rois.roi3, readback, Dim 2 Size, S03SIM-EA-FSCN-02:ROI3:ArraySize2_RBV +# % gui, FSCN2.rois.roi3, readback, Input Data Type, S03SIM-EA-FSCN-02:ROI3:DataType_RBV +# % gui, FSCN2.rois.roi3, readback, Colour Mode, S03SIM-EA-FSCN-02:ROI3:ColorMode_RBV +# % gui, FSCN2.rois.roi3, readback, Bayer Pattern, S03SIM-EA-FSCN-02:ROI3:BayerPattern_RBV +# % gui, FSCN2.rois.roi3, readback, Unique id, S03SIM-EA-FSCN-02:ROI3:UniqueId_RBV +# % gui, FSCN2.rois.roi3, readback, Timestamp, S03SIM-EA-FSCN-02:ROI3:TimeStamp_RBV + +# Output +# % gui, FSCN2.rois.roi3, groupHeading, Output +# % gui, FSCN2.rois.roi3, demand, Name, S03SIM-EA-FSCN-02:ROI3:Name +# % gui, FSCN2.rois.roi3, enum, Out data type, S03SIM-EA-FSCN-02:ROI3:DataTypeOut +# % gui, FSCN2.rois.roi3, readback, Out data type, S03SIM-EA-FSCN-02:ROI3:DataTypeOut_RBV +# % gui, FSCN2.rois.roi3, demand, Attributes file, S03SIM-EA-FSCN-02:ROI3:NDAttributesFile +# Scaling +# % gui, FSCN2.rois.roi3, groupHeading, Scaling +# % gui, FSCN2.rois.roi3, enum, Enable Scaling, S03SIM-EA-FSCN-02:ROI3:EnableScale +# % gui, FSCN2.rois.roi3, readback, Enable Scaling, S03SIM-EA-FSCN-02:ROI3:EnableScale_RBV +# % gui, FSCN2.rois.roi3, demand, Scale Divisor, S03SIM-EA-FSCN-02:ROI3:Scale +# % gui, FSCN2.rois.roi3, readback, Scale Divisor, S03SIM-EA-FSCN-02:ROI3:Scale_RBV +# X region +# % gui, FSCN2.rois.roi3, groupHeading, X Region +# % gui, FSCN2.rois.roi3, enum, X, S03SIM-EA-FSCN-02:ROI3:EnableX +# % gui, FSCN2.rois.roi3, readback, X, S03SIM-EA-FSCN-02:ROI3:EnableX_RBV +# % gui, FSCN2.rois.roi3, enum, Autosize X, S03SIM-EA-FSCN-02:ROI3:AutoSizeX +# % gui, FSCN2.rois.roi3, readback, Autosize X, S03SIM-EA-FSCN-02:ROI3:AutoSizeX_RBV +# % gui, FSCN2.rois.roi3, readback, Input Size X, S03SIM-EA-FSCN-02:ROI3:MaxSizeX_RBV +# % gui, FSCN2.rois.roi3, demand, Binning X, S03SIM-EA-FSCN-02:ROI3:BinX +# % gui, FSCN2.rois.roi3, readback, Binning X, S03SIM-EA-FSCN-02:ROI3:BinX_RBV +# % gui, FSCN2.rois.roi3, demand, Start X, S03SIM-EA-FSCN-02:ROI3:MinX +# % gui, FSCN2.rois.roi3, readback, Start X, S03SIM-EA-FSCN-02:ROI3:MinX_RBV +# % gui, FSCN2.rois.roi3, demand, Size X, S03SIM-EA-FSCN-02:ROI3:SizeX +# % gui, FSCN2.rois.roi3, readback, Size X, S03SIM-EA-FSCN-02:ROI3:SizeX_RBV +# % gui, FSCN2.rois.roi3, enum, Reverse X, S03SIM-EA-FSCN-02:ROI3:ReverseX +# % gui, FSCN2.rois.roi3, readback, Reverse X, S03SIM-EA-FSCN-02:ROI3:ReverseX_RBV +# % gui, FSCN2.rois.roi3, readback, Bytes X, S03SIM-EA-FSCN-02:ROI3:ArraySizeX_RBV +# Y region +# % gui, FSCN2.rois.roi3, groupHeading, Y Region +# % gui, FSCN2.rois.roi3, enum, Y, S03SIM-EA-FSCN-02:ROI3:EnableY +# % gui, FSCN2.rois.roi3, readback, Y, S03SIM-EA-FSCN-02:ROI3:EnableY_RBV +# % gui, FSCN2.rois.roi3, enum, Autosize Y, S03SIM-EA-FSCN-02:ROI3:AutoSizeY +# % gui, FSCN2.rois.roi3, readback, Autosize Y, S03SIM-EA-FSCN-02:ROI3:AutoSizeY_RBV +# % gui, FSCN2.rois.roi3, readback, Input size Y, S03SIM-EA-FSCN-02:ROI3:MaxSizeY_RBV +# % gui, FSCN2.rois.roi3, demand, Binning Y, S03SIM-EA-FSCN-02:ROI3:BinY +# % gui, FSCN2.rois.roi3, readback, Binning Y, S03SIM-EA-FSCN-02:ROI3:BinY_RBV +# % gui, FSCN2.rois.roi3, demand, Start Y, S03SIM-EA-FSCN-02:ROI3:MinY +# % gui, FSCN2.rois.roi3, readback, Start Y, S03SIM-EA-FSCN-02:ROI3:MinY_RBV +# % gui, FSCN2.rois.roi3, demand, Size Y, S03SIM-EA-FSCN-02:ROI3:SizeY +# % gui, FSCN2.rois.roi3, readback, Size Y, S03SIM-EA-FSCN-02:ROI3:SizeY_RBV +# % gui, FSCN2.rois.roi3, enum, Reverse Y, S03SIM-EA-FSCN-02:ROI3:ReverseY +# % gui, FSCN2.rois.roi3, readback, Reverse Y, S03SIM-EA-FSCN-02:ROI3:ReverseY_RBV +# % gui, FSCN2.rois.roi3, readback, Bytes Y, S03SIM-EA-FSCN-02:ROI3:ArraySizeY_RBV +# Z region +# % gui, FSCN2.rois.roi3, groupHeading, Z Region +# % gui, FSCN2.rois.roi3, enum, Z, S03SIM-EA-FSCN-02:ROI3:EnableZ +# % gui, FSCN2.rois.roi3, readback, Z, S03SIM-EA-FSCN-02:ROI3:EnableZ_RBV +# % gui, FSCN2.rois.roi3, enum, Autosize Z, S03SIM-EA-FSCN-02:ROI3:AutoSizeZ +# % gui, FSCN2.rois.roi3, readback, Autosize Z, S03SIM-EA-FSCN-02:ROI3:AutoSizeZ_RBV +# % gui, FSCN2.rois.roi3, readback, Input size Z, S03SIM-EA-FSCN-02:ROI3:MaxSizeZ_RBV +# % gui, FSCN2.rois.roi3, demand, Binning Z, S03SIM-EA-FSCN-02:ROI3:BinZ +# % gui, FSCN2.rois.roi3, readback, Binning Z, S03SIM-EA-FSCN-02:ROI3:BinZ_RBV +# % gui, FSCN2.rois.roi3, demand, Start Z, S03SIM-EA-FSCN-02:ROI3:MinZ +# % gui, FSCN2.rois.roi3, readback, Start Z, S03SIM-EA-FSCN-02:ROI3:MinZ_RBV +# % gui, FSCN2.rois.roi3, demand, Size Z, S03SIM-EA-FSCN-02:ROI3:SizeZ +# % gui, FSCN2.rois.roi3, readback, Size Z, S03SIM-EA-FSCN-02:ROI3:SizeZ_RBV +# % gui, FSCN2.rois.roi3, enum, Reverse Z, S03SIM-EA-FSCN-02:ROI3:ReverseZ +# % gui, FSCN2.rois.roi3, readback, Reverse Z, S03SIM-EA-FSCN-02:ROI3:ReverseZ_RBV +# % gui, FSCN2.rois.roi3, readback, Bytes Z, S03SIM-EA-FSCN-02:ROI3:ArraySizeZ_RBV +# Memory +# % gui, FSCN2.rois.roi3, groupHeading, Memory +# % gui, FSCN2.rois.roi3, readback, Max memory, S03SIM-EA-FSCN-02:ROI3:PoolMaxMem +# % gui, FSCN2.rois.roi3, readback, Max buffers, S03SIM-EA-FSCN-02:ROI3:PoolMaxBuffers +# % gui, FSCN2.rois.roi3, readback, Used memory, S03SIM-EA-FSCN-02:ROI3:PoolUsedMem +# % gui, FSCN2.rois.roi3, readback, Allocated buffers, S03SIM-EA-FSCN-02:ROI3:PoolAllocBuffers +# % gui, FSCN2.rois.roi3, readback, Free buffers, S03SIM-EA-FSCN-02:ROI3:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI3:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI3:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI3:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI3:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI3:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI3:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI3:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI3:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ROI3:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI3:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI3:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI3:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:ROI3:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI3:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI3:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI3:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:ROI3:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:ROI3:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI3:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:ROI3:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:ROI3:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:ROI3:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:ROI3:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ROI3:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI3:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ROI3:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI3:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:ROI3:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI3:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:ROI3:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:ROI3:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI3:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:ROI3:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:ROI3:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI3:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI3:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:ROI3:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:ROI3:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:ROI3:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:ROI3:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI3:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:ROI3:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI3:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:ROI3:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI3:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI3:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:ROI3:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI3:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI3:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI3:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI3:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI3:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI3:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI3:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:ROI3:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI3:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI3:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:ROI3:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:ROI3:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI3:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI3:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI3:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:ROI3:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI3:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI3:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI3:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:ROI3:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI3:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI3:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:ROI3:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI3:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:ROI3:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:ROI3:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI3:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:ROI3:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:ROI3:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI3:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:ROI3:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:ROI3:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:ROI3:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI3:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:ROI3:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI3:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI3:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI3:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI3:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI3:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:ROI3:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI3:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI3:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI3:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:ROI3:AsynIO") +{ + field(PORT, "FSCN2.rois.roi3") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the label for the ROI # +################################################################### +record(stringout, "S03SIM-EA-FSCN-02:ROI3:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)NAME") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI3:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)NAME") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the ROI definition # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-EA-FSCN-02:ROI3:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM0_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM0_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI3:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM1_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM1_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI3:BinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM2_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:BinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM2_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI3:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM0_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM0_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI3:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM1_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM1_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI3:MinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM2_MIN") + field(LOPR, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:MinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM2_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI3:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM0_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM0_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI3:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM1_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM1_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI3:SizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM2_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:SizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM2_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI3:AutoSizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM0_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI3:AutoSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM0_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI3:AutoSizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM1_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI3:AutoSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM1_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI3:AutoSizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM2_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI3:AutoSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM2_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM0_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM1_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:MaxSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM2_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI3:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM0_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI3:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM0_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI3:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM1_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI3:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM1_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI3:ReverseZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM2_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI3:ReverseZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM2_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI3:EnableX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM0_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI3:EnableX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM0_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI3:EnableY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM1_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI3:EnableY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM1_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI3:EnableZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM2_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI3:EnableZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM2_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the scaling of the data. Useful when # +# binning or converting data types # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ROI3:EnableScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)ENABLE_SCALE") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI3:EnableScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)ENABLE_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI3:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)SCALE_VALUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI3:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)SCALE_VALUE") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ROI3:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI3:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-02:ROI3:MaxX") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:ROI3:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:ROI3:MaxX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:ROI3:MinX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:ROI3:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI3:MaxY") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI3:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:ROI3:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:ROI3:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:ROI3:MaxY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:ROI3:MinY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:ROI3:SizeY.HOPR NPP") +} + +################################################################### +# These records whether dimensions of 1 are collapsed (removed) # # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ROI3:CollapseDims") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi3,0,1)COLLAPSE_DIMS") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI3:CollapseDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi3,0,1)COLLAPSE_DIMS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +#=================================================================# +# Template file: NDROI.template +# Database for ND ROIs +# Mark Rivers +# April 22, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, FSCN2.rois.roi4, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-02,R=:ROI4: + +# This associates a BOY screen with the template +# % gui, FSCN2.rois.roi4, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-02, R=:ROI4:, DESC=Region of Interest +# % gui, FSCN2.rois.roi4, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:ROI4:, DESC=Region of Interest +# % gui, FSCN2.rois.roi4, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-02, R=:ROI4:, DESC=Region of Interest + +# % gui, FSCN2.rois.roi4, groupHeading, Info +# % gui, FSCN2.rois.roi4, readback, Port name, S03SIM-EA-FSCN-02:ROI4:PortName_RBV +# % gui, FSCN2.rois.roi4, readback, Plugin type, S03SIM-EA-FSCN-02:ROI4:PluginType_RBV +# Input +# % gui, FSCN2.rois.roi4, demandString, Input, S03SIM-EA-FSCN-02:ROI4:NDArrayPort +# % gui, FSCN2.rois.roi4, readback, Input, S03SIM-EA-FSCN-02:ROI4:NDArrayPort_RBV + +# % gui, FSCN2.rois.roi4, groupHeading, Callback +# % gui, FSCN2.rois.roi4, enum, Callbacks, S03SIM-EA-FSCN-02:ROI4:EnableCallbacks +# % gui, FSCN2.rois.roi4, statusbits, Callbacks, S03SIM-EA-FSCN-02:ROI4:EnableCallbacks_RBV +# % gui, FSCN2.rois.roi4, demand, Min Callback Time, S03SIM-EA-FSCN-02:ROI4:MinCallbackTime +# % gui, FSCN2.rois.roi4, readback, Min Callback Time, S03SIM-EA-FSCN-02:ROI4:MinCallbackTime_RBV +# % gui, FSCN2.rois.roi4, enum, Block Callbacks, S03SIM-EA-FSCN-02:ROI4:BlockingCallbacks +# % gui, FSCN2.rois.roi4, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:ROI4:BlockingCallbacks_RBV + +# % gui, FSCN2.rois.roi4, groupHeading, Counters +# % gui, FSCN2.rois.roi4, demand, Array Counter, S03SIM-EA-FSCN-02:ROI4:ArrayCounter +# % gui, FSCN2.rois.roi4, readback, Array Counter, S03SIM-EA-FSCN-02:ROI4:ArrayCounter_RBV +# % gui, FSCN2.rois.roi4, readback, Array Rate (fps), S03SIM-EA-FSCN-02:ROI4:ArrayRate_RBV +# % gui, FSCN2.rois.roi4, readback, Queue Use, S03SIM-EA-FSCN-02:ROI4:QueueUse +# % gui, FSCN2.rois.roi4, readback, Queue Size, S03SIM-EA-FSCN-02:ROI4:QueueSize +# % gui, FSCN2.rois.roi4, demand, Dropped Arrays, S03SIM-EA-FSCN-02:ROI4:DroppedArrays +# % gui, FSCN2.rois.roi4, readback, Dropped Arrays, S03SIM-EA-FSCN-02:ROI4:DroppedArrays_RBV + +# % gui, FSCN2.rois.roi4, groupHeading, Array Settings +# % gui, FSCN2.rois.roi4, readback, Num Dimensions, S03SIM-EA-FSCN-02:ROI4:NDimensions_RBV +# % gui, FSCN2.rois.roi4, readback, Dim 0 Size, S03SIM-EA-FSCN-02:ROI4:ArraySize0_RBV +# % gui, FSCN2.rois.roi4, readback, Dim 1 Size, S03SIM-EA-FSCN-02:ROI4:ArraySize1_RBV +# % gui, FSCN2.rois.roi4, readback, Dim 2 Size, S03SIM-EA-FSCN-02:ROI4:ArraySize2_RBV +# % gui, FSCN2.rois.roi4, readback, Input Data Type, S03SIM-EA-FSCN-02:ROI4:DataType_RBV +# % gui, FSCN2.rois.roi4, readback, Colour Mode, S03SIM-EA-FSCN-02:ROI4:ColorMode_RBV +# % gui, FSCN2.rois.roi4, readback, Bayer Pattern, S03SIM-EA-FSCN-02:ROI4:BayerPattern_RBV +# % gui, FSCN2.rois.roi4, readback, Unique id, S03SIM-EA-FSCN-02:ROI4:UniqueId_RBV +# % gui, FSCN2.rois.roi4, readback, Timestamp, S03SIM-EA-FSCN-02:ROI4:TimeStamp_RBV + +# Output +# % gui, FSCN2.rois.roi4, groupHeading, Output +# % gui, FSCN2.rois.roi4, demand, Name, S03SIM-EA-FSCN-02:ROI4:Name +# % gui, FSCN2.rois.roi4, enum, Out data type, S03SIM-EA-FSCN-02:ROI4:DataTypeOut +# % gui, FSCN2.rois.roi4, readback, Out data type, S03SIM-EA-FSCN-02:ROI4:DataTypeOut_RBV +# % gui, FSCN2.rois.roi4, demand, Attributes file, S03SIM-EA-FSCN-02:ROI4:NDAttributesFile +# Scaling +# % gui, FSCN2.rois.roi4, groupHeading, Scaling +# % gui, FSCN2.rois.roi4, enum, Enable Scaling, S03SIM-EA-FSCN-02:ROI4:EnableScale +# % gui, FSCN2.rois.roi4, readback, Enable Scaling, S03SIM-EA-FSCN-02:ROI4:EnableScale_RBV +# % gui, FSCN2.rois.roi4, demand, Scale Divisor, S03SIM-EA-FSCN-02:ROI4:Scale +# % gui, FSCN2.rois.roi4, readback, Scale Divisor, S03SIM-EA-FSCN-02:ROI4:Scale_RBV +# X region +# % gui, FSCN2.rois.roi4, groupHeading, X Region +# % gui, FSCN2.rois.roi4, enum, X, S03SIM-EA-FSCN-02:ROI4:EnableX +# % gui, FSCN2.rois.roi4, readback, X, S03SIM-EA-FSCN-02:ROI4:EnableX_RBV +# % gui, FSCN2.rois.roi4, enum, Autosize X, S03SIM-EA-FSCN-02:ROI4:AutoSizeX +# % gui, FSCN2.rois.roi4, readback, Autosize X, S03SIM-EA-FSCN-02:ROI4:AutoSizeX_RBV +# % gui, FSCN2.rois.roi4, readback, Input Size X, S03SIM-EA-FSCN-02:ROI4:MaxSizeX_RBV +# % gui, FSCN2.rois.roi4, demand, Binning X, S03SIM-EA-FSCN-02:ROI4:BinX +# % gui, FSCN2.rois.roi4, readback, Binning X, S03SIM-EA-FSCN-02:ROI4:BinX_RBV +# % gui, FSCN2.rois.roi4, demand, Start X, S03SIM-EA-FSCN-02:ROI4:MinX +# % gui, FSCN2.rois.roi4, readback, Start X, S03SIM-EA-FSCN-02:ROI4:MinX_RBV +# % gui, FSCN2.rois.roi4, demand, Size X, S03SIM-EA-FSCN-02:ROI4:SizeX +# % gui, FSCN2.rois.roi4, readback, Size X, S03SIM-EA-FSCN-02:ROI4:SizeX_RBV +# % gui, FSCN2.rois.roi4, enum, Reverse X, S03SIM-EA-FSCN-02:ROI4:ReverseX +# % gui, FSCN2.rois.roi4, readback, Reverse X, S03SIM-EA-FSCN-02:ROI4:ReverseX_RBV +# % gui, FSCN2.rois.roi4, readback, Bytes X, S03SIM-EA-FSCN-02:ROI4:ArraySizeX_RBV +# Y region +# % gui, FSCN2.rois.roi4, groupHeading, Y Region +# % gui, FSCN2.rois.roi4, enum, Y, S03SIM-EA-FSCN-02:ROI4:EnableY +# % gui, FSCN2.rois.roi4, readback, Y, S03SIM-EA-FSCN-02:ROI4:EnableY_RBV +# % gui, FSCN2.rois.roi4, enum, Autosize Y, S03SIM-EA-FSCN-02:ROI4:AutoSizeY +# % gui, FSCN2.rois.roi4, readback, Autosize Y, S03SIM-EA-FSCN-02:ROI4:AutoSizeY_RBV +# % gui, FSCN2.rois.roi4, readback, Input size Y, S03SIM-EA-FSCN-02:ROI4:MaxSizeY_RBV +# % gui, FSCN2.rois.roi4, demand, Binning Y, S03SIM-EA-FSCN-02:ROI4:BinY +# % gui, FSCN2.rois.roi4, readback, Binning Y, S03SIM-EA-FSCN-02:ROI4:BinY_RBV +# % gui, FSCN2.rois.roi4, demand, Start Y, S03SIM-EA-FSCN-02:ROI4:MinY +# % gui, FSCN2.rois.roi4, readback, Start Y, S03SIM-EA-FSCN-02:ROI4:MinY_RBV +# % gui, FSCN2.rois.roi4, demand, Size Y, S03SIM-EA-FSCN-02:ROI4:SizeY +# % gui, FSCN2.rois.roi4, readback, Size Y, S03SIM-EA-FSCN-02:ROI4:SizeY_RBV +# % gui, FSCN2.rois.roi4, enum, Reverse Y, S03SIM-EA-FSCN-02:ROI4:ReverseY +# % gui, FSCN2.rois.roi4, readback, Reverse Y, S03SIM-EA-FSCN-02:ROI4:ReverseY_RBV +# % gui, FSCN2.rois.roi4, readback, Bytes Y, S03SIM-EA-FSCN-02:ROI4:ArraySizeY_RBV +# Z region +# % gui, FSCN2.rois.roi4, groupHeading, Z Region +# % gui, FSCN2.rois.roi4, enum, Z, S03SIM-EA-FSCN-02:ROI4:EnableZ +# % gui, FSCN2.rois.roi4, readback, Z, S03SIM-EA-FSCN-02:ROI4:EnableZ_RBV +# % gui, FSCN2.rois.roi4, enum, Autosize Z, S03SIM-EA-FSCN-02:ROI4:AutoSizeZ +# % gui, FSCN2.rois.roi4, readback, Autosize Z, S03SIM-EA-FSCN-02:ROI4:AutoSizeZ_RBV +# % gui, FSCN2.rois.roi4, readback, Input size Z, S03SIM-EA-FSCN-02:ROI4:MaxSizeZ_RBV +# % gui, FSCN2.rois.roi4, demand, Binning Z, S03SIM-EA-FSCN-02:ROI4:BinZ +# % gui, FSCN2.rois.roi4, readback, Binning Z, S03SIM-EA-FSCN-02:ROI4:BinZ_RBV +# % gui, FSCN2.rois.roi4, demand, Start Z, S03SIM-EA-FSCN-02:ROI4:MinZ +# % gui, FSCN2.rois.roi4, readback, Start Z, S03SIM-EA-FSCN-02:ROI4:MinZ_RBV +# % gui, FSCN2.rois.roi4, demand, Size Z, S03SIM-EA-FSCN-02:ROI4:SizeZ +# % gui, FSCN2.rois.roi4, readback, Size Z, S03SIM-EA-FSCN-02:ROI4:SizeZ_RBV +# % gui, FSCN2.rois.roi4, enum, Reverse Z, S03SIM-EA-FSCN-02:ROI4:ReverseZ +# % gui, FSCN2.rois.roi4, readback, Reverse Z, S03SIM-EA-FSCN-02:ROI4:ReverseZ_RBV +# % gui, FSCN2.rois.roi4, readback, Bytes Z, S03SIM-EA-FSCN-02:ROI4:ArraySizeZ_RBV +# Memory +# % gui, FSCN2.rois.roi4, groupHeading, Memory +# % gui, FSCN2.rois.roi4, readback, Max memory, S03SIM-EA-FSCN-02:ROI4:PoolMaxMem +# % gui, FSCN2.rois.roi4, readback, Max buffers, S03SIM-EA-FSCN-02:ROI4:PoolMaxBuffers +# % gui, FSCN2.rois.roi4, readback, Used memory, S03SIM-EA-FSCN-02:ROI4:PoolUsedMem +# % gui, FSCN2.rois.roi4, readback, Allocated buffers, S03SIM-EA-FSCN-02:ROI4:PoolAllocBuffers +# % gui, FSCN2.rois.roi4, readback, Free buffers, S03SIM-EA-FSCN-02:ROI4:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI4:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI4:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI4:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI4:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI4:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI4:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI4:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI4:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ROI4:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI4:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI4:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI4:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:ROI4:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI4:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI4:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI4:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:ROI4:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:ROI4:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI4:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:ROI4:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:ROI4:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:ROI4:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:ROI4:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ROI4:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI4:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ROI4:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI4:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:ROI4:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI4:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:ROI4:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:ROI4:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI4:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:ROI4:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:ROI4:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI4:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI4:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:ROI4:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:ROI4:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:ROI4:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:ROI4:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI4:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:ROI4:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI4:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:ROI4:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI4:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI4:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:ROI4:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI4:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI4:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI4:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI4:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI4:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI4:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI4:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:ROI4:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI4:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI4:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:ROI4:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:ROI4:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI4:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI4:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI4:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:ROI4:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI4:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI4:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI4:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:ROI4:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI4:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI4:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:ROI4:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI4:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:ROI4:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:ROI4:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI4:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:ROI4:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:ROI4:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI4:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:ROI4:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:ROI4:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:ROI4:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI4:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:ROI4:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI4:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI4:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI4:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI4:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI4:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:ROI4:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI4:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI4:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI4:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:ROI4:AsynIO") +{ + field(PORT, "FSCN2.rois.roi4") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the label for the ROI # +################################################################### +record(stringout, "S03SIM-EA-FSCN-02:ROI4:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)NAME") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI4:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)NAME") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the ROI definition # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-EA-FSCN-02:ROI4:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM0_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM0_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI4:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM1_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM1_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI4:BinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM2_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:BinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM2_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI4:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM0_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM0_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI4:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM1_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM1_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI4:MinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM2_MIN") + field(LOPR, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:MinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM2_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI4:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM0_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM0_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI4:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM1_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM1_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI4:SizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM2_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:SizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM2_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI4:AutoSizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM0_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI4:AutoSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM0_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI4:AutoSizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM1_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI4:AutoSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM1_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI4:AutoSizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM2_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI4:AutoSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM2_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM0_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM1_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:MaxSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM2_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI4:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM0_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI4:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM0_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI4:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM1_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI4:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM1_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI4:ReverseZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM2_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI4:ReverseZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM2_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI4:EnableX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM0_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI4:EnableX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM0_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI4:EnableY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM1_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI4:EnableY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM1_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI4:EnableZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM2_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI4:EnableZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM2_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the scaling of the data. Useful when # +# binning or converting data types # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ROI4:EnableScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)ENABLE_SCALE") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI4:EnableScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)ENABLE_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI4:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)SCALE_VALUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI4:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)SCALE_VALUE") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ROI4:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI4:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-02:ROI4:MaxX") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:ROI4:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:ROI4:MaxX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:ROI4:MinX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:ROI4:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI4:MaxY") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI4:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:ROI4:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:ROI4:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:ROI4:MaxY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:ROI4:MinY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:ROI4:SizeY.HOPR NPP") +} + +################################################################### +# These records whether dimensions of 1 are collapsed (removed) # # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ROI4:CollapseDims") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi4,0,1)COLLAPSE_DIMS") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI4:CollapseDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi4,0,1)COLLAPSE_DIMS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +#=================================================================# +# Template file: NDROI.template +# Database for ND ROIs +# Mark Rivers +# April 22, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, FSCN2.rois.roi5, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-02,R=:ROI5: + +# This associates a BOY screen with the template +# % gui, FSCN2.rois.roi5, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-02, R=:ROI5:, DESC=Region of Interest +# % gui, FSCN2.rois.roi5, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:ROI5:, DESC=Region of Interest +# % gui, FSCN2.rois.roi5, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-02, R=:ROI5:, DESC=Region of Interest + +# % gui, FSCN2.rois.roi5, groupHeading, Info +# % gui, FSCN2.rois.roi5, readback, Port name, S03SIM-EA-FSCN-02:ROI5:PortName_RBV +# % gui, FSCN2.rois.roi5, readback, Plugin type, S03SIM-EA-FSCN-02:ROI5:PluginType_RBV +# Input +# % gui, FSCN2.rois.roi5, demandString, Input, S03SIM-EA-FSCN-02:ROI5:NDArrayPort +# % gui, FSCN2.rois.roi5, readback, Input, S03SIM-EA-FSCN-02:ROI5:NDArrayPort_RBV + +# % gui, FSCN2.rois.roi5, groupHeading, Callback +# % gui, FSCN2.rois.roi5, enum, Callbacks, S03SIM-EA-FSCN-02:ROI5:EnableCallbacks +# % gui, FSCN2.rois.roi5, statusbits, Callbacks, S03SIM-EA-FSCN-02:ROI5:EnableCallbacks_RBV +# % gui, FSCN2.rois.roi5, demand, Min Callback Time, S03SIM-EA-FSCN-02:ROI5:MinCallbackTime +# % gui, FSCN2.rois.roi5, readback, Min Callback Time, S03SIM-EA-FSCN-02:ROI5:MinCallbackTime_RBV +# % gui, FSCN2.rois.roi5, enum, Block Callbacks, S03SIM-EA-FSCN-02:ROI5:BlockingCallbacks +# % gui, FSCN2.rois.roi5, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:ROI5:BlockingCallbacks_RBV + +# % gui, FSCN2.rois.roi5, groupHeading, Counters +# % gui, FSCN2.rois.roi5, demand, Array Counter, S03SIM-EA-FSCN-02:ROI5:ArrayCounter +# % gui, FSCN2.rois.roi5, readback, Array Counter, S03SIM-EA-FSCN-02:ROI5:ArrayCounter_RBV +# % gui, FSCN2.rois.roi5, readback, Array Rate (fps), S03SIM-EA-FSCN-02:ROI5:ArrayRate_RBV +# % gui, FSCN2.rois.roi5, readback, Queue Use, S03SIM-EA-FSCN-02:ROI5:QueueUse +# % gui, FSCN2.rois.roi5, readback, Queue Size, S03SIM-EA-FSCN-02:ROI5:QueueSize +# % gui, FSCN2.rois.roi5, demand, Dropped Arrays, S03SIM-EA-FSCN-02:ROI5:DroppedArrays +# % gui, FSCN2.rois.roi5, readback, Dropped Arrays, S03SIM-EA-FSCN-02:ROI5:DroppedArrays_RBV + +# % gui, FSCN2.rois.roi5, groupHeading, Array Settings +# % gui, FSCN2.rois.roi5, readback, Num Dimensions, S03SIM-EA-FSCN-02:ROI5:NDimensions_RBV +# % gui, FSCN2.rois.roi5, readback, Dim 0 Size, S03SIM-EA-FSCN-02:ROI5:ArraySize0_RBV +# % gui, FSCN2.rois.roi5, readback, Dim 1 Size, S03SIM-EA-FSCN-02:ROI5:ArraySize1_RBV +# % gui, FSCN2.rois.roi5, readback, Dim 2 Size, S03SIM-EA-FSCN-02:ROI5:ArraySize2_RBV +# % gui, FSCN2.rois.roi5, readback, Input Data Type, S03SIM-EA-FSCN-02:ROI5:DataType_RBV +# % gui, FSCN2.rois.roi5, readback, Colour Mode, S03SIM-EA-FSCN-02:ROI5:ColorMode_RBV +# % gui, FSCN2.rois.roi5, readback, Bayer Pattern, S03SIM-EA-FSCN-02:ROI5:BayerPattern_RBV +# % gui, FSCN2.rois.roi5, readback, Unique id, S03SIM-EA-FSCN-02:ROI5:UniqueId_RBV +# % gui, FSCN2.rois.roi5, readback, Timestamp, S03SIM-EA-FSCN-02:ROI5:TimeStamp_RBV + +# Output +# % gui, FSCN2.rois.roi5, groupHeading, Output +# % gui, FSCN2.rois.roi5, demand, Name, S03SIM-EA-FSCN-02:ROI5:Name +# % gui, FSCN2.rois.roi5, enum, Out data type, S03SIM-EA-FSCN-02:ROI5:DataTypeOut +# % gui, FSCN2.rois.roi5, readback, Out data type, S03SIM-EA-FSCN-02:ROI5:DataTypeOut_RBV +# % gui, FSCN2.rois.roi5, demand, Attributes file, S03SIM-EA-FSCN-02:ROI5:NDAttributesFile +# Scaling +# % gui, FSCN2.rois.roi5, groupHeading, Scaling +# % gui, FSCN2.rois.roi5, enum, Enable Scaling, S03SIM-EA-FSCN-02:ROI5:EnableScale +# % gui, FSCN2.rois.roi5, readback, Enable Scaling, S03SIM-EA-FSCN-02:ROI5:EnableScale_RBV +# % gui, FSCN2.rois.roi5, demand, Scale Divisor, S03SIM-EA-FSCN-02:ROI5:Scale +# % gui, FSCN2.rois.roi5, readback, Scale Divisor, S03SIM-EA-FSCN-02:ROI5:Scale_RBV +# X region +# % gui, FSCN2.rois.roi5, groupHeading, X Region +# % gui, FSCN2.rois.roi5, enum, X, S03SIM-EA-FSCN-02:ROI5:EnableX +# % gui, FSCN2.rois.roi5, readback, X, S03SIM-EA-FSCN-02:ROI5:EnableX_RBV +# % gui, FSCN2.rois.roi5, enum, Autosize X, S03SIM-EA-FSCN-02:ROI5:AutoSizeX +# % gui, FSCN2.rois.roi5, readback, Autosize X, S03SIM-EA-FSCN-02:ROI5:AutoSizeX_RBV +# % gui, FSCN2.rois.roi5, readback, Input Size X, S03SIM-EA-FSCN-02:ROI5:MaxSizeX_RBV +# % gui, FSCN2.rois.roi5, demand, Binning X, S03SIM-EA-FSCN-02:ROI5:BinX +# % gui, FSCN2.rois.roi5, readback, Binning X, S03SIM-EA-FSCN-02:ROI5:BinX_RBV +# % gui, FSCN2.rois.roi5, demand, Start X, S03SIM-EA-FSCN-02:ROI5:MinX +# % gui, FSCN2.rois.roi5, readback, Start X, S03SIM-EA-FSCN-02:ROI5:MinX_RBV +# % gui, FSCN2.rois.roi5, demand, Size X, S03SIM-EA-FSCN-02:ROI5:SizeX +# % gui, FSCN2.rois.roi5, readback, Size X, S03SIM-EA-FSCN-02:ROI5:SizeX_RBV +# % gui, FSCN2.rois.roi5, enum, Reverse X, S03SIM-EA-FSCN-02:ROI5:ReverseX +# % gui, FSCN2.rois.roi5, readback, Reverse X, S03SIM-EA-FSCN-02:ROI5:ReverseX_RBV +# % gui, FSCN2.rois.roi5, readback, Bytes X, S03SIM-EA-FSCN-02:ROI5:ArraySizeX_RBV +# Y region +# % gui, FSCN2.rois.roi5, groupHeading, Y Region +# % gui, FSCN2.rois.roi5, enum, Y, S03SIM-EA-FSCN-02:ROI5:EnableY +# % gui, FSCN2.rois.roi5, readback, Y, S03SIM-EA-FSCN-02:ROI5:EnableY_RBV +# % gui, FSCN2.rois.roi5, enum, Autosize Y, S03SIM-EA-FSCN-02:ROI5:AutoSizeY +# % gui, FSCN2.rois.roi5, readback, Autosize Y, S03SIM-EA-FSCN-02:ROI5:AutoSizeY_RBV +# % gui, FSCN2.rois.roi5, readback, Input size Y, S03SIM-EA-FSCN-02:ROI5:MaxSizeY_RBV +# % gui, FSCN2.rois.roi5, demand, Binning Y, S03SIM-EA-FSCN-02:ROI5:BinY +# % gui, FSCN2.rois.roi5, readback, Binning Y, S03SIM-EA-FSCN-02:ROI5:BinY_RBV +# % gui, FSCN2.rois.roi5, demand, Start Y, S03SIM-EA-FSCN-02:ROI5:MinY +# % gui, FSCN2.rois.roi5, readback, Start Y, S03SIM-EA-FSCN-02:ROI5:MinY_RBV +# % gui, FSCN2.rois.roi5, demand, Size Y, S03SIM-EA-FSCN-02:ROI5:SizeY +# % gui, FSCN2.rois.roi5, readback, Size Y, S03SIM-EA-FSCN-02:ROI5:SizeY_RBV +# % gui, FSCN2.rois.roi5, enum, Reverse Y, S03SIM-EA-FSCN-02:ROI5:ReverseY +# % gui, FSCN2.rois.roi5, readback, Reverse Y, S03SIM-EA-FSCN-02:ROI5:ReverseY_RBV +# % gui, FSCN2.rois.roi5, readback, Bytes Y, S03SIM-EA-FSCN-02:ROI5:ArraySizeY_RBV +# Z region +# % gui, FSCN2.rois.roi5, groupHeading, Z Region +# % gui, FSCN2.rois.roi5, enum, Z, S03SIM-EA-FSCN-02:ROI5:EnableZ +# % gui, FSCN2.rois.roi5, readback, Z, S03SIM-EA-FSCN-02:ROI5:EnableZ_RBV +# % gui, FSCN2.rois.roi5, enum, Autosize Z, S03SIM-EA-FSCN-02:ROI5:AutoSizeZ +# % gui, FSCN2.rois.roi5, readback, Autosize Z, S03SIM-EA-FSCN-02:ROI5:AutoSizeZ_RBV +# % gui, FSCN2.rois.roi5, readback, Input size Z, S03SIM-EA-FSCN-02:ROI5:MaxSizeZ_RBV +# % gui, FSCN2.rois.roi5, demand, Binning Z, S03SIM-EA-FSCN-02:ROI5:BinZ +# % gui, FSCN2.rois.roi5, readback, Binning Z, S03SIM-EA-FSCN-02:ROI5:BinZ_RBV +# % gui, FSCN2.rois.roi5, demand, Start Z, S03SIM-EA-FSCN-02:ROI5:MinZ +# % gui, FSCN2.rois.roi5, readback, Start Z, S03SIM-EA-FSCN-02:ROI5:MinZ_RBV +# % gui, FSCN2.rois.roi5, demand, Size Z, S03SIM-EA-FSCN-02:ROI5:SizeZ +# % gui, FSCN2.rois.roi5, readback, Size Z, S03SIM-EA-FSCN-02:ROI5:SizeZ_RBV +# % gui, FSCN2.rois.roi5, enum, Reverse Z, S03SIM-EA-FSCN-02:ROI5:ReverseZ +# % gui, FSCN2.rois.roi5, readback, Reverse Z, S03SIM-EA-FSCN-02:ROI5:ReverseZ_RBV +# % gui, FSCN2.rois.roi5, readback, Bytes Z, S03SIM-EA-FSCN-02:ROI5:ArraySizeZ_RBV +# Memory +# % gui, FSCN2.rois.roi5, groupHeading, Memory +# % gui, FSCN2.rois.roi5, readback, Max memory, S03SIM-EA-FSCN-02:ROI5:PoolMaxMem +# % gui, FSCN2.rois.roi5, readback, Max buffers, S03SIM-EA-FSCN-02:ROI5:PoolMaxBuffers +# % gui, FSCN2.rois.roi5, readback, Used memory, S03SIM-EA-FSCN-02:ROI5:PoolUsedMem +# % gui, FSCN2.rois.roi5, readback, Allocated buffers, S03SIM-EA-FSCN-02:ROI5:PoolAllocBuffers +# % gui, FSCN2.rois.roi5, readback, Free buffers, S03SIM-EA-FSCN-02:ROI5:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI5:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI5:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI5:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI5:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI5:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI5:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI5:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI5:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ROI5:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI5:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI5:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI5:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:ROI5:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI5:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI5:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI5:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:ROI5:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:ROI5:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI5:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:ROI5:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:ROI5:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:ROI5:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:ROI5:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ROI5:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI5:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ROI5:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI5:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:ROI5:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI5:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:ROI5:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:ROI5:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI5:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:ROI5:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:ROI5:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI5:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI5:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:ROI5:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:ROI5:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:ROI5:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:ROI5:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI5:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:ROI5:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI5:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:ROI5:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI5:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI5:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:ROI5:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI5:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI5:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI5:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI5:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI5:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI5:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI5:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:ROI5:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI5:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI5:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:ROI5:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:ROI5:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI5:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI5:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI5:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:ROI5:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI5:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI5:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI5:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:ROI5:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI5:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI5:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:ROI5:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI5:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:ROI5:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:ROI5:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI5:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:ROI5:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:ROI5:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI5:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:ROI5:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:ROI5:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:ROI5:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI5:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:ROI5:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI5:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI5:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI5:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI5:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI5:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:ROI5:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI5:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI5:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI5:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:ROI5:AsynIO") +{ + field(PORT, "FSCN2.rois.roi5") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the label for the ROI # +################################################################### +record(stringout, "S03SIM-EA-FSCN-02:ROI5:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)NAME") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI5:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)NAME") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the ROI definition # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-EA-FSCN-02:ROI5:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM0_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM0_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI5:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM1_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM1_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI5:BinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM2_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:BinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM2_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI5:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM0_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM0_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI5:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM1_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM1_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI5:MinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM2_MIN") + field(LOPR, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:MinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM2_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI5:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM0_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM0_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI5:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM1_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM1_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI5:SizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM2_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:SizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM2_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI5:AutoSizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM0_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI5:AutoSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM0_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI5:AutoSizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM1_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI5:AutoSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM1_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI5:AutoSizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM2_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI5:AutoSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM2_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM0_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM1_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:MaxSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM2_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI5:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM0_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI5:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM0_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI5:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM1_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI5:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM1_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI5:ReverseZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM2_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI5:ReverseZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM2_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI5:EnableX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM0_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI5:EnableX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM0_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI5:EnableY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM1_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI5:EnableY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM1_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI5:EnableZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM2_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI5:EnableZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM2_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the scaling of the data. Useful when # +# binning or converting data types # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ROI5:EnableScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)ENABLE_SCALE") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI5:EnableScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)ENABLE_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI5:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)SCALE_VALUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI5:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)SCALE_VALUE") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ROI5:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI5:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-02:ROI5:MaxX") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:ROI5:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:ROI5:MaxX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:ROI5:MinX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:ROI5:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI5:MaxY") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI5:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:ROI5:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:ROI5:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:ROI5:MaxY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:ROI5:MinY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:ROI5:SizeY.HOPR NPP") +} + +################################################################### +# These records whether dimensions of 1 are collapsed (removed) # # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ROI5:CollapseDims") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi5,0,1)COLLAPSE_DIMS") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI5:CollapseDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi5,0,1)COLLAPSE_DIMS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +#=================================================================# +# Template file: NDROI.template +# Database for ND ROIs +# Mark Rivers +# April 22, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, FSCN2.rois.roi6, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-02,R=:ROI6: + +# This associates a BOY screen with the template +# % gui, FSCN2.rois.roi6, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-02, R=:ROI6:, DESC=Region of Interest +# % gui, FSCN2.rois.roi6, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:ROI6:, DESC=Region of Interest +# % gui, FSCN2.rois.roi6, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-02, R=:ROI6:, DESC=Region of Interest + +# % gui, FSCN2.rois.roi6, groupHeading, Info +# % gui, FSCN2.rois.roi6, readback, Port name, S03SIM-EA-FSCN-02:ROI6:PortName_RBV +# % gui, FSCN2.rois.roi6, readback, Plugin type, S03SIM-EA-FSCN-02:ROI6:PluginType_RBV +# Input +# % gui, FSCN2.rois.roi6, demandString, Input, S03SIM-EA-FSCN-02:ROI6:NDArrayPort +# % gui, FSCN2.rois.roi6, readback, Input, S03SIM-EA-FSCN-02:ROI6:NDArrayPort_RBV + +# % gui, FSCN2.rois.roi6, groupHeading, Callback +# % gui, FSCN2.rois.roi6, enum, Callbacks, S03SIM-EA-FSCN-02:ROI6:EnableCallbacks +# % gui, FSCN2.rois.roi6, statusbits, Callbacks, S03SIM-EA-FSCN-02:ROI6:EnableCallbacks_RBV +# % gui, FSCN2.rois.roi6, demand, Min Callback Time, S03SIM-EA-FSCN-02:ROI6:MinCallbackTime +# % gui, FSCN2.rois.roi6, readback, Min Callback Time, S03SIM-EA-FSCN-02:ROI6:MinCallbackTime_RBV +# % gui, FSCN2.rois.roi6, enum, Block Callbacks, S03SIM-EA-FSCN-02:ROI6:BlockingCallbacks +# % gui, FSCN2.rois.roi6, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:ROI6:BlockingCallbacks_RBV + +# % gui, FSCN2.rois.roi6, groupHeading, Counters +# % gui, FSCN2.rois.roi6, demand, Array Counter, S03SIM-EA-FSCN-02:ROI6:ArrayCounter +# % gui, FSCN2.rois.roi6, readback, Array Counter, S03SIM-EA-FSCN-02:ROI6:ArrayCounter_RBV +# % gui, FSCN2.rois.roi6, readback, Array Rate (fps), S03SIM-EA-FSCN-02:ROI6:ArrayRate_RBV +# % gui, FSCN2.rois.roi6, readback, Queue Use, S03SIM-EA-FSCN-02:ROI6:QueueUse +# % gui, FSCN2.rois.roi6, readback, Queue Size, S03SIM-EA-FSCN-02:ROI6:QueueSize +# % gui, FSCN2.rois.roi6, demand, Dropped Arrays, S03SIM-EA-FSCN-02:ROI6:DroppedArrays +# % gui, FSCN2.rois.roi6, readback, Dropped Arrays, S03SIM-EA-FSCN-02:ROI6:DroppedArrays_RBV + +# % gui, FSCN2.rois.roi6, groupHeading, Array Settings +# % gui, FSCN2.rois.roi6, readback, Num Dimensions, S03SIM-EA-FSCN-02:ROI6:NDimensions_RBV +# % gui, FSCN2.rois.roi6, readback, Dim 0 Size, S03SIM-EA-FSCN-02:ROI6:ArraySize0_RBV +# % gui, FSCN2.rois.roi6, readback, Dim 1 Size, S03SIM-EA-FSCN-02:ROI6:ArraySize1_RBV +# % gui, FSCN2.rois.roi6, readback, Dim 2 Size, S03SIM-EA-FSCN-02:ROI6:ArraySize2_RBV +# % gui, FSCN2.rois.roi6, readback, Input Data Type, S03SIM-EA-FSCN-02:ROI6:DataType_RBV +# % gui, FSCN2.rois.roi6, readback, Colour Mode, S03SIM-EA-FSCN-02:ROI6:ColorMode_RBV +# % gui, FSCN2.rois.roi6, readback, Bayer Pattern, S03SIM-EA-FSCN-02:ROI6:BayerPattern_RBV +# % gui, FSCN2.rois.roi6, readback, Unique id, S03SIM-EA-FSCN-02:ROI6:UniqueId_RBV +# % gui, FSCN2.rois.roi6, readback, Timestamp, S03SIM-EA-FSCN-02:ROI6:TimeStamp_RBV + +# Output +# % gui, FSCN2.rois.roi6, groupHeading, Output +# % gui, FSCN2.rois.roi6, demand, Name, S03SIM-EA-FSCN-02:ROI6:Name +# % gui, FSCN2.rois.roi6, enum, Out data type, S03SIM-EA-FSCN-02:ROI6:DataTypeOut +# % gui, FSCN2.rois.roi6, readback, Out data type, S03SIM-EA-FSCN-02:ROI6:DataTypeOut_RBV +# % gui, FSCN2.rois.roi6, demand, Attributes file, S03SIM-EA-FSCN-02:ROI6:NDAttributesFile +# Scaling +# % gui, FSCN2.rois.roi6, groupHeading, Scaling +# % gui, FSCN2.rois.roi6, enum, Enable Scaling, S03SIM-EA-FSCN-02:ROI6:EnableScale +# % gui, FSCN2.rois.roi6, readback, Enable Scaling, S03SIM-EA-FSCN-02:ROI6:EnableScale_RBV +# % gui, FSCN2.rois.roi6, demand, Scale Divisor, S03SIM-EA-FSCN-02:ROI6:Scale +# % gui, FSCN2.rois.roi6, readback, Scale Divisor, S03SIM-EA-FSCN-02:ROI6:Scale_RBV +# X region +# % gui, FSCN2.rois.roi6, groupHeading, X Region +# % gui, FSCN2.rois.roi6, enum, X, S03SIM-EA-FSCN-02:ROI6:EnableX +# % gui, FSCN2.rois.roi6, readback, X, S03SIM-EA-FSCN-02:ROI6:EnableX_RBV +# % gui, FSCN2.rois.roi6, enum, Autosize X, S03SIM-EA-FSCN-02:ROI6:AutoSizeX +# % gui, FSCN2.rois.roi6, readback, Autosize X, S03SIM-EA-FSCN-02:ROI6:AutoSizeX_RBV +# % gui, FSCN2.rois.roi6, readback, Input Size X, S03SIM-EA-FSCN-02:ROI6:MaxSizeX_RBV +# % gui, FSCN2.rois.roi6, demand, Binning X, S03SIM-EA-FSCN-02:ROI6:BinX +# % gui, FSCN2.rois.roi6, readback, Binning X, S03SIM-EA-FSCN-02:ROI6:BinX_RBV +# % gui, FSCN2.rois.roi6, demand, Start X, S03SIM-EA-FSCN-02:ROI6:MinX +# % gui, FSCN2.rois.roi6, readback, Start X, S03SIM-EA-FSCN-02:ROI6:MinX_RBV +# % gui, FSCN2.rois.roi6, demand, Size X, S03SIM-EA-FSCN-02:ROI6:SizeX +# % gui, FSCN2.rois.roi6, readback, Size X, S03SIM-EA-FSCN-02:ROI6:SizeX_RBV +# % gui, FSCN2.rois.roi6, enum, Reverse X, S03SIM-EA-FSCN-02:ROI6:ReverseX +# % gui, FSCN2.rois.roi6, readback, Reverse X, S03SIM-EA-FSCN-02:ROI6:ReverseX_RBV +# % gui, FSCN2.rois.roi6, readback, Bytes X, S03SIM-EA-FSCN-02:ROI6:ArraySizeX_RBV +# Y region +# % gui, FSCN2.rois.roi6, groupHeading, Y Region +# % gui, FSCN2.rois.roi6, enum, Y, S03SIM-EA-FSCN-02:ROI6:EnableY +# % gui, FSCN2.rois.roi6, readback, Y, S03SIM-EA-FSCN-02:ROI6:EnableY_RBV +# % gui, FSCN2.rois.roi6, enum, Autosize Y, S03SIM-EA-FSCN-02:ROI6:AutoSizeY +# % gui, FSCN2.rois.roi6, readback, Autosize Y, S03SIM-EA-FSCN-02:ROI6:AutoSizeY_RBV +# % gui, FSCN2.rois.roi6, readback, Input size Y, S03SIM-EA-FSCN-02:ROI6:MaxSizeY_RBV +# % gui, FSCN2.rois.roi6, demand, Binning Y, S03SIM-EA-FSCN-02:ROI6:BinY +# % gui, FSCN2.rois.roi6, readback, Binning Y, S03SIM-EA-FSCN-02:ROI6:BinY_RBV +# % gui, FSCN2.rois.roi6, demand, Start Y, S03SIM-EA-FSCN-02:ROI6:MinY +# % gui, FSCN2.rois.roi6, readback, Start Y, S03SIM-EA-FSCN-02:ROI6:MinY_RBV +# % gui, FSCN2.rois.roi6, demand, Size Y, S03SIM-EA-FSCN-02:ROI6:SizeY +# % gui, FSCN2.rois.roi6, readback, Size Y, S03SIM-EA-FSCN-02:ROI6:SizeY_RBV +# % gui, FSCN2.rois.roi6, enum, Reverse Y, S03SIM-EA-FSCN-02:ROI6:ReverseY +# % gui, FSCN2.rois.roi6, readback, Reverse Y, S03SIM-EA-FSCN-02:ROI6:ReverseY_RBV +# % gui, FSCN2.rois.roi6, readback, Bytes Y, S03SIM-EA-FSCN-02:ROI6:ArraySizeY_RBV +# Z region +# % gui, FSCN2.rois.roi6, groupHeading, Z Region +# % gui, FSCN2.rois.roi6, enum, Z, S03SIM-EA-FSCN-02:ROI6:EnableZ +# % gui, FSCN2.rois.roi6, readback, Z, S03SIM-EA-FSCN-02:ROI6:EnableZ_RBV +# % gui, FSCN2.rois.roi6, enum, Autosize Z, S03SIM-EA-FSCN-02:ROI6:AutoSizeZ +# % gui, FSCN2.rois.roi6, readback, Autosize Z, S03SIM-EA-FSCN-02:ROI6:AutoSizeZ_RBV +# % gui, FSCN2.rois.roi6, readback, Input size Z, S03SIM-EA-FSCN-02:ROI6:MaxSizeZ_RBV +# % gui, FSCN2.rois.roi6, demand, Binning Z, S03SIM-EA-FSCN-02:ROI6:BinZ +# % gui, FSCN2.rois.roi6, readback, Binning Z, S03SIM-EA-FSCN-02:ROI6:BinZ_RBV +# % gui, FSCN2.rois.roi6, demand, Start Z, S03SIM-EA-FSCN-02:ROI6:MinZ +# % gui, FSCN2.rois.roi6, readback, Start Z, S03SIM-EA-FSCN-02:ROI6:MinZ_RBV +# % gui, FSCN2.rois.roi6, demand, Size Z, S03SIM-EA-FSCN-02:ROI6:SizeZ +# % gui, FSCN2.rois.roi6, readback, Size Z, S03SIM-EA-FSCN-02:ROI6:SizeZ_RBV +# % gui, FSCN2.rois.roi6, enum, Reverse Z, S03SIM-EA-FSCN-02:ROI6:ReverseZ +# % gui, FSCN2.rois.roi6, readback, Reverse Z, S03SIM-EA-FSCN-02:ROI6:ReverseZ_RBV +# % gui, FSCN2.rois.roi6, readback, Bytes Z, S03SIM-EA-FSCN-02:ROI6:ArraySizeZ_RBV +# Memory +# % gui, FSCN2.rois.roi6, groupHeading, Memory +# % gui, FSCN2.rois.roi6, readback, Max memory, S03SIM-EA-FSCN-02:ROI6:PoolMaxMem +# % gui, FSCN2.rois.roi6, readback, Max buffers, S03SIM-EA-FSCN-02:ROI6:PoolMaxBuffers +# % gui, FSCN2.rois.roi6, readback, Used memory, S03SIM-EA-FSCN-02:ROI6:PoolUsedMem +# % gui, FSCN2.rois.roi6, readback, Allocated buffers, S03SIM-EA-FSCN-02:ROI6:PoolAllocBuffers +# % gui, FSCN2.rois.roi6, readback, Free buffers, S03SIM-EA-FSCN-02:ROI6:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI6:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI6:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI6:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI6:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI6:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI6:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI6:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI6:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ROI6:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI6:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI6:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI6:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:ROI6:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI6:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI6:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI6:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:ROI6:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:ROI6:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI6:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:ROI6:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:ROI6:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:ROI6:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:ROI6:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ROI6:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI6:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ROI6:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI6:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:ROI6:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI6:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:ROI6:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:ROI6:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI6:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:ROI6:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:ROI6:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI6:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI6:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:ROI6:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:ROI6:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:ROI6:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:ROI6:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI6:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:ROI6:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI6:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:ROI6:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI6:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ROI6:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:ROI6:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI6:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI6:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI6:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI6:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI6:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI6:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI6:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:ROI6:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI6:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI6:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:ROI6:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:ROI6:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:ROI6:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI6:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI6:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:ROI6:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI6:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ROI6:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI6:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:ROI6:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI6:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI6:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:ROI6:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI6:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:ROI6:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:ROI6:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI6:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:ROI6:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:ROI6:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI6:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:ROI6:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:ROI6:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:ROI6:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI6:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:ROI6:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI6:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI6:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI6:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI6:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ROI6:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:ROI6:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:ROI6:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI6:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI6:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:ROI6:AsynIO") +{ + field(PORT, "FSCN2.rois.roi6") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the label for the ROI # +################################################################### +record(stringout, "S03SIM-EA-FSCN-02:ROI6:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)NAME") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:ROI6:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)NAME") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the ROI definition # +# including binning, region start and size # +################################################################### + +record(longout, "S03SIM-EA-FSCN-02:ROI6:BinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM0_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:BinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM0_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI6:BinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM1_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:BinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM1_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI6:BinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM2_BIN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:BinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM2_BIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI6:MinX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM0_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:MinX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM0_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI6:MinY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM1_MIN") + field(LOPR, "0") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:MinY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM1_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI6:MinZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM2_MIN") + field(LOPR, "1") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:MinZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM2_MIN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI6:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM0_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM0_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI6:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM1_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM1_SIZE") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ROI6:SizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM2_SIZE") + field(VAL, "1000000") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:SizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM2_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI6:AutoSizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM0_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI6:AutoSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM0_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI6:AutoSizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM1_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI6:AutoSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM1_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI6:AutoSizeZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM2_AUTO_SIZE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI6:AutoSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM2_AUTO_SIZE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM0_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM1_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:MaxSizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM2_MAX_SIZE") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI6:ReverseX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM0_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI6:ReverseX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM0_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI6:ReverseY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM1_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI6:ReverseY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM1_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI6:ReverseZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM2_REVERSE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI6:ReverseZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM2_REVERSE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI6:EnableX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM0_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI6:EnableX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM0_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI6:EnableY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM1_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI6:EnableY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM1_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:ROI6:EnableZ") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM2_ENABLE") + field(VAL, "1") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI6:EnableZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM2_ENABLE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the scaling of the data. Useful when # +# binning or converting data types # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ROI6:EnableScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)ENABLE_SCALE") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI6:EnableScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)ENABLE_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ROI6:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)SCALE_VALUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ROI6:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)SCALE_VALUE") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ROI6:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ROI6:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)ROI_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-02:ROI6:MaxX") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:ROI6:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:ROI6:MaxX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:ROI6:MinX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:ROI6:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:ROI6:MaxY") +{ + field(INP, "S03SIM-EA-FSCN-02:ROI6:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:ROI6:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:ROI6:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:ROI6:MaxY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:ROI6:MinY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:ROI6:SizeY.HOPR NPP") +} + +################################################################### +# These records whether dimensions of 1 are collapsed (removed) # # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ROI6:CollapseDims") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.rois.roi6,0,1)COLLAPSE_DIMS") + field(VAL, "0") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ROI6:CollapseDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.rois.roi6,0,1)COLLAPSE_DIMS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +#=================================================================# +# Template file: NDStats.template + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, NCHANS, Number of channels +# % macro, XSIZE, x size +# % macro, YSIZE, y size +# % macro, HIST_SIZE, hist size +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Timeout +# % macro, TS_PORT, TS port + +# This associates the template with an edm screen +# % gui, OAV.stat, edmtab, NDStats.edl, P=S03SIM-DI-OAV-01,R=:STAT: + +# This associates a BOY screen with the template +# % gui, OAV.stat, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-DI-OAV-01, R=:STAT:, DESC=Statistics +# % gui, OAV.stat, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-DI-OAV-01, R=:STAT:, DESC=Statistics +# % gui, OAV.stat, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-DI-OAV-01, R=:STAT:, DESC=Statistics + + +# % gui, OAV.stat, groupHeading, Info +# % gui, OAV.stat, readback, Port name, S03SIM-DI-OAV-01:STAT:PortName_RBV +# % gui, OAV.stat, readback, Plugin type, S03SIM-DI-OAV-01:STAT:PluginType_RBV +# Input +# % gui, OAV.stat, demandString, Input, S03SIM-DI-OAV-01:STAT:NDArrayPort +# % gui, OAV.stat, readback, Input, S03SIM-DI-OAV-01:STAT:NDArrayPort_RBV + +# % gui, OAV.stat, groupHeading, Callback +# % gui, OAV.stat, enum, Callbacks, S03SIM-DI-OAV-01:STAT:EnableCallbacks +# % gui, OAV.stat, statusbits, Callbacks, S03SIM-DI-OAV-01:STAT:EnableCallbacks_RBV +# % gui, OAV.stat, demand, Min Callback Time, S03SIM-DI-OAV-01:STAT:MinCallbackTime +# % gui, OAV.stat, readback, Min Callback Time, S03SIM-DI-OAV-01:STAT:MinCallbackTime_RBV +# % gui, OAV.stat, enum, Block Callbacks, S03SIM-DI-OAV-01:STAT:BlockingCallbacks +# % gui, OAV.stat, statusbits, Block Callbacks, S03SIM-DI-OAV-01:STAT:BlockingCallbacks_RBV + +# % gui, OAV.stat, groupHeading, Counters +# % gui, OAV.stat, demand, Array Counter, S03SIM-DI-OAV-01:STAT:ArrayCounter +# % gui, OAV.stat, readback, Array Counter, S03SIM-DI-OAV-01:STAT:ArrayCounter_RBV +# % gui, OAV.stat, readback, Array Rate (fps), S03SIM-DI-OAV-01:STAT:ArrayRate_RBV +# % gui, OAV.stat, readback, Queue Use, S03SIM-DI-OAV-01:STAT:QueueUse +# % gui, OAV.stat, readback, Queue Size, S03SIM-DI-OAV-01:STAT:QueueSize +# % gui, OAV.stat, demand, Dropped Arrays, S03SIM-DI-OAV-01:STAT:DroppedArrays +# % gui, OAV.stat, readback, Dropped Arrays, S03SIM-DI-OAV-01:STAT:DroppedArrays_RBV + +# % gui, OAV.stat, groupHeading, Array Settings +# % gui, OAV.stat, readback, Num Dimensions, S03SIM-DI-OAV-01:STAT:NDimensions_RBV +# % gui, OAV.stat, readback, Dim 0 Size, S03SIM-DI-OAV-01:STAT:ArraySize0_RBV +# % gui, OAV.stat, readback, Dim 1 Size, S03SIM-DI-OAV-01:STAT:ArraySize1_RBV +# % gui, OAV.stat, readback, Dim 2 Size, S03SIM-DI-OAV-01:STAT:ArraySize2_RBV +# % gui, OAV.stat, readback, Input Data Type, S03SIM-DI-OAV-01:STAT:DataType_RBV +# % gui, OAV.stat, readback, Colour Mode, S03SIM-DI-OAV-01:STAT:ColorMode_RBV +# % gui, OAV.stat, readback, Bayer Pattern, S03SIM-DI-OAV-01:STAT:BayerPattern_RBV +# % gui, OAV.stat, readback, Unique id, S03SIM-DI-OAV-01:STAT:UniqueId_RBV +# % gui, OAV.stat, readback, Timestamp, S03SIM-DI-OAV-01:STAT:TimeStamp_RBV + +# Output +# % gui, OAV.stat, groupHeading, Output +# % gui, OAV.stat, demand, Name, S03SIM-DI-OAV-01:STAT:Name +# % gui, OAV.stat, enum, Out data type, S03SIM-DI-OAV-01:STAT:DataTypeOut +# % gui, OAV.stat, readback, Out data type, S03SIM-DI-OAV-01:STAT:DataTypeOut_RBV +# % gui, OAV.stat, demand, Attributes file, S03SIM-DI-OAV-01:STAT:NDAttributesFile + +# Statistics +# % gui, OAV.stat, groupHeading, Statistics +# % gui, OAV.stat, enum, Compute Statistics, S03SIM-DI-OAV-01:STAT:ComputeStatistics +# % gui, OAV.stat, statusbits, Compute Statistics, S03SIM-DI-OAV-01:STAT:ComputeStatistics_RBV +# % gui, OAV.stat, demand, Background Width, S03SIM-DI-OAV-01:STAT:BgdWidth +# % gui, OAV.stat, readback, Background Width, S03SIM-DI-OAV-01:STAT:BgdWidth_RBV +# % gui, OAV.stat, readback, Minimum Value, S03SIM-DI-OAV-01:STAT:MinValue_RBV +# % gui, OAV.stat, readback, Minimum X, S03SIM-DI-OAV-01:STAT:MinX_RBV +# % gui, OAV.stat, readback, Minimum Y, S03SIM-DI-OAV-01:STAT:MinY_RBV +# % gui, OAV.stat, readback, Maximum Value, S03SIM-DI-OAV-01:STAT:MaxValue_RBV +# % gui, OAV.stat, readback, Maximum X, S03SIM-DI-OAV-01:STAT:MaxX_RBV +# % gui, OAV.stat, readback, Maximum Y, S03SIM-DI-OAV-01:STAT:MaxY_RBV +# % gui, OAV.stat, readback, Mean Value, S03SIM-DI-OAV-01:STAT:MeanValue_RBV +# % gui, OAV.stat, readback, Total, S03SIM-DI-OAV-01:STAT:Total_RBV +# % gui, OAV.stat, readback, Sigma, S03SIM-DI-OAV-01:STAT:Sigma_RBV +# % gui, OAV.stat, readback, Net, S03SIM-DI-OAV-01:STAT:Net_RBV +# Centroid +# % gui, OAV.stat, groupHeading, Centroid +# % gui, OAV.stat, enum, Compute Centroid, S03SIM-DI-OAV-01:STAT:ComputeCentroid +# % gui, OAV.stat, statusbits, Compute Centroid, S03SIM-DI-OAV-01:STAT:ComputeCentroid_RBV +# % gui, OAV.stat, demand, Threshold, S03SIM-DI-OAV-01:STAT:CentroidThreshold +# % gui, OAV.stat, readback, Threshold, S03SIM-DI-OAV-01:STAT:CentroidThreshold_RBV +# % gui, OAV.stat, readback, X, S03SIM-DI-OAV-01:STAT:CentroidX_RBV +# % gui, OAV.stat, readback, Sigma X, S03SIM-DI-OAV-01:STAT:SigmaX_RBV +# % gui, OAV.stat, readback, Y, S03SIM-DI-OAV-01:STAT:CentroidY_RBV +# % gui, OAV.stat, readback, Sigma Y, S03SIM-DI-OAV-01:STAT:SigmaY_RBV +# % gui, OAV.stat, readback, Sigma XY, S03SIM-DI-OAV-01:STAT:SigmaXY_RBV +# Histogram +# % gui, OAV.stat, groupHeading, Histogram +# % gui, OAV.stat, enum, Compute Histogram, S03SIM-DI-OAV-01:STAT:ComputeHistogram +# % gui, OAV.stat, statusbits, Compute Histogram, S03SIM-DI-OAV-01:STAT:ComputeHistogram_RBV +# % gui, OAV.stat, demand, Histogram Size, S03SIM-DI-OAV-01:STAT:HistSize +# % gui, OAV.stat, readback, Histogram Size, S03SIM-DI-OAV-01:STAT:HistSize_RBV +# % gui, OAV.stat, demand, Histogram Min, S03SIM-DI-OAV-01:STAT:HistMin +# % gui, OAV.stat, readback, Histogram Min, S03SIM-DI-OAV-01:STAT:HistMin_RBV +# % gui, OAV.stat, demand, Histogram Max, S03SIM-DI-OAV-01:STAT:HistMax +# % gui, OAV.stat, readback, Histogram Max, S03SIM-DI-OAV-01:STAT:HistMax_RBV +# % gui, OAV.stat, readback, Histogram Entropy, S03SIM-DI-OAV-01:STAT:HistEntropy_RBV +# Profiles +# % gui, OAV.stat, groupHeading, Profiles +# % gui, OAV.stat, enum, Compute Profiles, S03SIM-DI-OAV-01:STAT:ComputeProfiles +# % gui, OAV.stat, statusbits, Compute Profiles, S03SIM-DI-OAV-01:STAT:ComputeProfiles_RBV +# % gui, OAV.stat, demand, Cursor X, S03SIM-DI-OAV-01:STAT:CursorX +# % gui, OAV.stat, readback, Cursor X, S03SIM-DI-OAV-01:STAT:CursorX_RBV +# % gui, OAV.stat, demand, Cursor Y, S03SIM-DI-OAV-01:STAT:CursorY +# % gui, OAV.stat, readback, Cursor Y, S03SIM-DI-OAV-01:STAT:CursorY_RBV +# % gui, OAV.stat, readback, Size X, S03SIM-DI-OAV-01:STAT:ProfileSizeX_RBV +# % gui, OAV.stat, readback, Size Y, S03SIM-DI-OAV-01:STAT:ProfileSizeY_RBV +# Time series +# % gui, OAV.stat, groupHeading, Time Series +# % gui, OAV.stat, enum, Time Control, S03SIM-DI-OAV-01:STAT:TS:TSAcquire +# % gui, OAV.stat, statusbits, Acquiring, S03SIM-DI-OAV-01:STAT:TS:TSAcquiring +# % gui, OAV.stat, readback, Current Point, S03SIM-DI-OAV-01:STAT:TS:TSCurrentPoint +# % gui, OAV.stat, demand, Number of Points, S03SIM-DI-OAV-01:STAT:TS:TSNumPoints +# % gui, OAV.stat, enum, Update, S03SIM-DI-OAV-01:STAT:TS:TSRead.SCAN +# Memory +# % gui, OAV.stat, groupHeading, Memory +# % gui, OAV.stat, readback, Max memory, S03SIM-DI-OAV-01:STAT:PoolMaxMem +# % gui, OAV.stat, readback, Max buffers, S03SIM-DI-OAV-01:STAT:PoolMaxBuffers +# % gui, OAV.stat, readback, Used memory, S03SIM-DI-OAV-01:STAT:PoolUsedMem +# % gui, OAV.stat, readback, Allocated buffers, S03SIM-DI-OAV-01:STAT:PoolAllocBuffers +# % gui, OAV.stat, readback, Free buffers, S03SIM-DI-OAV-01:STAT:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stat,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stat,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stat,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stat,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stat,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stat,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stat,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stat,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:STAT:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:STAT:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:STAT:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:STAT:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:STAT:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:STAT:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:STAT:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:STAT:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:STAT:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:STAT:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.stat,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.stat,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:STAT:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:STAT:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stat,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:STAT:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:STAT:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:STAT:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:STAT:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:STAT:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:STAT:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:STAT:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:STAT:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:STAT:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:STAT:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.stat,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:STAT:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.stat,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:STAT:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:STAT:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:STAT:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:STAT:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:STAT:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:STAT:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:STAT:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:STAT:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stat,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:STAT:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.stat,0,1)NDARRAY_PORT") + field(VAL, "OAV.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stat,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:STAT:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:STAT:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:STAT:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:STAT:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:STAT:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:STAT:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:STAT:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:STAT:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:STAT:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:STAT:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:STAT:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:STAT:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:STAT:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:STAT:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:STAT:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:STAT:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:STAT:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:STAT:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:STAT:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:STAT:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:STAT:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:STAT:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:STAT:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:STAT:SortSize") + field(OUT, "S03SIM-DI-OAV-01:STAT:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:STAT:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:STAT:AsynIO") +{ + field(PORT, "OAV.stat") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records contain the basic statistics # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT:ComputeStatistics") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)COMPUTE_STATISTICS") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT:ComputeStatistics_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)COMPUTE_STATISTICS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT:BgdWidth") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)BGD_WIDTH") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:BgdWidth_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)BGD_WIDTH") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:MinValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)MIN_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:MinValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)MIN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:MaxValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)MAX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:MaxValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)MAX_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:MeanValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)MEAN_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:MeanValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)MEAN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:SigmaValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)SIGMA_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:Sigma_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)SIGMA_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:Total") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)TOTAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:Total_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:Net") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)NET") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:Net_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)NET") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:MinX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)MIN_X") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:MinX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:MinY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)MIN_Y") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:MinY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:MaxX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)MAX_X") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:MaxX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)MAX_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:MaxY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)MAX_Y") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:MaxY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)MAX_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether centroid statistics are computed # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT:ComputeCentroid") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)COMPUTE_CENTROID") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT:ComputeCentroid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)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, "S03SIM-DI-OAV-01:STAT:CentroidThreshold") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)CENTROID_THRESHOLD") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:CentroidThreshold_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)CENTROID_THRESHOLD") + field(VAL, "0") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:CentroidTotal") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)CENTROID_TOTAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:CentroidTotal_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)CENTROID_TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:CentroidX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)CENTROIDX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:CentroidX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)CENTROIDX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:CentroidY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)CENTROIDY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:CentroidY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)CENTROIDY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:SigmaX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)SIGMAX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:SigmaX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)SIGMAX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:SigmaY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)SIGMAY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:SigmaY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)SIGMAY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:SigmaXY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)SIGMAXY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:SigmaXY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)SIGMAXY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:SkewX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)SKEWX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:SkewX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)SKEWX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:SkewY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)SKEWY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:SkewY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)SKEWY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:KurtosisX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)KURTOSISX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:KurtosisX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)KURTOSISX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:KurtosisY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)KURTOSISY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:KurtosisY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)KURTOSISY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:Eccentricity") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)ECCENTRICITY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:Eccentricity_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)ECCENTRICITY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:Orientation") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)ORIENTATION_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:Orientation_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)ORIENTATION_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control time series # +################################################################### +record(waveform, "S03SIM-DI-OAV-01:STAT:TSMinValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,0,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSMinX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,1,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSMinY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,2,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSMaxValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,3,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSMaxX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,4,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSMaxY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,5,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSMeanValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,6,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSSigma") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,7,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,8,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSNet") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,9,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSCentroidTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,10,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSCentroidX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,11,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSCentroidY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,12,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSSigmaX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,13,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSSigmaY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,14,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSSigmaXY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,15,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSSkewX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,16,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSSkewY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,17,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSKurtosisX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,18,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSKurtosisY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,19,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSEccentricity") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,20,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSOrientation") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,21,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:TSTimestamp") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat_TS,22,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control profiles # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT:ComputeProfiles") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)COMPUTE_PROFILES") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT:ComputeProfiles_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)COMPUTE_PROFILES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ProfileSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)PROFILE_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:ProfileSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)PROFILE_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT:CursorX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)CURSOR_X") + field(VAL, "256") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:CursorX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)CURSOR_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT:CursorY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)CURSOR_Y") + field(VAL, "256") + field(FLNK, "S03SIM-DI-OAV-01:STAT:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:CursorY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)CURSOR_Y") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:CursorVal") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)CURSOR_VAL") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:ProfileAverageX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat,0,1)PROFILE_AVERAGE_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:ProfileAverageY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat,0,1)PROFILE_AVERAGE_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:ProfileThresholdX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat,0,1)PROFILE_THRESHOLD_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:ProfileThresholdY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat,0,1)PROFILE_THRESHOLD_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:ProfileCentroidX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat,0,1)PROFILE_CENTROID_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:ProfileCentroidY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat,0,1)PROFILE_CENTROID_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:ProfileCursorX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat,0,1)PROFILE_CURSOR_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:ProfileCursorY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat,0,1)PROFILE_CURSOR_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These are used to define the histogram # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT:ComputeHistogram") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)COMPUTE_HISTOGRAM") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT:ComputeHistogram_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)COMPUTE_HISTOGRAM") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT:HistSize") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)HIST_SIZE") + field(VAL, "256") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:HistSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)HIST_SIZE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:HistMin") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)HIST_MIN") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:HistMin_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)HIST_MIN") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:HistMax") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)HIST_MAX") + field(VAL, "255") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:HistMax_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)HIST_MAX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT:HistBelow") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)HIST_BELOW") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:HistBelow_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)HIST_BELOW") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT:HistAbove") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stat,0,1)HIST_ABOVE") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:HistAbove_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stat,0,1)HIST_ABOVE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT:HistEntropy") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stat,0,1)HIST_ENTROPY") +} + +record(ai, "S03SIM-DI-OAV-01:STAT:HistEntropy_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stat,0,1)HIST_ENTROPY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:Histogram_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat,0,1)HIST_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT:HistogramX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stat,0,1)HIST_X_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + 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, "S03SIM-DI-OAV-01:STAT:MaxSizeX") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:ProfileSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:STAT:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:STAT:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:STAT:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:STAT:CursorX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:STAT:MaxSizeY") +{ + field(INP, "S03SIM-DI-OAV-01:STAT:ProfileSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:STAT:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:STAT:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:STAT:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:STAT:CursorY.HOPR NPP") +} + +################################################################### +# These records reset the statistics # +################################################################### +record(sseq, "S03SIM-DI-OAV-01:STAT:Reset") +{ + field(LNK1, "S03SIM-DI-OAV-01:STAT:MinValue PP MS") + field(LNK2, "S03SIM-DI-OAV-01:STAT:MaxValue PP MS") + field(LNK3, "S03SIM-DI-OAV-01:STAT:MeanValue PP MS") + field(LNK4, "S03SIM-DI-OAV-01:STAT:SigmaValue PP MS") + field(LNK5, "S03SIM-DI-OAV-01:STAT:Total PP MS") + field(LNK6, "S03SIM-DI-OAV-01:STAT:Net PP MS") + field(LNK7, "S03SIM-DI-OAV-01:STAT:MinX PP MS") + field(LNK8, "S03SIM-DI-OAV-01:STAT:MinY PP MS") + field(LNK9, "S03SIM-DI-OAV-01:STAT:MaxX PP MS") + field(LNKA, "S03SIM-DI-OAV-01:STAT:MaxY PP MS") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Reset1") +} + +record(sseq, "S03SIM-DI-OAV-01:STAT:Reset1") +{ + field(LNK1, "S03SIM-DI-OAV-01:STAT:CentroidX PP MS") + field(LNK2, "S03SIM-DI-OAV-01:STAT:CentroidY PP MS") + field(LNK3, "S03SIM-DI-OAV-01:STAT:SigmaX PP MS") + field(LNK4, "S03SIM-DI-OAV-01:STAT:SigmaY PP MS") + field(LNK5, "S03SIM-DI-OAV-01:STAT:SigmaXY PP MS") + field(LNK6, "S03SIM-DI-OAV-01:STAT:CentroidTotal PP MS") + field(LNK7, "S03SIM-DI-OAV-01:STAT:SkewX PP MS") + field(LNK8, "S03SIM-DI-OAV-01:STAT:SkewY PP MS") + field(LNK9, "S03SIM-DI-OAV-01:STAT:KurtosisX PP MS") + field(LNKA, "S03SIM-DI-OAV-01:STAT:KurtosisY PP MS") + field(FLNK, "S03SIM-DI-OAV-01:STAT:Reset2") +} + +record(sseq, "S03SIM-DI-OAV-01:STAT:Reset2") +{ + field(LNK1, "S03SIM-DI-OAV-01:STAT:Eccentricity PP MS") + field(LNK2, "S03SIM-DI-OAV-01:STAT:Orientation PP MS") + field(LNK3, "S03SIM-DI-OAV-01:STAT:HistBelow PP MS") + field(LNK4, "S03SIM-DI-OAV-01:STAT:HistAbove PP MS") + field(LNK5, "S03SIM-DI-OAV-01:STAT:HistEntropy PP MS") +} + +#=================================================================# +# Template file: NDStats.template + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, NCHANS, Number of channels +# % macro, XSIZE, x size +# % macro, YSIZE, y size +# % macro, HIST_SIZE, hist size +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Timeout +# % macro, TS_PORT, TS port + +# This associates the template with an edm screen +# % gui, OAV.stats.stat1, edmtab, NDStats.edl, P=S03SIM-DI-OAV-01,R=:STAT1: + +# This associates a BOY screen with the template +# % gui, OAV.stats.stat1, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-DI-OAV-01, R=:STAT1:, DESC=Statistics +# % gui, OAV.stats.stat1, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-DI-OAV-01, R=:STAT1:, DESC=Statistics +# % gui, OAV.stats.stat1, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-DI-OAV-01, R=:STAT1:, DESC=Statistics + + +# % gui, OAV.stats.stat1, groupHeading, Info +# % gui, OAV.stats.stat1, readback, Port name, S03SIM-DI-OAV-01:STAT1:PortName_RBV +# % gui, OAV.stats.stat1, readback, Plugin type, S03SIM-DI-OAV-01:STAT1:PluginType_RBV +# Input +# % gui, OAV.stats.stat1, demandString, Input, S03SIM-DI-OAV-01:STAT1:NDArrayPort +# % gui, OAV.stats.stat1, readback, Input, S03SIM-DI-OAV-01:STAT1:NDArrayPort_RBV + +# % gui, OAV.stats.stat1, groupHeading, Callback +# % gui, OAV.stats.stat1, enum, Callbacks, S03SIM-DI-OAV-01:STAT1:EnableCallbacks +# % gui, OAV.stats.stat1, statusbits, Callbacks, S03SIM-DI-OAV-01:STAT1:EnableCallbacks_RBV +# % gui, OAV.stats.stat1, demand, Min Callback Time, S03SIM-DI-OAV-01:STAT1:MinCallbackTime +# % gui, OAV.stats.stat1, readback, Min Callback Time, S03SIM-DI-OAV-01:STAT1:MinCallbackTime_RBV +# % gui, OAV.stats.stat1, enum, Block Callbacks, S03SIM-DI-OAV-01:STAT1:BlockingCallbacks +# % gui, OAV.stats.stat1, statusbits, Block Callbacks, S03SIM-DI-OAV-01:STAT1:BlockingCallbacks_RBV + +# % gui, OAV.stats.stat1, groupHeading, Counters +# % gui, OAV.stats.stat1, demand, Array Counter, S03SIM-DI-OAV-01:STAT1:ArrayCounter +# % gui, OAV.stats.stat1, readback, Array Counter, S03SIM-DI-OAV-01:STAT1:ArrayCounter_RBV +# % gui, OAV.stats.stat1, readback, Array Rate (fps), S03SIM-DI-OAV-01:STAT1:ArrayRate_RBV +# % gui, OAV.stats.stat1, readback, Queue Use, S03SIM-DI-OAV-01:STAT1:QueueUse +# % gui, OAV.stats.stat1, readback, Queue Size, S03SIM-DI-OAV-01:STAT1:QueueSize +# % gui, OAV.stats.stat1, demand, Dropped Arrays, S03SIM-DI-OAV-01:STAT1:DroppedArrays +# % gui, OAV.stats.stat1, readback, Dropped Arrays, S03SIM-DI-OAV-01:STAT1:DroppedArrays_RBV + +# % gui, OAV.stats.stat1, groupHeading, Array Settings +# % gui, OAV.stats.stat1, readback, Num Dimensions, S03SIM-DI-OAV-01:STAT1:NDimensions_RBV +# % gui, OAV.stats.stat1, readback, Dim 0 Size, S03SIM-DI-OAV-01:STAT1:ArraySize0_RBV +# % gui, OAV.stats.stat1, readback, Dim 1 Size, S03SIM-DI-OAV-01:STAT1:ArraySize1_RBV +# % gui, OAV.stats.stat1, readback, Dim 2 Size, S03SIM-DI-OAV-01:STAT1:ArraySize2_RBV +# % gui, OAV.stats.stat1, readback, Input Data Type, S03SIM-DI-OAV-01:STAT1:DataType_RBV +# % gui, OAV.stats.stat1, readback, Colour Mode, S03SIM-DI-OAV-01:STAT1:ColorMode_RBV +# % gui, OAV.stats.stat1, readback, Bayer Pattern, S03SIM-DI-OAV-01:STAT1:BayerPattern_RBV +# % gui, OAV.stats.stat1, readback, Unique id, S03SIM-DI-OAV-01:STAT1:UniqueId_RBV +# % gui, OAV.stats.stat1, readback, Timestamp, S03SIM-DI-OAV-01:STAT1:TimeStamp_RBV + +# Output +# % gui, OAV.stats.stat1, groupHeading, Output +# % gui, OAV.stats.stat1, demand, Name, S03SIM-DI-OAV-01:STAT1:Name +# % gui, OAV.stats.stat1, enum, Out data type, S03SIM-DI-OAV-01:STAT1:DataTypeOut +# % gui, OAV.stats.stat1, readback, Out data type, S03SIM-DI-OAV-01:STAT1:DataTypeOut_RBV +# % gui, OAV.stats.stat1, demand, Attributes file, S03SIM-DI-OAV-01:STAT1:NDAttributesFile + +# Statistics +# % gui, OAV.stats.stat1, groupHeading, Statistics +# % gui, OAV.stats.stat1, enum, Compute Statistics, S03SIM-DI-OAV-01:STAT1:ComputeStatistics +# % gui, OAV.stats.stat1, statusbits, Compute Statistics, S03SIM-DI-OAV-01:STAT1:ComputeStatistics_RBV +# % gui, OAV.stats.stat1, demand, Background Width, S03SIM-DI-OAV-01:STAT1:BgdWidth +# % gui, OAV.stats.stat1, readback, Background Width, S03SIM-DI-OAV-01:STAT1:BgdWidth_RBV +# % gui, OAV.stats.stat1, readback, Minimum Value, S03SIM-DI-OAV-01:STAT1:MinValue_RBV +# % gui, OAV.stats.stat1, readback, Minimum X, S03SIM-DI-OAV-01:STAT1:MinX_RBV +# % gui, OAV.stats.stat1, readback, Minimum Y, S03SIM-DI-OAV-01:STAT1:MinY_RBV +# % gui, OAV.stats.stat1, readback, Maximum Value, S03SIM-DI-OAV-01:STAT1:MaxValue_RBV +# % gui, OAV.stats.stat1, readback, Maximum X, S03SIM-DI-OAV-01:STAT1:MaxX_RBV +# % gui, OAV.stats.stat1, readback, Maximum Y, S03SIM-DI-OAV-01:STAT1:MaxY_RBV +# % gui, OAV.stats.stat1, readback, Mean Value, S03SIM-DI-OAV-01:STAT1:MeanValue_RBV +# % gui, OAV.stats.stat1, readback, Total, S03SIM-DI-OAV-01:STAT1:Total_RBV +# % gui, OAV.stats.stat1, readback, Sigma, S03SIM-DI-OAV-01:STAT1:Sigma_RBV +# % gui, OAV.stats.stat1, readback, Net, S03SIM-DI-OAV-01:STAT1:Net_RBV +# Centroid +# % gui, OAV.stats.stat1, groupHeading, Centroid +# % gui, OAV.stats.stat1, enum, Compute Centroid, S03SIM-DI-OAV-01:STAT1:ComputeCentroid +# % gui, OAV.stats.stat1, statusbits, Compute Centroid, S03SIM-DI-OAV-01:STAT1:ComputeCentroid_RBV +# % gui, OAV.stats.stat1, demand, Threshold, S03SIM-DI-OAV-01:STAT1:CentroidThreshold +# % gui, OAV.stats.stat1, readback, Threshold, S03SIM-DI-OAV-01:STAT1:CentroidThreshold_RBV +# % gui, OAV.stats.stat1, readback, X, S03SIM-DI-OAV-01:STAT1:CentroidX_RBV +# % gui, OAV.stats.stat1, readback, Sigma X, S03SIM-DI-OAV-01:STAT1:SigmaX_RBV +# % gui, OAV.stats.stat1, readback, Y, S03SIM-DI-OAV-01:STAT1:CentroidY_RBV +# % gui, OAV.stats.stat1, readback, Sigma Y, S03SIM-DI-OAV-01:STAT1:SigmaY_RBV +# % gui, OAV.stats.stat1, readback, Sigma XY, S03SIM-DI-OAV-01:STAT1:SigmaXY_RBV +# Histogram +# % gui, OAV.stats.stat1, groupHeading, Histogram +# % gui, OAV.stats.stat1, enum, Compute Histogram, S03SIM-DI-OAV-01:STAT1:ComputeHistogram +# % gui, OAV.stats.stat1, statusbits, Compute Histogram, S03SIM-DI-OAV-01:STAT1:ComputeHistogram_RBV +# % gui, OAV.stats.stat1, demand, Histogram Size, S03SIM-DI-OAV-01:STAT1:HistSize +# % gui, OAV.stats.stat1, readback, Histogram Size, S03SIM-DI-OAV-01:STAT1:HistSize_RBV +# % gui, OAV.stats.stat1, demand, Histogram Min, S03SIM-DI-OAV-01:STAT1:HistMin +# % gui, OAV.stats.stat1, readback, Histogram Min, S03SIM-DI-OAV-01:STAT1:HistMin_RBV +# % gui, OAV.stats.stat1, demand, Histogram Max, S03SIM-DI-OAV-01:STAT1:HistMax +# % gui, OAV.stats.stat1, readback, Histogram Max, S03SIM-DI-OAV-01:STAT1:HistMax_RBV +# % gui, OAV.stats.stat1, readback, Histogram Entropy, S03SIM-DI-OAV-01:STAT1:HistEntropy_RBV +# Profiles +# % gui, OAV.stats.stat1, groupHeading, Profiles +# % gui, OAV.stats.stat1, enum, Compute Profiles, S03SIM-DI-OAV-01:STAT1:ComputeProfiles +# % gui, OAV.stats.stat1, statusbits, Compute Profiles, S03SIM-DI-OAV-01:STAT1:ComputeProfiles_RBV +# % gui, OAV.stats.stat1, demand, Cursor X, S03SIM-DI-OAV-01:STAT1:CursorX +# % gui, OAV.stats.stat1, readback, Cursor X, S03SIM-DI-OAV-01:STAT1:CursorX_RBV +# % gui, OAV.stats.stat1, demand, Cursor Y, S03SIM-DI-OAV-01:STAT1:CursorY +# % gui, OAV.stats.stat1, readback, Cursor Y, S03SIM-DI-OAV-01:STAT1:CursorY_RBV +# % gui, OAV.stats.stat1, readback, Size X, S03SIM-DI-OAV-01:STAT1:ProfileSizeX_RBV +# % gui, OAV.stats.stat1, readback, Size Y, S03SIM-DI-OAV-01:STAT1:ProfileSizeY_RBV +# Time series +# % gui, OAV.stats.stat1, groupHeading, Time Series +# % gui, OAV.stats.stat1, enum, Time Control, S03SIM-DI-OAV-01:STAT1:TS:TSAcquire +# % gui, OAV.stats.stat1, statusbits, Acquiring, S03SIM-DI-OAV-01:STAT1:TS:TSAcquiring +# % gui, OAV.stats.stat1, readback, Current Point, S03SIM-DI-OAV-01:STAT1:TS:TSCurrentPoint +# % gui, OAV.stats.stat1, demand, Number of Points, S03SIM-DI-OAV-01:STAT1:TS:TSNumPoints +# % gui, OAV.stats.stat1, enum, Update, S03SIM-DI-OAV-01:STAT1:TS:TSRead.SCAN +# Memory +# % gui, OAV.stats.stat1, groupHeading, Memory +# % gui, OAV.stats.stat1, readback, Max memory, S03SIM-DI-OAV-01:STAT1:PoolMaxMem +# % gui, OAV.stats.stat1, readback, Max buffers, S03SIM-DI-OAV-01:STAT1:PoolMaxBuffers +# % gui, OAV.stats.stat1, readback, Used memory, S03SIM-DI-OAV-01:STAT1:PoolUsedMem +# % gui, OAV.stats.stat1, readback, Allocated buffers, S03SIM-DI-OAV-01:STAT1:PoolAllocBuffers +# % gui, OAV.stats.stat1, readback, Free buffers, S03SIM-DI-OAV-01:STAT1:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT1:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat1,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT1:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat1,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT1:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat1,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT1:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat1,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT1:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat1,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT1:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat1,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT1:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat1,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT1:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat1,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:STAT1:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:STAT1:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT1:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT1:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:STAT1:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:STAT1:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT1:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:STAT1:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:STAT1:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:STAT1:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:STAT1:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:STAT1:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.stats.stat1,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.stats.stat1,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:STAT1:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:STAT1:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat1,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:STAT1:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:STAT1:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:STAT1:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:STAT1:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:STAT1:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:STAT1:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:STAT1:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT1:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:STAT1:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:STAT1:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT1:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT1:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:STAT1:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.stats.stat1,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:STAT1:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.stats.stat1,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:STAT1:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:STAT1:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:STAT1:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT1:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:STAT1:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:STAT1:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT1:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat1,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:STAT1:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.stats.stat1,0,1)NDARRAY_PORT") + field(VAL, "OAV.rois.roi1") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT1:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat1,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT1:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT1:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT1:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:STAT1:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT1:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT1:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:STAT1:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:STAT1:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT1:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:STAT1:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT1:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT1:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT1:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:STAT1:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT1:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT1:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:STAT1:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:STAT1:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:STAT1:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:STAT1:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:STAT1:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:STAT1:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:STAT1:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:STAT1:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:STAT1:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:STAT1:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:STAT1:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:STAT1:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:STAT1:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:STAT1:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT1:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT1:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:STAT1:SortSize") + field(OUT, "S03SIM-DI-OAV-01:STAT1:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:STAT1:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT1:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:STAT1:AsynIO") +{ + field(PORT, "OAV.stats.stat1") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records contain the basic statistics # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT1:ComputeStatistics") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)COMPUTE_STATISTICS") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT1:ComputeStatistics_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)COMPUTE_STATISTICS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT1:BgdWidth") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)BGD_WIDTH") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:BgdWidth_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)BGD_WIDTH") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:MinValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)MIN_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:MinValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)MIN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:MaxValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)MAX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:MaxValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)MAX_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:MeanValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)MEAN_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:MeanValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)MEAN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:SigmaValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)SIGMA_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:Sigma_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)SIGMA_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:Total") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)TOTAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:Total_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:Net") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)NET") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:Net_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)NET") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:MinX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)MIN_X") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:MinX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:MinY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)MIN_Y") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:MinY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:MaxX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)MAX_X") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:MaxX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)MAX_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:MaxY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)MAX_Y") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:MaxY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)MAX_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether centroid statistics are computed # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT1:ComputeCentroid") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)COMPUTE_CENTROID") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT1:ComputeCentroid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)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, "S03SIM-DI-OAV-01:STAT1:CentroidThreshold") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)CENTROID_THRESHOLD") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:CentroidThreshold_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)CENTROID_THRESHOLD") + field(VAL, "0") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:CentroidTotal") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)CENTROID_TOTAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:CentroidTotal_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)CENTROID_TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:CentroidX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)CENTROIDX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:CentroidX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)CENTROIDX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:CentroidY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)CENTROIDY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:CentroidY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)CENTROIDY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:SigmaX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)SIGMAX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:SigmaX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)SIGMAX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:SigmaY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)SIGMAY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:SigmaY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)SIGMAY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:SigmaXY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)SIGMAXY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:SigmaXY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)SIGMAXY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:SkewX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)SKEWX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:SkewX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)SKEWX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:SkewY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)SKEWY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:SkewY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)SKEWY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:KurtosisX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)KURTOSISX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:KurtosisX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)KURTOSISX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:KurtosisY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)KURTOSISY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:KurtosisY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)KURTOSISY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:Eccentricity") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)ECCENTRICITY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:Eccentricity_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)ECCENTRICITY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:Orientation") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)ORIENTATION_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:Orientation_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)ORIENTATION_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control time series # +################################################################### +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSMinValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,0,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSMinX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,1,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSMinY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,2,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSMaxValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,3,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSMaxX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,4,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSMaxY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,5,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSMeanValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,6,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSSigma") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,7,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,8,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSNet") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,9,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSCentroidTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,10,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSCentroidX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,11,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSCentroidY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,12,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSSigmaX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,13,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSSigmaY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,14,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSSigmaXY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,15,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSSkewX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,16,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSSkewY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,17,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSKurtosisX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,18,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSKurtosisY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,19,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSEccentricity") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,20,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSOrientation") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,21,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:TSTimestamp") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1_TS,22,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control profiles # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT1:ComputeProfiles") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)COMPUTE_PROFILES") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT1:ComputeProfiles_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)COMPUTE_PROFILES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ProfileSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)PROFILE_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:ProfileSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)PROFILE_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT1:CursorX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)CURSOR_X") + field(VAL, "256") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:CursorX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)CURSOR_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT1:CursorY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)CURSOR_Y") + field(VAL, "256") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:CursorY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)CURSOR_Y") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:CursorVal") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)CURSOR_VAL") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:ProfileAverageX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1,0,1)PROFILE_AVERAGE_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:ProfileAverageY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1,0,1)PROFILE_AVERAGE_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:ProfileThresholdX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1,0,1)PROFILE_THRESHOLD_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:ProfileThresholdY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1,0,1)PROFILE_THRESHOLD_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:ProfileCentroidX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1,0,1)PROFILE_CENTROID_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:ProfileCentroidY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1,0,1)PROFILE_CENTROID_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:ProfileCursorX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1,0,1)PROFILE_CURSOR_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:ProfileCursorY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1,0,1)PROFILE_CURSOR_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These are used to define the histogram # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT1:ComputeHistogram") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)COMPUTE_HISTOGRAM") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT1:ComputeHistogram_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)COMPUTE_HISTOGRAM") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT1:HistSize") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)HIST_SIZE") + field(VAL, "256") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:HistSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)HIST_SIZE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:HistMin") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)HIST_MIN") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:HistMin_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)HIST_MIN") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:HistMax") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)HIST_MAX") + field(VAL, "255") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:HistMax_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)HIST_MAX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT1:HistBelow") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)HIST_BELOW") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:HistBelow_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)HIST_BELOW") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT1:HistAbove") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat1,0,1)HIST_ABOVE") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:HistAbove_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat1,0,1)HIST_ABOVE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT1:HistEntropy") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat1,0,1)HIST_ENTROPY") +} + +record(ai, "S03SIM-DI-OAV-01:STAT1:HistEntropy_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat1,0,1)HIST_ENTROPY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:Histogram_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1,0,1)HIST_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT1:HistogramX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat1,0,1)HIST_X_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + 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, "S03SIM-DI-OAV-01:STAT1:MaxSizeX") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:ProfileSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:STAT1:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:STAT1:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:STAT1:CursorX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:STAT1:MaxSizeY") +{ + field(INP, "S03SIM-DI-OAV-01:STAT1:ProfileSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:STAT1:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:STAT1:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:STAT1:CursorY.HOPR NPP") +} + +################################################################### +# These records reset the statistics # +################################################################### +record(sseq, "S03SIM-DI-OAV-01:STAT1:Reset") +{ + field(LNK1, "S03SIM-DI-OAV-01:STAT1:MinValue PP MS") + field(LNK2, "S03SIM-DI-OAV-01:STAT1:MaxValue PP MS") + field(LNK3, "S03SIM-DI-OAV-01:STAT1:MeanValue PP MS") + field(LNK4, "S03SIM-DI-OAV-01:STAT1:SigmaValue PP MS") + field(LNK5, "S03SIM-DI-OAV-01:STAT1:Total PP MS") + field(LNK6, "S03SIM-DI-OAV-01:STAT1:Net PP MS") + field(LNK7, "S03SIM-DI-OAV-01:STAT1:MinX PP MS") + field(LNK8, "S03SIM-DI-OAV-01:STAT1:MinY PP MS") + field(LNK9, "S03SIM-DI-OAV-01:STAT1:MaxX PP MS") + field(LNKA, "S03SIM-DI-OAV-01:STAT1:MaxY PP MS") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Reset1") +} + +record(sseq, "S03SIM-DI-OAV-01:STAT1:Reset1") +{ + field(LNK1, "S03SIM-DI-OAV-01:STAT1:CentroidX PP MS") + field(LNK2, "S03SIM-DI-OAV-01:STAT1:CentroidY PP MS") + field(LNK3, "S03SIM-DI-OAV-01:STAT1:SigmaX PP MS") + field(LNK4, "S03SIM-DI-OAV-01:STAT1:SigmaY PP MS") + field(LNK5, "S03SIM-DI-OAV-01:STAT1:SigmaXY PP MS") + field(LNK6, "S03SIM-DI-OAV-01:STAT1:CentroidTotal PP MS") + field(LNK7, "S03SIM-DI-OAV-01:STAT1:SkewX PP MS") + field(LNK8, "S03SIM-DI-OAV-01:STAT1:SkewY PP MS") + field(LNK9, "S03SIM-DI-OAV-01:STAT1:KurtosisX PP MS") + field(LNKA, "S03SIM-DI-OAV-01:STAT1:KurtosisY PP MS") + field(FLNK, "S03SIM-DI-OAV-01:STAT1:Reset2") +} + +record(sseq, "S03SIM-DI-OAV-01:STAT1:Reset2") +{ + field(LNK1, "S03SIM-DI-OAV-01:STAT1:Eccentricity PP MS") + field(LNK2, "S03SIM-DI-OAV-01:STAT1:Orientation PP MS") + field(LNK3, "S03SIM-DI-OAV-01:STAT1:HistBelow PP MS") + field(LNK4, "S03SIM-DI-OAV-01:STAT1:HistAbove PP MS") + field(LNK5, "S03SIM-DI-OAV-01:STAT1:HistEntropy PP MS") +} + +#=================================================================# +# Template file: NDStats.template + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, NCHANS, Number of channels +# % macro, XSIZE, x size +# % macro, YSIZE, y size +# % macro, HIST_SIZE, hist size +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Timeout +# % macro, TS_PORT, TS port + +# This associates the template with an edm screen +# % gui, OAV.stats.stat2, edmtab, NDStats.edl, P=S03SIM-DI-OAV-01,R=:STAT2: + +# This associates a BOY screen with the template +# % gui, OAV.stats.stat2, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-DI-OAV-01, R=:STAT2:, DESC=Statistics +# % gui, OAV.stats.stat2, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-DI-OAV-01, R=:STAT2:, DESC=Statistics +# % gui, OAV.stats.stat2, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-DI-OAV-01, R=:STAT2:, DESC=Statistics + + +# % gui, OAV.stats.stat2, groupHeading, Info +# % gui, OAV.stats.stat2, readback, Port name, S03SIM-DI-OAV-01:STAT2:PortName_RBV +# % gui, OAV.stats.stat2, readback, Plugin type, S03SIM-DI-OAV-01:STAT2:PluginType_RBV +# Input +# % gui, OAV.stats.stat2, demandString, Input, S03SIM-DI-OAV-01:STAT2:NDArrayPort +# % gui, OAV.stats.stat2, readback, Input, S03SIM-DI-OAV-01:STAT2:NDArrayPort_RBV + +# % gui, OAV.stats.stat2, groupHeading, Callback +# % gui, OAV.stats.stat2, enum, Callbacks, S03SIM-DI-OAV-01:STAT2:EnableCallbacks +# % gui, OAV.stats.stat2, statusbits, Callbacks, S03SIM-DI-OAV-01:STAT2:EnableCallbacks_RBV +# % gui, OAV.stats.stat2, demand, Min Callback Time, S03SIM-DI-OAV-01:STAT2:MinCallbackTime +# % gui, OAV.stats.stat2, readback, Min Callback Time, S03SIM-DI-OAV-01:STAT2:MinCallbackTime_RBV +# % gui, OAV.stats.stat2, enum, Block Callbacks, S03SIM-DI-OAV-01:STAT2:BlockingCallbacks +# % gui, OAV.stats.stat2, statusbits, Block Callbacks, S03SIM-DI-OAV-01:STAT2:BlockingCallbacks_RBV + +# % gui, OAV.stats.stat2, groupHeading, Counters +# % gui, OAV.stats.stat2, demand, Array Counter, S03SIM-DI-OAV-01:STAT2:ArrayCounter +# % gui, OAV.stats.stat2, readback, Array Counter, S03SIM-DI-OAV-01:STAT2:ArrayCounter_RBV +# % gui, OAV.stats.stat2, readback, Array Rate (fps), S03SIM-DI-OAV-01:STAT2:ArrayRate_RBV +# % gui, OAV.stats.stat2, readback, Queue Use, S03SIM-DI-OAV-01:STAT2:QueueUse +# % gui, OAV.stats.stat2, readback, Queue Size, S03SIM-DI-OAV-01:STAT2:QueueSize +# % gui, OAV.stats.stat2, demand, Dropped Arrays, S03SIM-DI-OAV-01:STAT2:DroppedArrays +# % gui, OAV.stats.stat2, readback, Dropped Arrays, S03SIM-DI-OAV-01:STAT2:DroppedArrays_RBV + +# % gui, OAV.stats.stat2, groupHeading, Array Settings +# % gui, OAV.stats.stat2, readback, Num Dimensions, S03SIM-DI-OAV-01:STAT2:NDimensions_RBV +# % gui, OAV.stats.stat2, readback, Dim 0 Size, S03SIM-DI-OAV-01:STAT2:ArraySize0_RBV +# % gui, OAV.stats.stat2, readback, Dim 1 Size, S03SIM-DI-OAV-01:STAT2:ArraySize1_RBV +# % gui, OAV.stats.stat2, readback, Dim 2 Size, S03SIM-DI-OAV-01:STAT2:ArraySize2_RBV +# % gui, OAV.stats.stat2, readback, Input Data Type, S03SIM-DI-OAV-01:STAT2:DataType_RBV +# % gui, OAV.stats.stat2, readback, Colour Mode, S03SIM-DI-OAV-01:STAT2:ColorMode_RBV +# % gui, OAV.stats.stat2, readback, Bayer Pattern, S03SIM-DI-OAV-01:STAT2:BayerPattern_RBV +# % gui, OAV.stats.stat2, readback, Unique id, S03SIM-DI-OAV-01:STAT2:UniqueId_RBV +# % gui, OAV.stats.stat2, readback, Timestamp, S03SIM-DI-OAV-01:STAT2:TimeStamp_RBV + +# Output +# % gui, OAV.stats.stat2, groupHeading, Output +# % gui, OAV.stats.stat2, demand, Name, S03SIM-DI-OAV-01:STAT2:Name +# % gui, OAV.stats.stat2, enum, Out data type, S03SIM-DI-OAV-01:STAT2:DataTypeOut +# % gui, OAV.stats.stat2, readback, Out data type, S03SIM-DI-OAV-01:STAT2:DataTypeOut_RBV +# % gui, OAV.stats.stat2, demand, Attributes file, S03SIM-DI-OAV-01:STAT2:NDAttributesFile + +# Statistics +# % gui, OAV.stats.stat2, groupHeading, Statistics +# % gui, OAV.stats.stat2, enum, Compute Statistics, S03SIM-DI-OAV-01:STAT2:ComputeStatistics +# % gui, OAV.stats.stat2, statusbits, Compute Statistics, S03SIM-DI-OAV-01:STAT2:ComputeStatistics_RBV +# % gui, OAV.stats.stat2, demand, Background Width, S03SIM-DI-OAV-01:STAT2:BgdWidth +# % gui, OAV.stats.stat2, readback, Background Width, S03SIM-DI-OAV-01:STAT2:BgdWidth_RBV +# % gui, OAV.stats.stat2, readback, Minimum Value, S03SIM-DI-OAV-01:STAT2:MinValue_RBV +# % gui, OAV.stats.stat2, readback, Minimum X, S03SIM-DI-OAV-01:STAT2:MinX_RBV +# % gui, OAV.stats.stat2, readback, Minimum Y, S03SIM-DI-OAV-01:STAT2:MinY_RBV +# % gui, OAV.stats.stat2, readback, Maximum Value, S03SIM-DI-OAV-01:STAT2:MaxValue_RBV +# % gui, OAV.stats.stat2, readback, Maximum X, S03SIM-DI-OAV-01:STAT2:MaxX_RBV +# % gui, OAV.stats.stat2, readback, Maximum Y, S03SIM-DI-OAV-01:STAT2:MaxY_RBV +# % gui, OAV.stats.stat2, readback, Mean Value, S03SIM-DI-OAV-01:STAT2:MeanValue_RBV +# % gui, OAV.stats.stat2, readback, Total, S03SIM-DI-OAV-01:STAT2:Total_RBV +# % gui, OAV.stats.stat2, readback, Sigma, S03SIM-DI-OAV-01:STAT2:Sigma_RBV +# % gui, OAV.stats.stat2, readback, Net, S03SIM-DI-OAV-01:STAT2:Net_RBV +# Centroid +# % gui, OAV.stats.stat2, groupHeading, Centroid +# % gui, OAV.stats.stat2, enum, Compute Centroid, S03SIM-DI-OAV-01:STAT2:ComputeCentroid +# % gui, OAV.stats.stat2, statusbits, Compute Centroid, S03SIM-DI-OAV-01:STAT2:ComputeCentroid_RBV +# % gui, OAV.stats.stat2, demand, Threshold, S03SIM-DI-OAV-01:STAT2:CentroidThreshold +# % gui, OAV.stats.stat2, readback, Threshold, S03SIM-DI-OAV-01:STAT2:CentroidThreshold_RBV +# % gui, OAV.stats.stat2, readback, X, S03SIM-DI-OAV-01:STAT2:CentroidX_RBV +# % gui, OAV.stats.stat2, readback, Sigma X, S03SIM-DI-OAV-01:STAT2:SigmaX_RBV +# % gui, OAV.stats.stat2, readback, Y, S03SIM-DI-OAV-01:STAT2:CentroidY_RBV +# % gui, OAV.stats.stat2, readback, Sigma Y, S03SIM-DI-OAV-01:STAT2:SigmaY_RBV +# % gui, OAV.stats.stat2, readback, Sigma XY, S03SIM-DI-OAV-01:STAT2:SigmaXY_RBV +# Histogram +# % gui, OAV.stats.stat2, groupHeading, Histogram +# % gui, OAV.stats.stat2, enum, Compute Histogram, S03SIM-DI-OAV-01:STAT2:ComputeHistogram +# % gui, OAV.stats.stat2, statusbits, Compute Histogram, S03SIM-DI-OAV-01:STAT2:ComputeHistogram_RBV +# % gui, OAV.stats.stat2, demand, Histogram Size, S03SIM-DI-OAV-01:STAT2:HistSize +# % gui, OAV.stats.stat2, readback, Histogram Size, S03SIM-DI-OAV-01:STAT2:HistSize_RBV +# % gui, OAV.stats.stat2, demand, Histogram Min, S03SIM-DI-OAV-01:STAT2:HistMin +# % gui, OAV.stats.stat2, readback, Histogram Min, S03SIM-DI-OAV-01:STAT2:HistMin_RBV +# % gui, OAV.stats.stat2, demand, Histogram Max, S03SIM-DI-OAV-01:STAT2:HistMax +# % gui, OAV.stats.stat2, readback, Histogram Max, S03SIM-DI-OAV-01:STAT2:HistMax_RBV +# % gui, OAV.stats.stat2, readback, Histogram Entropy, S03SIM-DI-OAV-01:STAT2:HistEntropy_RBV +# Profiles +# % gui, OAV.stats.stat2, groupHeading, Profiles +# % gui, OAV.stats.stat2, enum, Compute Profiles, S03SIM-DI-OAV-01:STAT2:ComputeProfiles +# % gui, OAV.stats.stat2, statusbits, Compute Profiles, S03SIM-DI-OAV-01:STAT2:ComputeProfiles_RBV +# % gui, OAV.stats.stat2, demand, Cursor X, S03SIM-DI-OAV-01:STAT2:CursorX +# % gui, OAV.stats.stat2, readback, Cursor X, S03SIM-DI-OAV-01:STAT2:CursorX_RBV +# % gui, OAV.stats.stat2, demand, Cursor Y, S03SIM-DI-OAV-01:STAT2:CursorY +# % gui, OAV.stats.stat2, readback, Cursor Y, S03SIM-DI-OAV-01:STAT2:CursorY_RBV +# % gui, OAV.stats.stat2, readback, Size X, S03SIM-DI-OAV-01:STAT2:ProfileSizeX_RBV +# % gui, OAV.stats.stat2, readback, Size Y, S03SIM-DI-OAV-01:STAT2:ProfileSizeY_RBV +# Time series +# % gui, OAV.stats.stat2, groupHeading, Time Series +# % gui, OAV.stats.stat2, enum, Time Control, S03SIM-DI-OAV-01:STAT2:TS:TSAcquire +# % gui, OAV.stats.stat2, statusbits, Acquiring, S03SIM-DI-OAV-01:STAT2:TS:TSAcquiring +# % gui, OAV.stats.stat2, readback, Current Point, S03SIM-DI-OAV-01:STAT2:TS:TSCurrentPoint +# % gui, OAV.stats.stat2, demand, Number of Points, S03SIM-DI-OAV-01:STAT2:TS:TSNumPoints +# % gui, OAV.stats.stat2, enum, Update, S03SIM-DI-OAV-01:STAT2:TS:TSRead.SCAN +# Memory +# % gui, OAV.stats.stat2, groupHeading, Memory +# % gui, OAV.stats.stat2, readback, Max memory, S03SIM-DI-OAV-01:STAT2:PoolMaxMem +# % gui, OAV.stats.stat2, readback, Max buffers, S03SIM-DI-OAV-01:STAT2:PoolMaxBuffers +# % gui, OAV.stats.stat2, readback, Used memory, S03SIM-DI-OAV-01:STAT2:PoolUsedMem +# % gui, OAV.stats.stat2, readback, Allocated buffers, S03SIM-DI-OAV-01:STAT2:PoolAllocBuffers +# % gui, OAV.stats.stat2, readback, Free buffers, S03SIM-DI-OAV-01:STAT2:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT2:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat2,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT2:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat2,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT2:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat2,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT2:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat2,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT2:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat2,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT2:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat2,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT2:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat2,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT2:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat2,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:STAT2:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:STAT2:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT2:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT2:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:STAT2:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:STAT2:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT2:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:STAT2:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:STAT2:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:STAT2:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:STAT2:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:STAT2:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.stats.stat2,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.stats.stat2,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:STAT2:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:STAT2:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat2,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:STAT2:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:STAT2:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:STAT2:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:STAT2:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:STAT2:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:STAT2:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:STAT2:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT2:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:STAT2:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:STAT2:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT2:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT2:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:STAT2:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.stats.stat2,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:STAT2:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.stats.stat2,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:STAT2:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:STAT2:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:STAT2:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT2:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:STAT2:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:STAT2:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT2:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat2,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:STAT2:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.stats.stat2,0,1)NDARRAY_PORT") + field(VAL, "OAV.rois.roi1") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT2:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat2,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT2:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT2:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT2:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:STAT2:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT2:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT2:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:STAT2:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:STAT2:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT2:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:STAT2:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT2:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT2:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT2:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:STAT2:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT2:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT2:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:STAT2:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:STAT2:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:STAT2:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:STAT2:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:STAT2:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:STAT2:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:STAT2:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:STAT2:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:STAT2:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:STAT2:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:STAT2:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:STAT2:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:STAT2:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:STAT2:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT2:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT2:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:STAT2:SortSize") + field(OUT, "S03SIM-DI-OAV-01:STAT2:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:STAT2:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT2:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:STAT2:AsynIO") +{ + field(PORT, "OAV.stats.stat2") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records contain the basic statistics # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT2:ComputeStatistics") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)COMPUTE_STATISTICS") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT2:ComputeStatistics_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)COMPUTE_STATISTICS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT2:BgdWidth") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)BGD_WIDTH") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:BgdWidth_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)BGD_WIDTH") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:MinValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)MIN_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:MinValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)MIN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:MaxValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)MAX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:MaxValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)MAX_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:MeanValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)MEAN_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:MeanValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)MEAN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:SigmaValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)SIGMA_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:Sigma_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)SIGMA_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:Total") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)TOTAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:Total_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:Net") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)NET") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:Net_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)NET") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:MinX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)MIN_X") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:MinX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:MinY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)MIN_Y") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:MinY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:MaxX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)MAX_X") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:MaxX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)MAX_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:MaxY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)MAX_Y") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:MaxY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)MAX_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether centroid statistics are computed # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT2:ComputeCentroid") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)COMPUTE_CENTROID") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT2:ComputeCentroid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)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, "S03SIM-DI-OAV-01:STAT2:CentroidThreshold") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)CENTROID_THRESHOLD") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:CentroidThreshold_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)CENTROID_THRESHOLD") + field(VAL, "0") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:CentroidTotal") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)CENTROID_TOTAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:CentroidTotal_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)CENTROID_TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:CentroidX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)CENTROIDX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:CentroidX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)CENTROIDX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:CentroidY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)CENTROIDY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:CentroidY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)CENTROIDY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:SigmaX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)SIGMAX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:SigmaX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)SIGMAX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:SigmaY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)SIGMAY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:SigmaY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)SIGMAY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:SigmaXY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)SIGMAXY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:SigmaXY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)SIGMAXY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:SkewX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)SKEWX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:SkewX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)SKEWX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:SkewY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)SKEWY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:SkewY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)SKEWY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:KurtosisX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)KURTOSISX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:KurtosisX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)KURTOSISX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:KurtosisY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)KURTOSISY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:KurtosisY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)KURTOSISY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:Eccentricity") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)ECCENTRICITY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:Eccentricity_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)ECCENTRICITY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:Orientation") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)ORIENTATION_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:Orientation_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)ORIENTATION_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control time series # +################################################################### +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSMinValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,0,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSMinX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,1,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSMinY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,2,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSMaxValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,3,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSMaxX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,4,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSMaxY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,5,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSMeanValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,6,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSSigma") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,7,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,8,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSNet") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,9,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSCentroidTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,10,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSCentroidX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,11,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSCentroidY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,12,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSSigmaX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,13,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSSigmaY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,14,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSSigmaXY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,15,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSSkewX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,16,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSSkewY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,17,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSKurtosisX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,18,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSKurtosisY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,19,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSEccentricity") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,20,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSOrientation") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,21,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:TSTimestamp") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2_TS,22,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control profiles # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT2:ComputeProfiles") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)COMPUTE_PROFILES") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT2:ComputeProfiles_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)COMPUTE_PROFILES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ProfileSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)PROFILE_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:ProfileSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)PROFILE_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT2:CursorX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)CURSOR_X") + field(VAL, "256") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:CursorX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)CURSOR_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT2:CursorY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)CURSOR_Y") + field(VAL, "256") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:CursorY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)CURSOR_Y") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:CursorVal") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)CURSOR_VAL") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:ProfileAverageX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2,0,1)PROFILE_AVERAGE_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:ProfileAverageY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2,0,1)PROFILE_AVERAGE_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:ProfileThresholdX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2,0,1)PROFILE_THRESHOLD_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:ProfileThresholdY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2,0,1)PROFILE_THRESHOLD_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:ProfileCentroidX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2,0,1)PROFILE_CENTROID_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:ProfileCentroidY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2,0,1)PROFILE_CENTROID_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:ProfileCursorX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2,0,1)PROFILE_CURSOR_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:ProfileCursorY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2,0,1)PROFILE_CURSOR_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These are used to define the histogram # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT2:ComputeHistogram") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)COMPUTE_HISTOGRAM") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT2:ComputeHistogram_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)COMPUTE_HISTOGRAM") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT2:HistSize") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)HIST_SIZE") + field(VAL, "256") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:HistSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)HIST_SIZE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:HistMin") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)HIST_MIN") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:HistMin_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)HIST_MIN") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:HistMax") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)HIST_MAX") + field(VAL, "255") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:HistMax_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)HIST_MAX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT2:HistBelow") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)HIST_BELOW") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:HistBelow_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)HIST_BELOW") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT2:HistAbove") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat2,0,1)HIST_ABOVE") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:HistAbove_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat2,0,1)HIST_ABOVE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT2:HistEntropy") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat2,0,1)HIST_ENTROPY") +} + +record(ai, "S03SIM-DI-OAV-01:STAT2:HistEntropy_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat2,0,1)HIST_ENTROPY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:Histogram_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2,0,1)HIST_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT2:HistogramX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat2,0,1)HIST_X_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + 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, "S03SIM-DI-OAV-01:STAT2:MaxSizeX") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:ProfileSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:STAT2:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:STAT2:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:STAT2:CursorX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:STAT2:MaxSizeY") +{ + field(INP, "S03SIM-DI-OAV-01:STAT2:ProfileSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:STAT2:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:STAT2:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:STAT2:CursorY.HOPR NPP") +} + +################################################################### +# These records reset the statistics # +################################################################### +record(sseq, "S03SIM-DI-OAV-01:STAT2:Reset") +{ + field(LNK1, "S03SIM-DI-OAV-01:STAT2:MinValue PP MS") + field(LNK2, "S03SIM-DI-OAV-01:STAT2:MaxValue PP MS") + field(LNK3, "S03SIM-DI-OAV-01:STAT2:MeanValue PP MS") + field(LNK4, "S03SIM-DI-OAV-01:STAT2:SigmaValue PP MS") + field(LNK5, "S03SIM-DI-OAV-01:STAT2:Total PP MS") + field(LNK6, "S03SIM-DI-OAV-01:STAT2:Net PP MS") + field(LNK7, "S03SIM-DI-OAV-01:STAT2:MinX PP MS") + field(LNK8, "S03SIM-DI-OAV-01:STAT2:MinY PP MS") + field(LNK9, "S03SIM-DI-OAV-01:STAT2:MaxX PP MS") + field(LNKA, "S03SIM-DI-OAV-01:STAT2:MaxY PP MS") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Reset1") +} + +record(sseq, "S03SIM-DI-OAV-01:STAT2:Reset1") +{ + field(LNK1, "S03SIM-DI-OAV-01:STAT2:CentroidX PP MS") + field(LNK2, "S03SIM-DI-OAV-01:STAT2:CentroidY PP MS") + field(LNK3, "S03SIM-DI-OAV-01:STAT2:SigmaX PP MS") + field(LNK4, "S03SIM-DI-OAV-01:STAT2:SigmaY PP MS") + field(LNK5, "S03SIM-DI-OAV-01:STAT2:SigmaXY PP MS") + field(LNK6, "S03SIM-DI-OAV-01:STAT2:CentroidTotal PP MS") + field(LNK7, "S03SIM-DI-OAV-01:STAT2:SkewX PP MS") + field(LNK8, "S03SIM-DI-OAV-01:STAT2:SkewY PP MS") + field(LNK9, "S03SIM-DI-OAV-01:STAT2:KurtosisX PP MS") + field(LNKA, "S03SIM-DI-OAV-01:STAT2:KurtosisY PP MS") + field(FLNK, "S03SIM-DI-OAV-01:STAT2:Reset2") +} + +record(sseq, "S03SIM-DI-OAV-01:STAT2:Reset2") +{ + field(LNK1, "S03SIM-DI-OAV-01:STAT2:Eccentricity PP MS") + field(LNK2, "S03SIM-DI-OAV-01:STAT2:Orientation PP MS") + field(LNK3, "S03SIM-DI-OAV-01:STAT2:HistBelow PP MS") + field(LNK4, "S03SIM-DI-OAV-01:STAT2:HistAbove PP MS") + field(LNK5, "S03SIM-DI-OAV-01:STAT2:HistEntropy PP MS") +} + +#=================================================================# +# Template file: NDStats.template + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, NCHANS, Number of channels +# % macro, XSIZE, x size +# % macro, YSIZE, y size +# % macro, HIST_SIZE, hist size +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Timeout +# % macro, TS_PORT, TS port + +# This associates the template with an edm screen +# % gui, OAV.stats.stat3, edmtab, NDStats.edl, P=S03SIM-DI-OAV-01,R=:STAT3: + +# This associates a BOY screen with the template +# % gui, OAV.stats.stat3, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-DI-OAV-01, R=:STAT3:, DESC=Statistics +# % gui, OAV.stats.stat3, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-DI-OAV-01, R=:STAT3:, DESC=Statistics +# % gui, OAV.stats.stat3, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-DI-OAV-01, R=:STAT3:, DESC=Statistics + + +# % gui, OAV.stats.stat3, groupHeading, Info +# % gui, OAV.stats.stat3, readback, Port name, S03SIM-DI-OAV-01:STAT3:PortName_RBV +# % gui, OAV.stats.stat3, readback, Plugin type, S03SIM-DI-OAV-01:STAT3:PluginType_RBV +# Input +# % gui, OAV.stats.stat3, demandString, Input, S03SIM-DI-OAV-01:STAT3:NDArrayPort +# % gui, OAV.stats.stat3, readback, Input, S03SIM-DI-OAV-01:STAT3:NDArrayPort_RBV + +# % gui, OAV.stats.stat3, groupHeading, Callback +# % gui, OAV.stats.stat3, enum, Callbacks, S03SIM-DI-OAV-01:STAT3:EnableCallbacks +# % gui, OAV.stats.stat3, statusbits, Callbacks, S03SIM-DI-OAV-01:STAT3:EnableCallbacks_RBV +# % gui, OAV.stats.stat3, demand, Min Callback Time, S03SIM-DI-OAV-01:STAT3:MinCallbackTime +# % gui, OAV.stats.stat3, readback, Min Callback Time, S03SIM-DI-OAV-01:STAT3:MinCallbackTime_RBV +# % gui, OAV.stats.stat3, enum, Block Callbacks, S03SIM-DI-OAV-01:STAT3:BlockingCallbacks +# % gui, OAV.stats.stat3, statusbits, Block Callbacks, S03SIM-DI-OAV-01:STAT3:BlockingCallbacks_RBV + +# % gui, OAV.stats.stat3, groupHeading, Counters +# % gui, OAV.stats.stat3, demand, Array Counter, S03SIM-DI-OAV-01:STAT3:ArrayCounter +# % gui, OAV.stats.stat3, readback, Array Counter, S03SIM-DI-OAV-01:STAT3:ArrayCounter_RBV +# % gui, OAV.stats.stat3, readback, Array Rate (fps), S03SIM-DI-OAV-01:STAT3:ArrayRate_RBV +# % gui, OAV.stats.stat3, readback, Queue Use, S03SIM-DI-OAV-01:STAT3:QueueUse +# % gui, OAV.stats.stat3, readback, Queue Size, S03SIM-DI-OAV-01:STAT3:QueueSize +# % gui, OAV.stats.stat3, demand, Dropped Arrays, S03SIM-DI-OAV-01:STAT3:DroppedArrays +# % gui, OAV.stats.stat3, readback, Dropped Arrays, S03SIM-DI-OAV-01:STAT3:DroppedArrays_RBV + +# % gui, OAV.stats.stat3, groupHeading, Array Settings +# % gui, OAV.stats.stat3, readback, Num Dimensions, S03SIM-DI-OAV-01:STAT3:NDimensions_RBV +# % gui, OAV.stats.stat3, readback, Dim 0 Size, S03SIM-DI-OAV-01:STAT3:ArraySize0_RBV +# % gui, OAV.stats.stat3, readback, Dim 1 Size, S03SIM-DI-OAV-01:STAT3:ArraySize1_RBV +# % gui, OAV.stats.stat3, readback, Dim 2 Size, S03SIM-DI-OAV-01:STAT3:ArraySize2_RBV +# % gui, OAV.stats.stat3, readback, Input Data Type, S03SIM-DI-OAV-01:STAT3:DataType_RBV +# % gui, OAV.stats.stat3, readback, Colour Mode, S03SIM-DI-OAV-01:STAT3:ColorMode_RBV +# % gui, OAV.stats.stat3, readback, Bayer Pattern, S03SIM-DI-OAV-01:STAT3:BayerPattern_RBV +# % gui, OAV.stats.stat3, readback, Unique id, S03SIM-DI-OAV-01:STAT3:UniqueId_RBV +# % gui, OAV.stats.stat3, readback, Timestamp, S03SIM-DI-OAV-01:STAT3:TimeStamp_RBV + +# Output +# % gui, OAV.stats.stat3, groupHeading, Output +# % gui, OAV.stats.stat3, demand, Name, S03SIM-DI-OAV-01:STAT3:Name +# % gui, OAV.stats.stat3, enum, Out data type, S03SIM-DI-OAV-01:STAT3:DataTypeOut +# % gui, OAV.stats.stat3, readback, Out data type, S03SIM-DI-OAV-01:STAT3:DataTypeOut_RBV +# % gui, OAV.stats.stat3, demand, Attributes file, S03SIM-DI-OAV-01:STAT3:NDAttributesFile + +# Statistics +# % gui, OAV.stats.stat3, groupHeading, Statistics +# % gui, OAV.stats.stat3, enum, Compute Statistics, S03SIM-DI-OAV-01:STAT3:ComputeStatistics +# % gui, OAV.stats.stat3, statusbits, Compute Statistics, S03SIM-DI-OAV-01:STAT3:ComputeStatistics_RBV +# % gui, OAV.stats.stat3, demand, Background Width, S03SIM-DI-OAV-01:STAT3:BgdWidth +# % gui, OAV.stats.stat3, readback, Background Width, S03SIM-DI-OAV-01:STAT3:BgdWidth_RBV +# % gui, OAV.stats.stat3, readback, Minimum Value, S03SIM-DI-OAV-01:STAT3:MinValue_RBV +# % gui, OAV.stats.stat3, readback, Minimum X, S03SIM-DI-OAV-01:STAT3:MinX_RBV +# % gui, OAV.stats.stat3, readback, Minimum Y, S03SIM-DI-OAV-01:STAT3:MinY_RBV +# % gui, OAV.stats.stat3, readback, Maximum Value, S03SIM-DI-OAV-01:STAT3:MaxValue_RBV +# % gui, OAV.stats.stat3, readback, Maximum X, S03SIM-DI-OAV-01:STAT3:MaxX_RBV +# % gui, OAV.stats.stat3, readback, Maximum Y, S03SIM-DI-OAV-01:STAT3:MaxY_RBV +# % gui, OAV.stats.stat3, readback, Mean Value, S03SIM-DI-OAV-01:STAT3:MeanValue_RBV +# % gui, OAV.stats.stat3, readback, Total, S03SIM-DI-OAV-01:STAT3:Total_RBV +# % gui, OAV.stats.stat3, readback, Sigma, S03SIM-DI-OAV-01:STAT3:Sigma_RBV +# % gui, OAV.stats.stat3, readback, Net, S03SIM-DI-OAV-01:STAT3:Net_RBV +# Centroid +# % gui, OAV.stats.stat3, groupHeading, Centroid +# % gui, OAV.stats.stat3, enum, Compute Centroid, S03SIM-DI-OAV-01:STAT3:ComputeCentroid +# % gui, OAV.stats.stat3, statusbits, Compute Centroid, S03SIM-DI-OAV-01:STAT3:ComputeCentroid_RBV +# % gui, OAV.stats.stat3, demand, Threshold, S03SIM-DI-OAV-01:STAT3:CentroidThreshold +# % gui, OAV.stats.stat3, readback, Threshold, S03SIM-DI-OAV-01:STAT3:CentroidThreshold_RBV +# % gui, OAV.stats.stat3, readback, X, S03SIM-DI-OAV-01:STAT3:CentroidX_RBV +# % gui, OAV.stats.stat3, readback, Sigma X, S03SIM-DI-OAV-01:STAT3:SigmaX_RBV +# % gui, OAV.stats.stat3, readback, Y, S03SIM-DI-OAV-01:STAT3:CentroidY_RBV +# % gui, OAV.stats.stat3, readback, Sigma Y, S03SIM-DI-OAV-01:STAT3:SigmaY_RBV +# % gui, OAV.stats.stat3, readback, Sigma XY, S03SIM-DI-OAV-01:STAT3:SigmaXY_RBV +# Histogram +# % gui, OAV.stats.stat3, groupHeading, Histogram +# % gui, OAV.stats.stat3, enum, Compute Histogram, S03SIM-DI-OAV-01:STAT3:ComputeHistogram +# % gui, OAV.stats.stat3, statusbits, Compute Histogram, S03SIM-DI-OAV-01:STAT3:ComputeHistogram_RBV +# % gui, OAV.stats.stat3, demand, Histogram Size, S03SIM-DI-OAV-01:STAT3:HistSize +# % gui, OAV.stats.stat3, readback, Histogram Size, S03SIM-DI-OAV-01:STAT3:HistSize_RBV +# % gui, OAV.stats.stat3, demand, Histogram Min, S03SIM-DI-OAV-01:STAT3:HistMin +# % gui, OAV.stats.stat3, readback, Histogram Min, S03SIM-DI-OAV-01:STAT3:HistMin_RBV +# % gui, OAV.stats.stat3, demand, Histogram Max, S03SIM-DI-OAV-01:STAT3:HistMax +# % gui, OAV.stats.stat3, readback, Histogram Max, S03SIM-DI-OAV-01:STAT3:HistMax_RBV +# % gui, OAV.stats.stat3, readback, Histogram Entropy, S03SIM-DI-OAV-01:STAT3:HistEntropy_RBV +# Profiles +# % gui, OAV.stats.stat3, groupHeading, Profiles +# % gui, OAV.stats.stat3, enum, Compute Profiles, S03SIM-DI-OAV-01:STAT3:ComputeProfiles +# % gui, OAV.stats.stat3, statusbits, Compute Profiles, S03SIM-DI-OAV-01:STAT3:ComputeProfiles_RBV +# % gui, OAV.stats.stat3, demand, Cursor X, S03SIM-DI-OAV-01:STAT3:CursorX +# % gui, OAV.stats.stat3, readback, Cursor X, S03SIM-DI-OAV-01:STAT3:CursorX_RBV +# % gui, OAV.stats.stat3, demand, Cursor Y, S03SIM-DI-OAV-01:STAT3:CursorY +# % gui, OAV.stats.stat3, readback, Cursor Y, S03SIM-DI-OAV-01:STAT3:CursorY_RBV +# % gui, OAV.stats.stat3, readback, Size X, S03SIM-DI-OAV-01:STAT3:ProfileSizeX_RBV +# % gui, OAV.stats.stat3, readback, Size Y, S03SIM-DI-OAV-01:STAT3:ProfileSizeY_RBV +# Time series +# % gui, OAV.stats.stat3, groupHeading, Time Series +# % gui, OAV.stats.stat3, enum, Time Control, S03SIM-DI-OAV-01:STAT3:TS:TSAcquire +# % gui, OAV.stats.stat3, statusbits, Acquiring, S03SIM-DI-OAV-01:STAT3:TS:TSAcquiring +# % gui, OAV.stats.stat3, readback, Current Point, S03SIM-DI-OAV-01:STAT3:TS:TSCurrentPoint +# % gui, OAV.stats.stat3, demand, Number of Points, S03SIM-DI-OAV-01:STAT3:TS:TSNumPoints +# % gui, OAV.stats.stat3, enum, Update, S03SIM-DI-OAV-01:STAT3:TS:TSRead.SCAN +# Memory +# % gui, OAV.stats.stat3, groupHeading, Memory +# % gui, OAV.stats.stat3, readback, Max memory, S03SIM-DI-OAV-01:STAT3:PoolMaxMem +# % gui, OAV.stats.stat3, readback, Max buffers, S03SIM-DI-OAV-01:STAT3:PoolMaxBuffers +# % gui, OAV.stats.stat3, readback, Used memory, S03SIM-DI-OAV-01:STAT3:PoolUsedMem +# % gui, OAV.stats.stat3, readback, Allocated buffers, S03SIM-DI-OAV-01:STAT3:PoolAllocBuffers +# % gui, OAV.stats.stat3, readback, Free buffers, S03SIM-DI-OAV-01:STAT3:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT3:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat3,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT3:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat3,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT3:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat3,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT3:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat3,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT3:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat3,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT3:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat3,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT3:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat3,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT3:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat3,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:STAT3:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:STAT3:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT3:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT3:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:STAT3:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:STAT3:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT3:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:STAT3:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:STAT3:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:STAT3:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:STAT3:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:STAT3:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.stats.stat3,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.stats.stat3,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:STAT3:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:STAT3:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat3,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:STAT3:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:STAT3:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:STAT3:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:STAT3:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:STAT3:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:STAT3:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:STAT3:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT3:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:STAT3:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:STAT3:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT3:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT3:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:STAT3:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.stats.stat3,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:STAT3:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.stats.stat3,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:STAT3:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:STAT3:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:STAT3:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT3:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:STAT3:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:STAT3:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT3:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat3,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:STAT3:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.stats.stat3,0,1)NDARRAY_PORT") + field(VAL, "OAV.rois.roi1") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT3:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat3,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT3:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT3:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT3:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:STAT3:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT3:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT3:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:STAT3:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:STAT3:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT3:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:STAT3:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT3:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT3:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT3:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:STAT3:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT3:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT3:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:STAT3:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:STAT3:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:STAT3:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:STAT3:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:STAT3:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:STAT3:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:STAT3:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:STAT3:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:STAT3:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:STAT3:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:STAT3:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:STAT3:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:STAT3:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:STAT3:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT3:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT3:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:STAT3:SortSize") + field(OUT, "S03SIM-DI-OAV-01:STAT3:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:STAT3:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT3:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:STAT3:AsynIO") +{ + field(PORT, "OAV.stats.stat3") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records contain the basic statistics # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT3:ComputeStatistics") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)COMPUTE_STATISTICS") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT3:ComputeStatistics_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)COMPUTE_STATISTICS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT3:BgdWidth") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)BGD_WIDTH") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:BgdWidth_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)BGD_WIDTH") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:MinValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)MIN_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:MinValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)MIN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:MaxValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)MAX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:MaxValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)MAX_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:MeanValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)MEAN_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:MeanValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)MEAN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:SigmaValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)SIGMA_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:Sigma_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)SIGMA_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:Total") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)TOTAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:Total_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:Net") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)NET") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:Net_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)NET") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:MinX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)MIN_X") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:MinX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:MinY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)MIN_Y") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:MinY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:MaxX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)MAX_X") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:MaxX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)MAX_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:MaxY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)MAX_Y") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:MaxY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)MAX_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether centroid statistics are computed # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT3:ComputeCentroid") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)COMPUTE_CENTROID") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT3:ComputeCentroid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)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, "S03SIM-DI-OAV-01:STAT3:CentroidThreshold") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)CENTROID_THRESHOLD") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:CentroidThreshold_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)CENTROID_THRESHOLD") + field(VAL, "0") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:CentroidTotal") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)CENTROID_TOTAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:CentroidTotal_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)CENTROID_TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:CentroidX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)CENTROIDX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:CentroidX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)CENTROIDX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:CentroidY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)CENTROIDY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:CentroidY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)CENTROIDY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:SigmaX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)SIGMAX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:SigmaX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)SIGMAX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:SigmaY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)SIGMAY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:SigmaY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)SIGMAY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:SigmaXY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)SIGMAXY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:SigmaXY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)SIGMAXY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:SkewX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)SKEWX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:SkewX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)SKEWX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:SkewY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)SKEWY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:SkewY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)SKEWY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:KurtosisX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)KURTOSISX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:KurtosisX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)KURTOSISX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:KurtosisY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)KURTOSISY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:KurtosisY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)KURTOSISY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:Eccentricity") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)ECCENTRICITY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:Eccentricity_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)ECCENTRICITY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:Orientation") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)ORIENTATION_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:Orientation_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)ORIENTATION_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control time series # +################################################################### +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSMinValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,0,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSMinX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,1,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSMinY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,2,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSMaxValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,3,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSMaxX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,4,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSMaxY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,5,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSMeanValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,6,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSSigma") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,7,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,8,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSNet") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,9,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSCentroidTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,10,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSCentroidX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,11,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSCentroidY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,12,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSSigmaX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,13,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSSigmaY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,14,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSSigmaXY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,15,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSSkewX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,16,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSSkewY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,17,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSKurtosisX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,18,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSKurtosisY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,19,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSEccentricity") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,20,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSOrientation") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,21,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:TSTimestamp") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3_TS,22,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control profiles # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT3:ComputeProfiles") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)COMPUTE_PROFILES") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT3:ComputeProfiles_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)COMPUTE_PROFILES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ProfileSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)PROFILE_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:ProfileSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)PROFILE_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT3:CursorX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)CURSOR_X") + field(VAL, "256") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:CursorX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)CURSOR_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT3:CursorY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)CURSOR_Y") + field(VAL, "256") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:CursorY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)CURSOR_Y") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:CursorVal") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)CURSOR_VAL") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:ProfileAverageX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3,0,1)PROFILE_AVERAGE_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:ProfileAverageY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3,0,1)PROFILE_AVERAGE_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:ProfileThresholdX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3,0,1)PROFILE_THRESHOLD_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:ProfileThresholdY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3,0,1)PROFILE_THRESHOLD_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:ProfileCentroidX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3,0,1)PROFILE_CENTROID_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:ProfileCentroidY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3,0,1)PROFILE_CENTROID_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:ProfileCursorX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3,0,1)PROFILE_CURSOR_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:ProfileCursorY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3,0,1)PROFILE_CURSOR_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These are used to define the histogram # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT3:ComputeHistogram") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)COMPUTE_HISTOGRAM") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT3:ComputeHistogram_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)COMPUTE_HISTOGRAM") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT3:HistSize") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)HIST_SIZE") + field(VAL, "256") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:HistSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)HIST_SIZE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:HistMin") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)HIST_MIN") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:HistMin_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)HIST_MIN") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:HistMax") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)HIST_MAX") + field(VAL, "255") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:HistMax_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)HIST_MAX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT3:HistBelow") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)HIST_BELOW") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:HistBelow_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)HIST_BELOW") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT3:HistAbove") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat3,0,1)HIST_ABOVE") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:HistAbove_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat3,0,1)HIST_ABOVE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT3:HistEntropy") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat3,0,1)HIST_ENTROPY") +} + +record(ai, "S03SIM-DI-OAV-01:STAT3:HistEntropy_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat3,0,1)HIST_ENTROPY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:Histogram_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3,0,1)HIST_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT3:HistogramX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat3,0,1)HIST_X_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + 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, "S03SIM-DI-OAV-01:STAT3:MaxSizeX") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:ProfileSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:STAT3:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:STAT3:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:STAT3:CursorX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:STAT3:MaxSizeY") +{ + field(INP, "S03SIM-DI-OAV-01:STAT3:ProfileSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:STAT3:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:STAT3:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:STAT3:CursorY.HOPR NPP") +} + +################################################################### +# These records reset the statistics # +################################################################### +record(sseq, "S03SIM-DI-OAV-01:STAT3:Reset") +{ + field(LNK1, "S03SIM-DI-OAV-01:STAT3:MinValue PP MS") + field(LNK2, "S03SIM-DI-OAV-01:STAT3:MaxValue PP MS") + field(LNK3, "S03SIM-DI-OAV-01:STAT3:MeanValue PP MS") + field(LNK4, "S03SIM-DI-OAV-01:STAT3:SigmaValue PP MS") + field(LNK5, "S03SIM-DI-OAV-01:STAT3:Total PP MS") + field(LNK6, "S03SIM-DI-OAV-01:STAT3:Net PP MS") + field(LNK7, "S03SIM-DI-OAV-01:STAT3:MinX PP MS") + field(LNK8, "S03SIM-DI-OAV-01:STAT3:MinY PP MS") + field(LNK9, "S03SIM-DI-OAV-01:STAT3:MaxX PP MS") + field(LNKA, "S03SIM-DI-OAV-01:STAT3:MaxY PP MS") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Reset1") +} + +record(sseq, "S03SIM-DI-OAV-01:STAT3:Reset1") +{ + field(LNK1, "S03SIM-DI-OAV-01:STAT3:CentroidX PP MS") + field(LNK2, "S03SIM-DI-OAV-01:STAT3:CentroidY PP MS") + field(LNK3, "S03SIM-DI-OAV-01:STAT3:SigmaX PP MS") + field(LNK4, "S03SIM-DI-OAV-01:STAT3:SigmaY PP MS") + field(LNK5, "S03SIM-DI-OAV-01:STAT3:SigmaXY PP MS") + field(LNK6, "S03SIM-DI-OAV-01:STAT3:CentroidTotal PP MS") + field(LNK7, "S03SIM-DI-OAV-01:STAT3:SkewX PP MS") + field(LNK8, "S03SIM-DI-OAV-01:STAT3:SkewY PP MS") + field(LNK9, "S03SIM-DI-OAV-01:STAT3:KurtosisX PP MS") + field(LNKA, "S03SIM-DI-OAV-01:STAT3:KurtosisY PP MS") + field(FLNK, "S03SIM-DI-OAV-01:STAT3:Reset2") +} + +record(sseq, "S03SIM-DI-OAV-01:STAT3:Reset2") +{ + field(LNK1, "S03SIM-DI-OAV-01:STAT3:Eccentricity PP MS") + field(LNK2, "S03SIM-DI-OAV-01:STAT3:Orientation PP MS") + field(LNK3, "S03SIM-DI-OAV-01:STAT3:HistBelow PP MS") + field(LNK4, "S03SIM-DI-OAV-01:STAT3:HistAbove PP MS") + field(LNK5, "S03SIM-DI-OAV-01:STAT3:HistEntropy PP MS") +} + +#=================================================================# +# Template file: NDStats.template + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, NCHANS, Number of channels +# % macro, XSIZE, x size +# % macro, YSIZE, y size +# % macro, HIST_SIZE, hist size +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Timeout +# % macro, TS_PORT, TS port + +# This associates the template with an edm screen +# % gui, OAV.stats.stat4, edmtab, NDStats.edl, P=S03SIM-DI-OAV-01,R=:STAT4: + +# This associates a BOY screen with the template +# % gui, OAV.stats.stat4, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-DI-OAV-01, R=:STAT4:, DESC=Statistics +# % gui, OAV.stats.stat4, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-DI-OAV-01, R=:STAT4:, DESC=Statistics +# % gui, OAV.stats.stat4, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-DI-OAV-01, R=:STAT4:, DESC=Statistics + + +# % gui, OAV.stats.stat4, groupHeading, Info +# % gui, OAV.stats.stat4, readback, Port name, S03SIM-DI-OAV-01:STAT4:PortName_RBV +# % gui, OAV.stats.stat4, readback, Plugin type, S03SIM-DI-OAV-01:STAT4:PluginType_RBV +# Input +# % gui, OAV.stats.stat4, demandString, Input, S03SIM-DI-OAV-01:STAT4:NDArrayPort +# % gui, OAV.stats.stat4, readback, Input, S03SIM-DI-OAV-01:STAT4:NDArrayPort_RBV + +# % gui, OAV.stats.stat4, groupHeading, Callback +# % gui, OAV.stats.stat4, enum, Callbacks, S03SIM-DI-OAV-01:STAT4:EnableCallbacks +# % gui, OAV.stats.stat4, statusbits, Callbacks, S03SIM-DI-OAV-01:STAT4:EnableCallbacks_RBV +# % gui, OAV.stats.stat4, demand, Min Callback Time, S03SIM-DI-OAV-01:STAT4:MinCallbackTime +# % gui, OAV.stats.stat4, readback, Min Callback Time, S03SIM-DI-OAV-01:STAT4:MinCallbackTime_RBV +# % gui, OAV.stats.stat4, enum, Block Callbacks, S03SIM-DI-OAV-01:STAT4:BlockingCallbacks +# % gui, OAV.stats.stat4, statusbits, Block Callbacks, S03SIM-DI-OAV-01:STAT4:BlockingCallbacks_RBV + +# % gui, OAV.stats.stat4, groupHeading, Counters +# % gui, OAV.stats.stat4, demand, Array Counter, S03SIM-DI-OAV-01:STAT4:ArrayCounter +# % gui, OAV.stats.stat4, readback, Array Counter, S03SIM-DI-OAV-01:STAT4:ArrayCounter_RBV +# % gui, OAV.stats.stat4, readback, Array Rate (fps), S03SIM-DI-OAV-01:STAT4:ArrayRate_RBV +# % gui, OAV.stats.stat4, readback, Queue Use, S03SIM-DI-OAV-01:STAT4:QueueUse +# % gui, OAV.stats.stat4, readback, Queue Size, S03SIM-DI-OAV-01:STAT4:QueueSize +# % gui, OAV.stats.stat4, demand, Dropped Arrays, S03SIM-DI-OAV-01:STAT4:DroppedArrays +# % gui, OAV.stats.stat4, readback, Dropped Arrays, S03SIM-DI-OAV-01:STAT4:DroppedArrays_RBV + +# % gui, OAV.stats.stat4, groupHeading, Array Settings +# % gui, OAV.stats.stat4, readback, Num Dimensions, S03SIM-DI-OAV-01:STAT4:NDimensions_RBV +# % gui, OAV.stats.stat4, readback, Dim 0 Size, S03SIM-DI-OAV-01:STAT4:ArraySize0_RBV +# % gui, OAV.stats.stat4, readback, Dim 1 Size, S03SIM-DI-OAV-01:STAT4:ArraySize1_RBV +# % gui, OAV.stats.stat4, readback, Dim 2 Size, S03SIM-DI-OAV-01:STAT4:ArraySize2_RBV +# % gui, OAV.stats.stat4, readback, Input Data Type, S03SIM-DI-OAV-01:STAT4:DataType_RBV +# % gui, OAV.stats.stat4, readback, Colour Mode, S03SIM-DI-OAV-01:STAT4:ColorMode_RBV +# % gui, OAV.stats.stat4, readback, Bayer Pattern, S03SIM-DI-OAV-01:STAT4:BayerPattern_RBV +# % gui, OAV.stats.stat4, readback, Unique id, S03SIM-DI-OAV-01:STAT4:UniqueId_RBV +# % gui, OAV.stats.stat4, readback, Timestamp, S03SIM-DI-OAV-01:STAT4:TimeStamp_RBV + +# Output +# % gui, OAV.stats.stat4, groupHeading, Output +# % gui, OAV.stats.stat4, demand, Name, S03SIM-DI-OAV-01:STAT4:Name +# % gui, OAV.stats.stat4, enum, Out data type, S03SIM-DI-OAV-01:STAT4:DataTypeOut +# % gui, OAV.stats.stat4, readback, Out data type, S03SIM-DI-OAV-01:STAT4:DataTypeOut_RBV +# % gui, OAV.stats.stat4, demand, Attributes file, S03SIM-DI-OAV-01:STAT4:NDAttributesFile + +# Statistics +# % gui, OAV.stats.stat4, groupHeading, Statistics +# % gui, OAV.stats.stat4, enum, Compute Statistics, S03SIM-DI-OAV-01:STAT4:ComputeStatistics +# % gui, OAV.stats.stat4, statusbits, Compute Statistics, S03SIM-DI-OAV-01:STAT4:ComputeStatistics_RBV +# % gui, OAV.stats.stat4, demand, Background Width, S03SIM-DI-OAV-01:STAT4:BgdWidth +# % gui, OAV.stats.stat4, readback, Background Width, S03SIM-DI-OAV-01:STAT4:BgdWidth_RBV +# % gui, OAV.stats.stat4, readback, Minimum Value, S03SIM-DI-OAV-01:STAT4:MinValue_RBV +# % gui, OAV.stats.stat4, readback, Minimum X, S03SIM-DI-OAV-01:STAT4:MinX_RBV +# % gui, OAV.stats.stat4, readback, Minimum Y, S03SIM-DI-OAV-01:STAT4:MinY_RBV +# % gui, OAV.stats.stat4, readback, Maximum Value, S03SIM-DI-OAV-01:STAT4:MaxValue_RBV +# % gui, OAV.stats.stat4, readback, Maximum X, S03SIM-DI-OAV-01:STAT4:MaxX_RBV +# % gui, OAV.stats.stat4, readback, Maximum Y, S03SIM-DI-OAV-01:STAT4:MaxY_RBV +# % gui, OAV.stats.stat4, readback, Mean Value, S03SIM-DI-OAV-01:STAT4:MeanValue_RBV +# % gui, OAV.stats.stat4, readback, Total, S03SIM-DI-OAV-01:STAT4:Total_RBV +# % gui, OAV.stats.stat4, readback, Sigma, S03SIM-DI-OAV-01:STAT4:Sigma_RBV +# % gui, OAV.stats.stat4, readback, Net, S03SIM-DI-OAV-01:STAT4:Net_RBV +# Centroid +# % gui, OAV.stats.stat4, groupHeading, Centroid +# % gui, OAV.stats.stat4, enum, Compute Centroid, S03SIM-DI-OAV-01:STAT4:ComputeCentroid +# % gui, OAV.stats.stat4, statusbits, Compute Centroid, S03SIM-DI-OAV-01:STAT4:ComputeCentroid_RBV +# % gui, OAV.stats.stat4, demand, Threshold, S03SIM-DI-OAV-01:STAT4:CentroidThreshold +# % gui, OAV.stats.stat4, readback, Threshold, S03SIM-DI-OAV-01:STAT4:CentroidThreshold_RBV +# % gui, OAV.stats.stat4, readback, X, S03SIM-DI-OAV-01:STAT4:CentroidX_RBV +# % gui, OAV.stats.stat4, readback, Sigma X, S03SIM-DI-OAV-01:STAT4:SigmaX_RBV +# % gui, OAV.stats.stat4, readback, Y, S03SIM-DI-OAV-01:STAT4:CentroidY_RBV +# % gui, OAV.stats.stat4, readback, Sigma Y, S03SIM-DI-OAV-01:STAT4:SigmaY_RBV +# % gui, OAV.stats.stat4, readback, Sigma XY, S03SIM-DI-OAV-01:STAT4:SigmaXY_RBV +# Histogram +# % gui, OAV.stats.stat4, groupHeading, Histogram +# % gui, OAV.stats.stat4, enum, Compute Histogram, S03SIM-DI-OAV-01:STAT4:ComputeHistogram +# % gui, OAV.stats.stat4, statusbits, Compute Histogram, S03SIM-DI-OAV-01:STAT4:ComputeHistogram_RBV +# % gui, OAV.stats.stat4, demand, Histogram Size, S03SIM-DI-OAV-01:STAT4:HistSize +# % gui, OAV.stats.stat4, readback, Histogram Size, S03SIM-DI-OAV-01:STAT4:HistSize_RBV +# % gui, OAV.stats.stat4, demand, Histogram Min, S03SIM-DI-OAV-01:STAT4:HistMin +# % gui, OAV.stats.stat4, readback, Histogram Min, S03SIM-DI-OAV-01:STAT4:HistMin_RBV +# % gui, OAV.stats.stat4, demand, Histogram Max, S03SIM-DI-OAV-01:STAT4:HistMax +# % gui, OAV.stats.stat4, readback, Histogram Max, S03SIM-DI-OAV-01:STAT4:HistMax_RBV +# % gui, OAV.stats.stat4, readback, Histogram Entropy, S03SIM-DI-OAV-01:STAT4:HistEntropy_RBV +# Profiles +# % gui, OAV.stats.stat4, groupHeading, Profiles +# % gui, OAV.stats.stat4, enum, Compute Profiles, S03SIM-DI-OAV-01:STAT4:ComputeProfiles +# % gui, OAV.stats.stat4, statusbits, Compute Profiles, S03SIM-DI-OAV-01:STAT4:ComputeProfiles_RBV +# % gui, OAV.stats.stat4, demand, Cursor X, S03SIM-DI-OAV-01:STAT4:CursorX +# % gui, OAV.stats.stat4, readback, Cursor X, S03SIM-DI-OAV-01:STAT4:CursorX_RBV +# % gui, OAV.stats.stat4, demand, Cursor Y, S03SIM-DI-OAV-01:STAT4:CursorY +# % gui, OAV.stats.stat4, readback, Cursor Y, S03SIM-DI-OAV-01:STAT4:CursorY_RBV +# % gui, OAV.stats.stat4, readback, Size X, S03SIM-DI-OAV-01:STAT4:ProfileSizeX_RBV +# % gui, OAV.stats.stat4, readback, Size Y, S03SIM-DI-OAV-01:STAT4:ProfileSizeY_RBV +# Time series +# % gui, OAV.stats.stat4, groupHeading, Time Series +# % gui, OAV.stats.stat4, enum, Time Control, S03SIM-DI-OAV-01:STAT4:TS:TSAcquire +# % gui, OAV.stats.stat4, statusbits, Acquiring, S03SIM-DI-OAV-01:STAT4:TS:TSAcquiring +# % gui, OAV.stats.stat4, readback, Current Point, S03SIM-DI-OAV-01:STAT4:TS:TSCurrentPoint +# % gui, OAV.stats.stat4, demand, Number of Points, S03SIM-DI-OAV-01:STAT4:TS:TSNumPoints +# % gui, OAV.stats.stat4, enum, Update, S03SIM-DI-OAV-01:STAT4:TS:TSRead.SCAN +# Memory +# % gui, OAV.stats.stat4, groupHeading, Memory +# % gui, OAV.stats.stat4, readback, Max memory, S03SIM-DI-OAV-01:STAT4:PoolMaxMem +# % gui, OAV.stats.stat4, readback, Max buffers, S03SIM-DI-OAV-01:STAT4:PoolMaxBuffers +# % gui, OAV.stats.stat4, readback, Used memory, S03SIM-DI-OAV-01:STAT4:PoolUsedMem +# % gui, OAV.stats.stat4, readback, Allocated buffers, S03SIM-DI-OAV-01:STAT4:PoolAllocBuffers +# % gui, OAV.stats.stat4, readback, Free buffers, S03SIM-DI-OAV-01:STAT4:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT4:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat4,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT4:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat4,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT4:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat4,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT4:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat4,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT4:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat4,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT4:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat4,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT4:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat4,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT4:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat4,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:STAT4:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:STAT4:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT4:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT4:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:STAT4:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:STAT4:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT4:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:STAT4:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:STAT4:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:STAT4:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:STAT4:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:STAT4:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.stats.stat4,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.stats.stat4,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:STAT4:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:STAT4:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat4,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:STAT4:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:STAT4:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:STAT4:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:STAT4:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:STAT4:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:STAT4:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:STAT4:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT4:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:STAT4:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:STAT4:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT4:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT4:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:STAT4:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.stats.stat4,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:STAT4:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.stats.stat4,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:STAT4:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:STAT4:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:STAT4:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT4:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:STAT4:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:STAT4:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT4:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat4,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:STAT4:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.stats.stat4,0,1)NDARRAY_PORT") + field(VAL, "OAV.rois.roi1") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT4:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat4,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT4:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT4:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT4:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:STAT4:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT4:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT4:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:STAT4:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:STAT4:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT4:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:STAT4:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT4:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT4:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT4:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:STAT4:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT4:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT4:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:STAT4:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:STAT4:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:STAT4:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:STAT4:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:STAT4:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:STAT4:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:STAT4:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:STAT4:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:STAT4:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:STAT4:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:STAT4:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:STAT4:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:STAT4:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:STAT4:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT4:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT4:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:STAT4:SortSize") + field(OUT, "S03SIM-DI-OAV-01:STAT4:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:STAT4:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT4:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:STAT4:AsynIO") +{ + field(PORT, "OAV.stats.stat4") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records contain the basic statistics # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT4:ComputeStatistics") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)COMPUTE_STATISTICS") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT4:ComputeStatistics_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)COMPUTE_STATISTICS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT4:BgdWidth") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)BGD_WIDTH") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:BgdWidth_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)BGD_WIDTH") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:MinValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)MIN_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:MinValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)MIN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:MaxValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)MAX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:MaxValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)MAX_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:MeanValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)MEAN_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:MeanValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)MEAN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:SigmaValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)SIGMA_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:Sigma_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)SIGMA_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:Total") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)TOTAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:Total_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:Net") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)NET") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:Net_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)NET") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:MinX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)MIN_X") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:MinX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:MinY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)MIN_Y") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:MinY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:MaxX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)MAX_X") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:MaxX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)MAX_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:MaxY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)MAX_Y") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:MaxY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)MAX_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether centroid statistics are computed # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT4:ComputeCentroid") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)COMPUTE_CENTROID") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT4:ComputeCentroid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)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, "S03SIM-DI-OAV-01:STAT4:CentroidThreshold") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)CENTROID_THRESHOLD") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:CentroidThreshold_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)CENTROID_THRESHOLD") + field(VAL, "0") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:CentroidTotal") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)CENTROID_TOTAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:CentroidTotal_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)CENTROID_TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:CentroidX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)CENTROIDX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:CentroidX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)CENTROIDX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:CentroidY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)CENTROIDY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:CentroidY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)CENTROIDY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:SigmaX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)SIGMAX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:SigmaX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)SIGMAX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:SigmaY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)SIGMAY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:SigmaY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)SIGMAY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:SigmaXY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)SIGMAXY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:SigmaXY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)SIGMAXY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:SkewX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)SKEWX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:SkewX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)SKEWX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:SkewY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)SKEWY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:SkewY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)SKEWY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:KurtosisX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)KURTOSISX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:KurtosisX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)KURTOSISX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:KurtosisY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)KURTOSISY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:KurtosisY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)KURTOSISY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:Eccentricity") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)ECCENTRICITY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:Eccentricity_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)ECCENTRICITY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:Orientation") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)ORIENTATION_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:Orientation_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)ORIENTATION_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control time series # +################################################################### +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSMinValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,0,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSMinX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,1,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSMinY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,2,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSMaxValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,3,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSMaxX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,4,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSMaxY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,5,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSMeanValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,6,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSSigma") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,7,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,8,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSNet") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,9,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSCentroidTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,10,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSCentroidX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,11,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSCentroidY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,12,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSSigmaX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,13,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSSigmaY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,14,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSSigmaXY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,15,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSSkewX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,16,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSSkewY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,17,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSKurtosisX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,18,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSKurtosisY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,19,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSEccentricity") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,20,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSOrientation") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,21,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:TSTimestamp") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4_TS,22,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control profiles # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT4:ComputeProfiles") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)COMPUTE_PROFILES") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT4:ComputeProfiles_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)COMPUTE_PROFILES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ProfileSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)PROFILE_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:ProfileSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)PROFILE_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT4:CursorX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)CURSOR_X") + field(VAL, "256") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:CursorX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)CURSOR_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT4:CursorY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)CURSOR_Y") + field(VAL, "256") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:CursorY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)CURSOR_Y") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:CursorVal") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)CURSOR_VAL") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:ProfileAverageX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4,0,1)PROFILE_AVERAGE_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:ProfileAverageY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4,0,1)PROFILE_AVERAGE_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:ProfileThresholdX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4,0,1)PROFILE_THRESHOLD_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:ProfileThresholdY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4,0,1)PROFILE_THRESHOLD_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:ProfileCentroidX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4,0,1)PROFILE_CENTROID_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:ProfileCentroidY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4,0,1)PROFILE_CENTROID_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:ProfileCursorX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4,0,1)PROFILE_CURSOR_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:ProfileCursorY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4,0,1)PROFILE_CURSOR_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These are used to define the histogram # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT4:ComputeHistogram") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)COMPUTE_HISTOGRAM") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT4:ComputeHistogram_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)COMPUTE_HISTOGRAM") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT4:HistSize") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)HIST_SIZE") + field(VAL, "256") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:HistSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)HIST_SIZE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:HistMin") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)HIST_MIN") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:HistMin_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)HIST_MIN") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:HistMax") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)HIST_MAX") + field(VAL, "255") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:HistMax_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)HIST_MAX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT4:HistBelow") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)HIST_BELOW") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:HistBelow_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)HIST_BELOW") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT4:HistAbove") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat4,0,1)HIST_ABOVE") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:HistAbove_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat4,0,1)HIST_ABOVE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT4:HistEntropy") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat4,0,1)HIST_ENTROPY") +} + +record(ai, "S03SIM-DI-OAV-01:STAT4:HistEntropy_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat4,0,1)HIST_ENTROPY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:Histogram_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4,0,1)HIST_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT4:HistogramX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat4,0,1)HIST_X_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + 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, "S03SIM-DI-OAV-01:STAT4:MaxSizeX") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:ProfileSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:STAT4:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:STAT4:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:STAT4:CursorX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:STAT4:MaxSizeY") +{ + field(INP, "S03SIM-DI-OAV-01:STAT4:ProfileSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:STAT4:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:STAT4:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:STAT4:CursorY.HOPR NPP") +} + +################################################################### +# These records reset the statistics # +################################################################### +record(sseq, "S03SIM-DI-OAV-01:STAT4:Reset") +{ + field(LNK1, "S03SIM-DI-OAV-01:STAT4:MinValue PP MS") + field(LNK2, "S03SIM-DI-OAV-01:STAT4:MaxValue PP MS") + field(LNK3, "S03SIM-DI-OAV-01:STAT4:MeanValue PP MS") + field(LNK4, "S03SIM-DI-OAV-01:STAT4:SigmaValue PP MS") + field(LNK5, "S03SIM-DI-OAV-01:STAT4:Total PP MS") + field(LNK6, "S03SIM-DI-OAV-01:STAT4:Net PP MS") + field(LNK7, "S03SIM-DI-OAV-01:STAT4:MinX PP MS") + field(LNK8, "S03SIM-DI-OAV-01:STAT4:MinY PP MS") + field(LNK9, "S03SIM-DI-OAV-01:STAT4:MaxX PP MS") + field(LNKA, "S03SIM-DI-OAV-01:STAT4:MaxY PP MS") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Reset1") +} + +record(sseq, "S03SIM-DI-OAV-01:STAT4:Reset1") +{ + field(LNK1, "S03SIM-DI-OAV-01:STAT4:CentroidX PP MS") + field(LNK2, "S03SIM-DI-OAV-01:STAT4:CentroidY PP MS") + field(LNK3, "S03SIM-DI-OAV-01:STAT4:SigmaX PP MS") + field(LNK4, "S03SIM-DI-OAV-01:STAT4:SigmaY PP MS") + field(LNK5, "S03SIM-DI-OAV-01:STAT4:SigmaXY PP MS") + field(LNK6, "S03SIM-DI-OAV-01:STAT4:CentroidTotal PP MS") + field(LNK7, "S03SIM-DI-OAV-01:STAT4:SkewX PP MS") + field(LNK8, "S03SIM-DI-OAV-01:STAT4:SkewY PP MS") + field(LNK9, "S03SIM-DI-OAV-01:STAT4:KurtosisX PP MS") + field(LNKA, "S03SIM-DI-OAV-01:STAT4:KurtosisY PP MS") + field(FLNK, "S03SIM-DI-OAV-01:STAT4:Reset2") +} + +record(sseq, "S03SIM-DI-OAV-01:STAT4:Reset2") +{ + field(LNK1, "S03SIM-DI-OAV-01:STAT4:Eccentricity PP MS") + field(LNK2, "S03SIM-DI-OAV-01:STAT4:Orientation PP MS") + field(LNK3, "S03SIM-DI-OAV-01:STAT4:HistBelow PP MS") + field(LNK4, "S03SIM-DI-OAV-01:STAT4:HistAbove PP MS") + field(LNK5, "S03SIM-DI-OAV-01:STAT4:HistEntropy PP MS") +} + +#=================================================================# +# Template file: NDStats.template + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, NCHANS, Number of channels +# % macro, XSIZE, x size +# % macro, YSIZE, y size +# % macro, HIST_SIZE, hist size +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Timeout +# % macro, TS_PORT, TS port + +# This associates the template with an edm screen +# % gui, OAV.stats.stat5, edmtab, NDStats.edl, P=S03SIM-DI-OAV-01,R=:STAT5: + +# This associates a BOY screen with the template +# % gui, OAV.stats.stat5, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-DI-OAV-01, R=:STAT5:, DESC=Statistics +# % gui, OAV.stats.stat5, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-DI-OAV-01, R=:STAT5:, DESC=Statistics +# % gui, OAV.stats.stat5, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-DI-OAV-01, R=:STAT5:, DESC=Statistics + + +# % gui, OAV.stats.stat5, groupHeading, Info +# % gui, OAV.stats.stat5, readback, Port name, S03SIM-DI-OAV-01:STAT5:PortName_RBV +# % gui, OAV.stats.stat5, readback, Plugin type, S03SIM-DI-OAV-01:STAT5:PluginType_RBV +# Input +# % gui, OAV.stats.stat5, demandString, Input, S03SIM-DI-OAV-01:STAT5:NDArrayPort +# % gui, OAV.stats.stat5, readback, Input, S03SIM-DI-OAV-01:STAT5:NDArrayPort_RBV + +# % gui, OAV.stats.stat5, groupHeading, Callback +# % gui, OAV.stats.stat5, enum, Callbacks, S03SIM-DI-OAV-01:STAT5:EnableCallbacks +# % gui, OAV.stats.stat5, statusbits, Callbacks, S03SIM-DI-OAV-01:STAT5:EnableCallbacks_RBV +# % gui, OAV.stats.stat5, demand, Min Callback Time, S03SIM-DI-OAV-01:STAT5:MinCallbackTime +# % gui, OAV.stats.stat5, readback, Min Callback Time, S03SIM-DI-OAV-01:STAT5:MinCallbackTime_RBV +# % gui, OAV.stats.stat5, enum, Block Callbacks, S03SIM-DI-OAV-01:STAT5:BlockingCallbacks +# % gui, OAV.stats.stat5, statusbits, Block Callbacks, S03SIM-DI-OAV-01:STAT5:BlockingCallbacks_RBV + +# % gui, OAV.stats.stat5, groupHeading, Counters +# % gui, OAV.stats.stat5, demand, Array Counter, S03SIM-DI-OAV-01:STAT5:ArrayCounter +# % gui, OAV.stats.stat5, readback, Array Counter, S03SIM-DI-OAV-01:STAT5:ArrayCounter_RBV +# % gui, OAV.stats.stat5, readback, Array Rate (fps), S03SIM-DI-OAV-01:STAT5:ArrayRate_RBV +# % gui, OAV.stats.stat5, readback, Queue Use, S03SIM-DI-OAV-01:STAT5:QueueUse +# % gui, OAV.stats.stat5, readback, Queue Size, S03SIM-DI-OAV-01:STAT5:QueueSize +# % gui, OAV.stats.stat5, demand, Dropped Arrays, S03SIM-DI-OAV-01:STAT5:DroppedArrays +# % gui, OAV.stats.stat5, readback, Dropped Arrays, S03SIM-DI-OAV-01:STAT5:DroppedArrays_RBV + +# % gui, OAV.stats.stat5, groupHeading, Array Settings +# % gui, OAV.stats.stat5, readback, Num Dimensions, S03SIM-DI-OAV-01:STAT5:NDimensions_RBV +# % gui, OAV.stats.stat5, readback, Dim 0 Size, S03SIM-DI-OAV-01:STAT5:ArraySize0_RBV +# % gui, OAV.stats.stat5, readback, Dim 1 Size, S03SIM-DI-OAV-01:STAT5:ArraySize1_RBV +# % gui, OAV.stats.stat5, readback, Dim 2 Size, S03SIM-DI-OAV-01:STAT5:ArraySize2_RBV +# % gui, OAV.stats.stat5, readback, Input Data Type, S03SIM-DI-OAV-01:STAT5:DataType_RBV +# % gui, OAV.stats.stat5, readback, Colour Mode, S03SIM-DI-OAV-01:STAT5:ColorMode_RBV +# % gui, OAV.stats.stat5, readback, Bayer Pattern, S03SIM-DI-OAV-01:STAT5:BayerPattern_RBV +# % gui, OAV.stats.stat5, readback, Unique id, S03SIM-DI-OAV-01:STAT5:UniqueId_RBV +# % gui, OAV.stats.stat5, readback, Timestamp, S03SIM-DI-OAV-01:STAT5:TimeStamp_RBV + +# Output +# % gui, OAV.stats.stat5, groupHeading, Output +# % gui, OAV.stats.stat5, demand, Name, S03SIM-DI-OAV-01:STAT5:Name +# % gui, OAV.stats.stat5, enum, Out data type, S03SIM-DI-OAV-01:STAT5:DataTypeOut +# % gui, OAV.stats.stat5, readback, Out data type, S03SIM-DI-OAV-01:STAT5:DataTypeOut_RBV +# % gui, OAV.stats.stat5, demand, Attributes file, S03SIM-DI-OAV-01:STAT5:NDAttributesFile + +# Statistics +# % gui, OAV.stats.stat5, groupHeading, Statistics +# % gui, OAV.stats.stat5, enum, Compute Statistics, S03SIM-DI-OAV-01:STAT5:ComputeStatistics +# % gui, OAV.stats.stat5, statusbits, Compute Statistics, S03SIM-DI-OAV-01:STAT5:ComputeStatistics_RBV +# % gui, OAV.stats.stat5, demand, Background Width, S03SIM-DI-OAV-01:STAT5:BgdWidth +# % gui, OAV.stats.stat5, readback, Background Width, S03SIM-DI-OAV-01:STAT5:BgdWidth_RBV +# % gui, OAV.stats.stat5, readback, Minimum Value, S03SIM-DI-OAV-01:STAT5:MinValue_RBV +# % gui, OAV.stats.stat5, readback, Minimum X, S03SIM-DI-OAV-01:STAT5:MinX_RBV +# % gui, OAV.stats.stat5, readback, Minimum Y, S03SIM-DI-OAV-01:STAT5:MinY_RBV +# % gui, OAV.stats.stat5, readback, Maximum Value, S03SIM-DI-OAV-01:STAT5:MaxValue_RBV +# % gui, OAV.stats.stat5, readback, Maximum X, S03SIM-DI-OAV-01:STAT5:MaxX_RBV +# % gui, OAV.stats.stat5, readback, Maximum Y, S03SIM-DI-OAV-01:STAT5:MaxY_RBV +# % gui, OAV.stats.stat5, readback, Mean Value, S03SIM-DI-OAV-01:STAT5:MeanValue_RBV +# % gui, OAV.stats.stat5, readback, Total, S03SIM-DI-OAV-01:STAT5:Total_RBV +# % gui, OAV.stats.stat5, readback, Sigma, S03SIM-DI-OAV-01:STAT5:Sigma_RBV +# % gui, OAV.stats.stat5, readback, Net, S03SIM-DI-OAV-01:STAT5:Net_RBV +# Centroid +# % gui, OAV.stats.stat5, groupHeading, Centroid +# % gui, OAV.stats.stat5, enum, Compute Centroid, S03SIM-DI-OAV-01:STAT5:ComputeCentroid +# % gui, OAV.stats.stat5, statusbits, Compute Centroid, S03SIM-DI-OAV-01:STAT5:ComputeCentroid_RBV +# % gui, OAV.stats.stat5, demand, Threshold, S03SIM-DI-OAV-01:STAT5:CentroidThreshold +# % gui, OAV.stats.stat5, readback, Threshold, S03SIM-DI-OAV-01:STAT5:CentroidThreshold_RBV +# % gui, OAV.stats.stat5, readback, X, S03SIM-DI-OAV-01:STAT5:CentroidX_RBV +# % gui, OAV.stats.stat5, readback, Sigma X, S03SIM-DI-OAV-01:STAT5:SigmaX_RBV +# % gui, OAV.stats.stat5, readback, Y, S03SIM-DI-OAV-01:STAT5:CentroidY_RBV +# % gui, OAV.stats.stat5, readback, Sigma Y, S03SIM-DI-OAV-01:STAT5:SigmaY_RBV +# % gui, OAV.stats.stat5, readback, Sigma XY, S03SIM-DI-OAV-01:STAT5:SigmaXY_RBV +# Histogram +# % gui, OAV.stats.stat5, groupHeading, Histogram +# % gui, OAV.stats.stat5, enum, Compute Histogram, S03SIM-DI-OAV-01:STAT5:ComputeHistogram +# % gui, OAV.stats.stat5, statusbits, Compute Histogram, S03SIM-DI-OAV-01:STAT5:ComputeHistogram_RBV +# % gui, OAV.stats.stat5, demand, Histogram Size, S03SIM-DI-OAV-01:STAT5:HistSize +# % gui, OAV.stats.stat5, readback, Histogram Size, S03SIM-DI-OAV-01:STAT5:HistSize_RBV +# % gui, OAV.stats.stat5, demand, Histogram Min, S03SIM-DI-OAV-01:STAT5:HistMin +# % gui, OAV.stats.stat5, readback, Histogram Min, S03SIM-DI-OAV-01:STAT5:HistMin_RBV +# % gui, OAV.stats.stat5, demand, Histogram Max, S03SIM-DI-OAV-01:STAT5:HistMax +# % gui, OAV.stats.stat5, readback, Histogram Max, S03SIM-DI-OAV-01:STAT5:HistMax_RBV +# % gui, OAV.stats.stat5, readback, Histogram Entropy, S03SIM-DI-OAV-01:STAT5:HistEntropy_RBV +# Profiles +# % gui, OAV.stats.stat5, groupHeading, Profiles +# % gui, OAV.stats.stat5, enum, Compute Profiles, S03SIM-DI-OAV-01:STAT5:ComputeProfiles +# % gui, OAV.stats.stat5, statusbits, Compute Profiles, S03SIM-DI-OAV-01:STAT5:ComputeProfiles_RBV +# % gui, OAV.stats.stat5, demand, Cursor X, S03SIM-DI-OAV-01:STAT5:CursorX +# % gui, OAV.stats.stat5, readback, Cursor X, S03SIM-DI-OAV-01:STAT5:CursorX_RBV +# % gui, OAV.stats.stat5, demand, Cursor Y, S03SIM-DI-OAV-01:STAT5:CursorY +# % gui, OAV.stats.stat5, readback, Cursor Y, S03SIM-DI-OAV-01:STAT5:CursorY_RBV +# % gui, OAV.stats.stat5, readback, Size X, S03SIM-DI-OAV-01:STAT5:ProfileSizeX_RBV +# % gui, OAV.stats.stat5, readback, Size Y, S03SIM-DI-OAV-01:STAT5:ProfileSizeY_RBV +# Time series +# % gui, OAV.stats.stat5, groupHeading, Time Series +# % gui, OAV.stats.stat5, enum, Time Control, S03SIM-DI-OAV-01:STAT5:TS:TSAcquire +# % gui, OAV.stats.stat5, statusbits, Acquiring, S03SIM-DI-OAV-01:STAT5:TS:TSAcquiring +# % gui, OAV.stats.stat5, readback, Current Point, S03SIM-DI-OAV-01:STAT5:TS:TSCurrentPoint +# % gui, OAV.stats.stat5, demand, Number of Points, S03SIM-DI-OAV-01:STAT5:TS:TSNumPoints +# % gui, OAV.stats.stat5, enum, Update, S03SIM-DI-OAV-01:STAT5:TS:TSRead.SCAN +# Memory +# % gui, OAV.stats.stat5, groupHeading, Memory +# % gui, OAV.stats.stat5, readback, Max memory, S03SIM-DI-OAV-01:STAT5:PoolMaxMem +# % gui, OAV.stats.stat5, readback, Max buffers, S03SIM-DI-OAV-01:STAT5:PoolMaxBuffers +# % gui, OAV.stats.stat5, readback, Used memory, S03SIM-DI-OAV-01:STAT5:PoolUsedMem +# % gui, OAV.stats.stat5, readback, Allocated buffers, S03SIM-DI-OAV-01:STAT5:PoolAllocBuffers +# % gui, OAV.stats.stat5, readback, Free buffers, S03SIM-DI-OAV-01:STAT5:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT5:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat5,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT5:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat5,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT5:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat5,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT5:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat5,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT5:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat5,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT5:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat5,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT5:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat5,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT5:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat5,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:STAT5:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:STAT5:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT5:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT5:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:STAT5:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:STAT5:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT5:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:STAT5:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:STAT5:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:STAT5:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:STAT5:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:STAT5:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.stats.stat5,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.stats.stat5,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:STAT5:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:STAT5:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat5,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:STAT5:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:STAT5:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:STAT5:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:STAT5:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:STAT5:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:STAT5:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:STAT5:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT5:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:STAT5:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:STAT5:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT5:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT5:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:STAT5:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.stats.stat5,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:STAT5:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.stats.stat5,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:STAT5:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:STAT5:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:STAT5:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT5:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:STAT5:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:STAT5:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT5:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat5,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:STAT5:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.stats.stat5,0,1)NDARRAY_PORT") + field(VAL, "OAV.rois.roi1") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT5:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat5,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT5:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT5:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT5:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:STAT5:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT5:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT5:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:STAT5:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:STAT5:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT5:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:STAT5:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT5:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT5:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT5:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:STAT5:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT5:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT5:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:STAT5:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:STAT5:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:STAT5:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:STAT5:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:STAT5:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:STAT5:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:STAT5:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:STAT5:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:STAT5:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:STAT5:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:STAT5:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:STAT5:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:STAT5:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:STAT5:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT5:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT5:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:STAT5:SortSize") + field(OUT, "S03SIM-DI-OAV-01:STAT5:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:STAT5:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT5:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:STAT5:AsynIO") +{ + field(PORT, "OAV.stats.stat5") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records contain the basic statistics # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT5:ComputeStatistics") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)COMPUTE_STATISTICS") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT5:ComputeStatistics_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)COMPUTE_STATISTICS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT5:BgdWidth") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)BGD_WIDTH") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:BgdWidth_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)BGD_WIDTH") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:MinValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)MIN_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:MinValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)MIN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:MaxValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)MAX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:MaxValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)MAX_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:MeanValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)MEAN_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:MeanValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)MEAN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:SigmaValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)SIGMA_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:Sigma_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)SIGMA_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:Total") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)TOTAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:Total_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:Net") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)NET") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:Net_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)NET") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:MinX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)MIN_X") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:MinX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:MinY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)MIN_Y") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:MinY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:MaxX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)MAX_X") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:MaxX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)MAX_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:MaxY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)MAX_Y") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:MaxY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)MAX_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether centroid statistics are computed # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT5:ComputeCentroid") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)COMPUTE_CENTROID") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT5:ComputeCentroid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)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, "S03SIM-DI-OAV-01:STAT5:CentroidThreshold") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)CENTROID_THRESHOLD") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:CentroidThreshold_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)CENTROID_THRESHOLD") + field(VAL, "0") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:CentroidTotal") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)CENTROID_TOTAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:CentroidTotal_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)CENTROID_TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:CentroidX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)CENTROIDX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:CentroidX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)CENTROIDX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:CentroidY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)CENTROIDY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:CentroidY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)CENTROIDY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:SigmaX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)SIGMAX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:SigmaX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)SIGMAX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:SigmaY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)SIGMAY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:SigmaY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)SIGMAY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:SigmaXY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)SIGMAXY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:SigmaXY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)SIGMAXY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:SkewX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)SKEWX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:SkewX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)SKEWX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:SkewY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)SKEWY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:SkewY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)SKEWY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:KurtosisX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)KURTOSISX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:KurtosisX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)KURTOSISX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:KurtosisY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)KURTOSISY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:KurtosisY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)KURTOSISY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:Eccentricity") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)ECCENTRICITY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:Eccentricity_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)ECCENTRICITY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:Orientation") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)ORIENTATION_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:Orientation_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)ORIENTATION_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control time series # +################################################################### +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSMinValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,0,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSMinX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,1,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSMinY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,2,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSMaxValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,3,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSMaxX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,4,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSMaxY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,5,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSMeanValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,6,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSSigma") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,7,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,8,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSNet") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,9,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSCentroidTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,10,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSCentroidX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,11,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSCentroidY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,12,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSSigmaX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,13,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSSigmaY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,14,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSSigmaXY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,15,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSSkewX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,16,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSSkewY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,17,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSKurtosisX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,18,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSKurtosisY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,19,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSEccentricity") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,20,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSOrientation") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,21,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:TSTimestamp") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5_TS,22,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control profiles # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT5:ComputeProfiles") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)COMPUTE_PROFILES") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT5:ComputeProfiles_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)COMPUTE_PROFILES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ProfileSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)PROFILE_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:ProfileSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)PROFILE_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT5:CursorX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)CURSOR_X") + field(VAL, "256") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:CursorX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)CURSOR_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT5:CursorY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)CURSOR_Y") + field(VAL, "256") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:CursorY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)CURSOR_Y") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:CursorVal") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)CURSOR_VAL") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:ProfileAverageX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5,0,1)PROFILE_AVERAGE_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:ProfileAverageY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5,0,1)PROFILE_AVERAGE_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:ProfileThresholdX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5,0,1)PROFILE_THRESHOLD_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:ProfileThresholdY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5,0,1)PROFILE_THRESHOLD_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:ProfileCentroidX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5,0,1)PROFILE_CENTROID_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:ProfileCentroidY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5,0,1)PROFILE_CENTROID_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:ProfileCursorX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5,0,1)PROFILE_CURSOR_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:ProfileCursorY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5,0,1)PROFILE_CURSOR_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These are used to define the histogram # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT5:ComputeHistogram") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)COMPUTE_HISTOGRAM") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT5:ComputeHistogram_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)COMPUTE_HISTOGRAM") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT5:HistSize") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)HIST_SIZE") + field(VAL, "256") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:HistSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)HIST_SIZE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:HistMin") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)HIST_MIN") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:HistMin_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)HIST_MIN") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:HistMax") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)HIST_MAX") + field(VAL, "255") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:HistMax_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)HIST_MAX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT5:HistBelow") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)HIST_BELOW") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:HistBelow_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)HIST_BELOW") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT5:HistAbove") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat5,0,1)HIST_ABOVE") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:HistAbove_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat5,0,1)HIST_ABOVE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT5:HistEntropy") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat5,0,1)HIST_ENTROPY") +} + +record(ai, "S03SIM-DI-OAV-01:STAT5:HistEntropy_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat5,0,1)HIST_ENTROPY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:Histogram_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5,0,1)HIST_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT5:HistogramX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat5,0,1)HIST_X_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + 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, "S03SIM-DI-OAV-01:STAT5:MaxSizeX") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:ProfileSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:STAT5:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:STAT5:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:STAT5:CursorX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:STAT5:MaxSizeY") +{ + field(INP, "S03SIM-DI-OAV-01:STAT5:ProfileSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:STAT5:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:STAT5:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:STAT5:CursorY.HOPR NPP") +} + +################################################################### +# These records reset the statistics # +################################################################### +record(sseq, "S03SIM-DI-OAV-01:STAT5:Reset") +{ + field(LNK1, "S03SIM-DI-OAV-01:STAT5:MinValue PP MS") + field(LNK2, "S03SIM-DI-OAV-01:STAT5:MaxValue PP MS") + field(LNK3, "S03SIM-DI-OAV-01:STAT5:MeanValue PP MS") + field(LNK4, "S03SIM-DI-OAV-01:STAT5:SigmaValue PP MS") + field(LNK5, "S03SIM-DI-OAV-01:STAT5:Total PP MS") + field(LNK6, "S03SIM-DI-OAV-01:STAT5:Net PP MS") + field(LNK7, "S03SIM-DI-OAV-01:STAT5:MinX PP MS") + field(LNK8, "S03SIM-DI-OAV-01:STAT5:MinY PP MS") + field(LNK9, "S03SIM-DI-OAV-01:STAT5:MaxX PP MS") + field(LNKA, "S03SIM-DI-OAV-01:STAT5:MaxY PP MS") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Reset1") +} + +record(sseq, "S03SIM-DI-OAV-01:STAT5:Reset1") +{ + field(LNK1, "S03SIM-DI-OAV-01:STAT5:CentroidX PP MS") + field(LNK2, "S03SIM-DI-OAV-01:STAT5:CentroidY PP MS") + field(LNK3, "S03SIM-DI-OAV-01:STAT5:SigmaX PP MS") + field(LNK4, "S03SIM-DI-OAV-01:STAT5:SigmaY PP MS") + field(LNK5, "S03SIM-DI-OAV-01:STAT5:SigmaXY PP MS") + field(LNK6, "S03SIM-DI-OAV-01:STAT5:CentroidTotal PP MS") + field(LNK7, "S03SIM-DI-OAV-01:STAT5:SkewX PP MS") + field(LNK8, "S03SIM-DI-OAV-01:STAT5:SkewY PP MS") + field(LNK9, "S03SIM-DI-OAV-01:STAT5:KurtosisX PP MS") + field(LNKA, "S03SIM-DI-OAV-01:STAT5:KurtosisY PP MS") + field(FLNK, "S03SIM-DI-OAV-01:STAT5:Reset2") +} + +record(sseq, "S03SIM-DI-OAV-01:STAT5:Reset2") +{ + field(LNK1, "S03SIM-DI-OAV-01:STAT5:Eccentricity PP MS") + field(LNK2, "S03SIM-DI-OAV-01:STAT5:Orientation PP MS") + field(LNK3, "S03SIM-DI-OAV-01:STAT5:HistBelow PP MS") + field(LNK4, "S03SIM-DI-OAV-01:STAT5:HistAbove PP MS") + field(LNK5, "S03SIM-DI-OAV-01:STAT5:HistEntropy PP MS") +} + +#=================================================================# +# Template file: NDStats.template + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, NCHANS, Number of channels +# % macro, XSIZE, x size +# % macro, YSIZE, y size +# % macro, HIST_SIZE, hist size +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Timeout +# % macro, TS_PORT, TS port + +# This associates the template with an edm screen +# % gui, OAV.stats.stat6, edmtab, NDStats.edl, P=S03SIM-DI-OAV-01,R=:STAT6: + +# This associates a BOY screen with the template +# % gui, OAV.stats.stat6, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-DI-OAV-01, R=:STAT6:, DESC=Statistics +# % gui, OAV.stats.stat6, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-DI-OAV-01, R=:STAT6:, DESC=Statistics +# % gui, OAV.stats.stat6, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-DI-OAV-01, R=:STAT6:, DESC=Statistics + + +# % gui, OAV.stats.stat6, groupHeading, Info +# % gui, OAV.stats.stat6, readback, Port name, S03SIM-DI-OAV-01:STAT6:PortName_RBV +# % gui, OAV.stats.stat6, readback, Plugin type, S03SIM-DI-OAV-01:STAT6:PluginType_RBV +# Input +# % gui, OAV.stats.stat6, demandString, Input, S03SIM-DI-OAV-01:STAT6:NDArrayPort +# % gui, OAV.stats.stat6, readback, Input, S03SIM-DI-OAV-01:STAT6:NDArrayPort_RBV + +# % gui, OAV.stats.stat6, groupHeading, Callback +# % gui, OAV.stats.stat6, enum, Callbacks, S03SIM-DI-OAV-01:STAT6:EnableCallbacks +# % gui, OAV.stats.stat6, statusbits, Callbacks, S03SIM-DI-OAV-01:STAT6:EnableCallbacks_RBV +# % gui, OAV.stats.stat6, demand, Min Callback Time, S03SIM-DI-OAV-01:STAT6:MinCallbackTime +# % gui, OAV.stats.stat6, readback, Min Callback Time, S03SIM-DI-OAV-01:STAT6:MinCallbackTime_RBV +# % gui, OAV.stats.stat6, enum, Block Callbacks, S03SIM-DI-OAV-01:STAT6:BlockingCallbacks +# % gui, OAV.stats.stat6, statusbits, Block Callbacks, S03SIM-DI-OAV-01:STAT6:BlockingCallbacks_RBV + +# % gui, OAV.stats.stat6, groupHeading, Counters +# % gui, OAV.stats.stat6, demand, Array Counter, S03SIM-DI-OAV-01:STAT6:ArrayCounter +# % gui, OAV.stats.stat6, readback, Array Counter, S03SIM-DI-OAV-01:STAT6:ArrayCounter_RBV +# % gui, OAV.stats.stat6, readback, Array Rate (fps), S03SIM-DI-OAV-01:STAT6:ArrayRate_RBV +# % gui, OAV.stats.stat6, readback, Queue Use, S03SIM-DI-OAV-01:STAT6:QueueUse +# % gui, OAV.stats.stat6, readback, Queue Size, S03SIM-DI-OAV-01:STAT6:QueueSize +# % gui, OAV.stats.stat6, demand, Dropped Arrays, S03SIM-DI-OAV-01:STAT6:DroppedArrays +# % gui, OAV.stats.stat6, readback, Dropped Arrays, S03SIM-DI-OAV-01:STAT6:DroppedArrays_RBV + +# % gui, OAV.stats.stat6, groupHeading, Array Settings +# % gui, OAV.stats.stat6, readback, Num Dimensions, S03SIM-DI-OAV-01:STAT6:NDimensions_RBV +# % gui, OAV.stats.stat6, readback, Dim 0 Size, S03SIM-DI-OAV-01:STAT6:ArraySize0_RBV +# % gui, OAV.stats.stat6, readback, Dim 1 Size, S03SIM-DI-OAV-01:STAT6:ArraySize1_RBV +# % gui, OAV.stats.stat6, readback, Dim 2 Size, S03SIM-DI-OAV-01:STAT6:ArraySize2_RBV +# % gui, OAV.stats.stat6, readback, Input Data Type, S03SIM-DI-OAV-01:STAT6:DataType_RBV +# % gui, OAV.stats.stat6, readback, Colour Mode, S03SIM-DI-OAV-01:STAT6:ColorMode_RBV +# % gui, OAV.stats.stat6, readback, Bayer Pattern, S03SIM-DI-OAV-01:STAT6:BayerPattern_RBV +# % gui, OAV.stats.stat6, readback, Unique id, S03SIM-DI-OAV-01:STAT6:UniqueId_RBV +# % gui, OAV.stats.stat6, readback, Timestamp, S03SIM-DI-OAV-01:STAT6:TimeStamp_RBV + +# Output +# % gui, OAV.stats.stat6, groupHeading, Output +# % gui, OAV.stats.stat6, demand, Name, S03SIM-DI-OAV-01:STAT6:Name +# % gui, OAV.stats.stat6, enum, Out data type, S03SIM-DI-OAV-01:STAT6:DataTypeOut +# % gui, OAV.stats.stat6, readback, Out data type, S03SIM-DI-OAV-01:STAT6:DataTypeOut_RBV +# % gui, OAV.stats.stat6, demand, Attributes file, S03SIM-DI-OAV-01:STAT6:NDAttributesFile + +# Statistics +# % gui, OAV.stats.stat6, groupHeading, Statistics +# % gui, OAV.stats.stat6, enum, Compute Statistics, S03SIM-DI-OAV-01:STAT6:ComputeStatistics +# % gui, OAV.stats.stat6, statusbits, Compute Statistics, S03SIM-DI-OAV-01:STAT6:ComputeStatistics_RBV +# % gui, OAV.stats.stat6, demand, Background Width, S03SIM-DI-OAV-01:STAT6:BgdWidth +# % gui, OAV.stats.stat6, readback, Background Width, S03SIM-DI-OAV-01:STAT6:BgdWidth_RBV +# % gui, OAV.stats.stat6, readback, Minimum Value, S03SIM-DI-OAV-01:STAT6:MinValue_RBV +# % gui, OAV.stats.stat6, readback, Minimum X, S03SIM-DI-OAV-01:STAT6:MinX_RBV +# % gui, OAV.stats.stat6, readback, Minimum Y, S03SIM-DI-OAV-01:STAT6:MinY_RBV +# % gui, OAV.stats.stat6, readback, Maximum Value, S03SIM-DI-OAV-01:STAT6:MaxValue_RBV +# % gui, OAV.stats.stat6, readback, Maximum X, S03SIM-DI-OAV-01:STAT6:MaxX_RBV +# % gui, OAV.stats.stat6, readback, Maximum Y, S03SIM-DI-OAV-01:STAT6:MaxY_RBV +# % gui, OAV.stats.stat6, readback, Mean Value, S03SIM-DI-OAV-01:STAT6:MeanValue_RBV +# % gui, OAV.stats.stat6, readback, Total, S03SIM-DI-OAV-01:STAT6:Total_RBV +# % gui, OAV.stats.stat6, readback, Sigma, S03SIM-DI-OAV-01:STAT6:Sigma_RBV +# % gui, OAV.stats.stat6, readback, Net, S03SIM-DI-OAV-01:STAT6:Net_RBV +# Centroid +# % gui, OAV.stats.stat6, groupHeading, Centroid +# % gui, OAV.stats.stat6, enum, Compute Centroid, S03SIM-DI-OAV-01:STAT6:ComputeCentroid +# % gui, OAV.stats.stat6, statusbits, Compute Centroid, S03SIM-DI-OAV-01:STAT6:ComputeCentroid_RBV +# % gui, OAV.stats.stat6, demand, Threshold, S03SIM-DI-OAV-01:STAT6:CentroidThreshold +# % gui, OAV.stats.stat6, readback, Threshold, S03SIM-DI-OAV-01:STAT6:CentroidThreshold_RBV +# % gui, OAV.stats.stat6, readback, X, S03SIM-DI-OAV-01:STAT6:CentroidX_RBV +# % gui, OAV.stats.stat6, readback, Sigma X, S03SIM-DI-OAV-01:STAT6:SigmaX_RBV +# % gui, OAV.stats.stat6, readback, Y, S03SIM-DI-OAV-01:STAT6:CentroidY_RBV +# % gui, OAV.stats.stat6, readback, Sigma Y, S03SIM-DI-OAV-01:STAT6:SigmaY_RBV +# % gui, OAV.stats.stat6, readback, Sigma XY, S03SIM-DI-OAV-01:STAT6:SigmaXY_RBV +# Histogram +# % gui, OAV.stats.stat6, groupHeading, Histogram +# % gui, OAV.stats.stat6, enum, Compute Histogram, S03SIM-DI-OAV-01:STAT6:ComputeHistogram +# % gui, OAV.stats.stat6, statusbits, Compute Histogram, S03SIM-DI-OAV-01:STAT6:ComputeHistogram_RBV +# % gui, OAV.stats.stat6, demand, Histogram Size, S03SIM-DI-OAV-01:STAT6:HistSize +# % gui, OAV.stats.stat6, readback, Histogram Size, S03SIM-DI-OAV-01:STAT6:HistSize_RBV +# % gui, OAV.stats.stat6, demand, Histogram Min, S03SIM-DI-OAV-01:STAT6:HistMin +# % gui, OAV.stats.stat6, readback, Histogram Min, S03SIM-DI-OAV-01:STAT6:HistMin_RBV +# % gui, OAV.stats.stat6, demand, Histogram Max, S03SIM-DI-OAV-01:STAT6:HistMax +# % gui, OAV.stats.stat6, readback, Histogram Max, S03SIM-DI-OAV-01:STAT6:HistMax_RBV +# % gui, OAV.stats.stat6, readback, Histogram Entropy, S03SIM-DI-OAV-01:STAT6:HistEntropy_RBV +# Profiles +# % gui, OAV.stats.stat6, groupHeading, Profiles +# % gui, OAV.stats.stat6, enum, Compute Profiles, S03SIM-DI-OAV-01:STAT6:ComputeProfiles +# % gui, OAV.stats.stat6, statusbits, Compute Profiles, S03SIM-DI-OAV-01:STAT6:ComputeProfiles_RBV +# % gui, OAV.stats.stat6, demand, Cursor X, S03SIM-DI-OAV-01:STAT6:CursorX +# % gui, OAV.stats.stat6, readback, Cursor X, S03SIM-DI-OAV-01:STAT6:CursorX_RBV +# % gui, OAV.stats.stat6, demand, Cursor Y, S03SIM-DI-OAV-01:STAT6:CursorY +# % gui, OAV.stats.stat6, readback, Cursor Y, S03SIM-DI-OAV-01:STAT6:CursorY_RBV +# % gui, OAV.stats.stat6, readback, Size X, S03SIM-DI-OAV-01:STAT6:ProfileSizeX_RBV +# % gui, OAV.stats.stat6, readback, Size Y, S03SIM-DI-OAV-01:STAT6:ProfileSizeY_RBV +# Time series +# % gui, OAV.stats.stat6, groupHeading, Time Series +# % gui, OAV.stats.stat6, enum, Time Control, S03SIM-DI-OAV-01:STAT6:TS:TSAcquire +# % gui, OAV.stats.stat6, statusbits, Acquiring, S03SIM-DI-OAV-01:STAT6:TS:TSAcquiring +# % gui, OAV.stats.stat6, readback, Current Point, S03SIM-DI-OAV-01:STAT6:TS:TSCurrentPoint +# % gui, OAV.stats.stat6, demand, Number of Points, S03SIM-DI-OAV-01:STAT6:TS:TSNumPoints +# % gui, OAV.stats.stat6, enum, Update, S03SIM-DI-OAV-01:STAT6:TS:TSRead.SCAN +# Memory +# % gui, OAV.stats.stat6, groupHeading, Memory +# % gui, OAV.stats.stat6, readback, Max memory, S03SIM-DI-OAV-01:STAT6:PoolMaxMem +# % gui, OAV.stats.stat6, readback, Max buffers, S03SIM-DI-OAV-01:STAT6:PoolMaxBuffers +# % gui, OAV.stats.stat6, readback, Used memory, S03SIM-DI-OAV-01:STAT6:PoolUsedMem +# % gui, OAV.stats.stat6, readback, Allocated buffers, S03SIM-DI-OAV-01:STAT6:PoolAllocBuffers +# % gui, OAV.stats.stat6, readback, Free buffers, S03SIM-DI-OAV-01:STAT6:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT6:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat6,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT6:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat6,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT6:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat6,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT6:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat6,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT6:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat6,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT6:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat6,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT6:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat6,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT6:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat6,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:STAT6:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:STAT6:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT6:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT6:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:STAT6:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:STAT6:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT6:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:STAT6:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:STAT6:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:STAT6:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:STAT6:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:STAT6:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.stats.stat6,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.stats.stat6,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:STAT6:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:STAT6:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat6,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:STAT6:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:STAT6:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:STAT6:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:STAT6:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:STAT6:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:STAT6:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:STAT6:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT6:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:STAT6:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:STAT6:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT6:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT6:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:STAT6:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.stats.stat6,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:STAT6:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.stats.stat6,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:STAT6:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:STAT6:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:STAT6:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT6:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:STAT6:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:STAT6:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:STAT6:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat6,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:STAT6:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.stats.stat6,0,1)NDARRAY_PORT") + field(VAL, "OAV.rois.roi1") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:STAT6:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.stats.stat6,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT6:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT6:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT6:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:STAT6:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT6:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT6:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:STAT6:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:STAT6:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:STAT6:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:STAT6:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT6:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT6:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT6:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:STAT6:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT6:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT6:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:STAT6:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:STAT6:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:STAT6:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:STAT6:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:STAT6:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:STAT6:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:STAT6:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:STAT6:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:STAT6:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:STAT6:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:STAT6:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:STAT6:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:STAT6:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:STAT6:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT6:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:STAT6:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:STAT6:SortSize") + field(OUT, "S03SIM-DI-OAV-01:STAT6:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:STAT6:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT6:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:STAT6:AsynIO") +{ + field(PORT, "OAV.stats.stat6") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records contain the basic statistics # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT6:ComputeStatistics") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)COMPUTE_STATISTICS") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT6:ComputeStatistics_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)COMPUTE_STATISTICS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT6:BgdWidth") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)BGD_WIDTH") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:BgdWidth_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)BGD_WIDTH") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:MinValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)MIN_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:MinValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)MIN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:MaxValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)MAX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:MaxValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)MAX_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:MeanValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)MEAN_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:MeanValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)MEAN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:SigmaValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)SIGMA_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:Sigma_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)SIGMA_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:Total") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)TOTAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:Total_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:Net") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)NET") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:Net_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)NET") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:MinX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)MIN_X") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:MinX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:MinY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)MIN_Y") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:MinY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:MaxX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)MAX_X") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:MaxX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)MAX_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:MaxY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)MAX_Y") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:MaxY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)MAX_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether centroid statistics are computed # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT6:ComputeCentroid") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)COMPUTE_CENTROID") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT6:ComputeCentroid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)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, "S03SIM-DI-OAV-01:STAT6:CentroidThreshold") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)CENTROID_THRESHOLD") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:CentroidThreshold_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)CENTROID_THRESHOLD") + field(VAL, "0") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:CentroidTotal") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)CENTROID_TOTAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:CentroidTotal_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)CENTROID_TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:CentroidX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)CENTROIDX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:CentroidX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)CENTROIDX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:CentroidY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)CENTROIDY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:CentroidY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)CENTROIDY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:SigmaX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)SIGMAX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:SigmaX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)SIGMAX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:SigmaY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)SIGMAY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:SigmaY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)SIGMAY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:SigmaXY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)SIGMAXY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:SigmaXY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)SIGMAXY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:SkewX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)SKEWX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:SkewX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)SKEWX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:SkewY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)SKEWY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:SkewY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)SKEWY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:KurtosisX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)KURTOSISX_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:KurtosisX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)KURTOSISX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:KurtosisY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)KURTOSISY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:KurtosisY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)KURTOSISY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:Eccentricity") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)ECCENTRICITY_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:Eccentricity_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)ECCENTRICITY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:Orientation") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)ORIENTATION_VALUE") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:Orientation_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)ORIENTATION_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control time series # +################################################################### +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSMinValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,0,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSMinX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,1,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSMinY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,2,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSMaxValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,3,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSMaxX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,4,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSMaxY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,5,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSMeanValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,6,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSSigma") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,7,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,8,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSNet") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,9,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSCentroidTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,10,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSCentroidX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,11,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSCentroidY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,12,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSSigmaX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,13,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSSigmaY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,14,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSSigmaXY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,15,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSSkewX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,16,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSSkewY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,17,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSKurtosisX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,18,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSKurtosisY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,19,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSEccentricity") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,20,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSOrientation") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,21,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:TSTimestamp") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6_TS,22,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control profiles # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT6:ComputeProfiles") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)COMPUTE_PROFILES") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT6:ComputeProfiles_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)COMPUTE_PROFILES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ProfileSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)PROFILE_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:ProfileSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)PROFILE_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT6:CursorX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)CURSOR_X") + field(VAL, "256") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:CursorX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)CURSOR_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT6:CursorY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)CURSOR_Y") + field(VAL, "256") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:CursorY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)CURSOR_Y") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:CursorVal") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)CURSOR_VAL") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:ProfileAverageX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6,0,1)PROFILE_AVERAGE_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:ProfileAverageY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6,0,1)PROFILE_AVERAGE_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:ProfileThresholdX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6,0,1)PROFILE_THRESHOLD_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:ProfileThresholdY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6,0,1)PROFILE_THRESHOLD_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:ProfileCentroidX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6,0,1)PROFILE_CENTROID_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:ProfileCentroidY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6,0,1)PROFILE_CENTROID_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:ProfileCursorX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6,0,1)PROFILE_CURSOR_X") + field(FTVL, "DOUBLE") + field(NELM, "1936") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:ProfileCursorY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6,0,1)PROFILE_CURSOR_Y") + field(FTVL, "DOUBLE") + field(NELM, "1216") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These are used to define the histogram # +################################################################### +record(bo, "S03SIM-DI-OAV-01:STAT6:ComputeHistogram") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)COMPUTE_HISTOGRAM") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:STAT6:ComputeHistogram_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)COMPUTE_HISTOGRAM") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT6:HistSize") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)HIST_SIZE") + field(VAL, "256") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:HistSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)HIST_SIZE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:HistMin") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)HIST_MIN") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:HistMin_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)HIST_MIN") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:HistMax") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)HIST_MAX") + field(VAL, "255") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:HistMax_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)HIST_MAX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT6:HistBelow") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)HIST_BELOW") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:HistBelow_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)HIST_BELOW") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:STAT6:HistAbove") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.stats.stat6,0,1)HIST_ABOVE") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:HistAbove_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.stats.stat6,0,1)HIST_ABOVE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:STAT6:HistEntropy") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.stats.stat6,0,1)HIST_ENTROPY") +} + +record(ai, "S03SIM-DI-OAV-01:STAT6:HistEntropy_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.stats.stat6,0,1)HIST_ENTROPY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:Histogram_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6,0,1)HIST_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:STAT6:HistogramX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(OAV.stats.stat6,0,1)HIST_X_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + 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, "S03SIM-DI-OAV-01:STAT6:MaxSizeX") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:ProfileSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:STAT6:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:STAT6:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:STAT6:CursorX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:STAT6:MaxSizeY") +{ + field(INP, "S03SIM-DI-OAV-01:STAT6:ProfileSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:STAT6:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:STAT6:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:STAT6:CursorY.HOPR NPP") +} + +################################################################### +# These records reset the statistics # +################################################################### +record(sseq, "S03SIM-DI-OAV-01:STAT6:Reset") +{ + field(LNK1, "S03SIM-DI-OAV-01:STAT6:MinValue PP MS") + field(LNK2, "S03SIM-DI-OAV-01:STAT6:MaxValue PP MS") + field(LNK3, "S03SIM-DI-OAV-01:STAT6:MeanValue PP MS") + field(LNK4, "S03SIM-DI-OAV-01:STAT6:SigmaValue PP MS") + field(LNK5, "S03SIM-DI-OAV-01:STAT6:Total PP MS") + field(LNK6, "S03SIM-DI-OAV-01:STAT6:Net PP MS") + field(LNK7, "S03SIM-DI-OAV-01:STAT6:MinX PP MS") + field(LNK8, "S03SIM-DI-OAV-01:STAT6:MinY PP MS") + field(LNK9, "S03SIM-DI-OAV-01:STAT6:MaxX PP MS") + field(LNKA, "S03SIM-DI-OAV-01:STAT6:MaxY PP MS") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Reset1") +} + +record(sseq, "S03SIM-DI-OAV-01:STAT6:Reset1") +{ + field(LNK1, "S03SIM-DI-OAV-01:STAT6:CentroidX PP MS") + field(LNK2, "S03SIM-DI-OAV-01:STAT6:CentroidY PP MS") + field(LNK3, "S03SIM-DI-OAV-01:STAT6:SigmaX PP MS") + field(LNK4, "S03SIM-DI-OAV-01:STAT6:SigmaY PP MS") + field(LNK5, "S03SIM-DI-OAV-01:STAT6:SigmaXY PP MS") + field(LNK6, "S03SIM-DI-OAV-01:STAT6:CentroidTotal PP MS") + field(LNK7, "S03SIM-DI-OAV-01:STAT6:SkewX PP MS") + field(LNK8, "S03SIM-DI-OAV-01:STAT6:SkewY PP MS") + field(LNK9, "S03SIM-DI-OAV-01:STAT6:KurtosisX PP MS") + field(LNKA, "S03SIM-DI-OAV-01:STAT6:KurtosisY PP MS") + field(FLNK, "S03SIM-DI-OAV-01:STAT6:Reset2") +} + +record(sseq, "S03SIM-DI-OAV-01:STAT6:Reset2") +{ + field(LNK1, "S03SIM-DI-OAV-01:STAT6:Eccentricity PP MS") + field(LNK2, "S03SIM-DI-OAV-01:STAT6:Orientation PP MS") + field(LNK3, "S03SIM-DI-OAV-01:STAT6:HistBelow PP MS") + field(LNK4, "S03SIM-DI-OAV-01:STAT6:HistAbove PP MS") + field(LNK5, "S03SIM-DI-OAV-01:STAT6:HistEntropy PP MS") +} + +#=================================================================# +# Template file: NDStats.template + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, NCHANS, Number of channels +# % macro, XSIZE, x size +# % macro, YSIZE, y size +# % macro, HIST_SIZE, hist size +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Timeout +# % macro, TS_PORT, TS port + +# This associates the template with an edm screen +# % gui, FSCN1.stat, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-01,R=:STAT: + +# This associates a BOY screen with the template +# % gui, FSCN1.stat, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-01, R=:STAT:, DESC=Statistics +# % gui, FSCN1.stat, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:STAT:, DESC=Statistics +# % gui, FSCN1.stat, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-01, R=:STAT:, DESC=Statistics + + +# % gui, FSCN1.stat, groupHeading, Info +# % gui, FSCN1.stat, readback, Port name, S03SIM-EA-FSCN-01:STAT:PortName_RBV +# % gui, FSCN1.stat, readback, Plugin type, S03SIM-EA-FSCN-01:STAT:PluginType_RBV +# Input +# % gui, FSCN1.stat, demandString, Input, S03SIM-EA-FSCN-01:STAT:NDArrayPort +# % gui, FSCN1.stat, readback, Input, S03SIM-EA-FSCN-01:STAT:NDArrayPort_RBV + +# % gui, FSCN1.stat, groupHeading, Callback +# % gui, FSCN1.stat, enum, Callbacks, S03SIM-EA-FSCN-01:STAT:EnableCallbacks +# % gui, FSCN1.stat, statusbits, Callbacks, S03SIM-EA-FSCN-01:STAT:EnableCallbacks_RBV +# % gui, FSCN1.stat, demand, Min Callback Time, S03SIM-EA-FSCN-01:STAT:MinCallbackTime +# % gui, FSCN1.stat, readback, Min Callback Time, S03SIM-EA-FSCN-01:STAT:MinCallbackTime_RBV +# % gui, FSCN1.stat, enum, Block Callbacks, S03SIM-EA-FSCN-01:STAT:BlockingCallbacks +# % gui, FSCN1.stat, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:STAT:BlockingCallbacks_RBV + +# % gui, FSCN1.stat, groupHeading, Counters +# % gui, FSCN1.stat, demand, Array Counter, S03SIM-EA-FSCN-01:STAT:ArrayCounter +# % gui, FSCN1.stat, readback, Array Counter, S03SIM-EA-FSCN-01:STAT:ArrayCounter_RBV +# % gui, FSCN1.stat, readback, Array Rate (fps), S03SIM-EA-FSCN-01:STAT:ArrayRate_RBV +# % gui, FSCN1.stat, readback, Queue Use, S03SIM-EA-FSCN-01:STAT:QueueUse +# % gui, FSCN1.stat, readback, Queue Size, S03SIM-EA-FSCN-01:STAT:QueueSize +# % gui, FSCN1.stat, demand, Dropped Arrays, S03SIM-EA-FSCN-01:STAT:DroppedArrays +# % gui, FSCN1.stat, readback, Dropped Arrays, S03SIM-EA-FSCN-01:STAT:DroppedArrays_RBV + +# % gui, FSCN1.stat, groupHeading, Array Settings +# % gui, FSCN1.stat, readback, Num Dimensions, S03SIM-EA-FSCN-01:STAT:NDimensions_RBV +# % gui, FSCN1.stat, readback, Dim 0 Size, S03SIM-EA-FSCN-01:STAT:ArraySize0_RBV +# % gui, FSCN1.stat, readback, Dim 1 Size, S03SIM-EA-FSCN-01:STAT:ArraySize1_RBV +# % gui, FSCN1.stat, readback, Dim 2 Size, S03SIM-EA-FSCN-01:STAT:ArraySize2_RBV +# % gui, FSCN1.stat, readback, Input Data Type, S03SIM-EA-FSCN-01:STAT:DataType_RBV +# % gui, FSCN1.stat, readback, Colour Mode, S03SIM-EA-FSCN-01:STAT:ColorMode_RBV +# % gui, FSCN1.stat, readback, Bayer Pattern, S03SIM-EA-FSCN-01:STAT:BayerPattern_RBV +# % gui, FSCN1.stat, readback, Unique id, S03SIM-EA-FSCN-01:STAT:UniqueId_RBV +# % gui, FSCN1.stat, readback, Timestamp, S03SIM-EA-FSCN-01:STAT:TimeStamp_RBV + +# Output +# % gui, FSCN1.stat, groupHeading, Output +# % gui, FSCN1.stat, demand, Name, S03SIM-EA-FSCN-01:STAT:Name +# % gui, FSCN1.stat, enum, Out data type, S03SIM-EA-FSCN-01:STAT:DataTypeOut +# % gui, FSCN1.stat, readback, Out data type, S03SIM-EA-FSCN-01:STAT:DataTypeOut_RBV +# % gui, FSCN1.stat, demand, Attributes file, S03SIM-EA-FSCN-01:STAT:NDAttributesFile + +# Statistics +# % gui, FSCN1.stat, groupHeading, Statistics +# % gui, FSCN1.stat, enum, Compute Statistics, S03SIM-EA-FSCN-01:STAT:ComputeStatistics +# % gui, FSCN1.stat, statusbits, Compute Statistics, S03SIM-EA-FSCN-01:STAT:ComputeStatistics_RBV +# % gui, FSCN1.stat, demand, Background Width, S03SIM-EA-FSCN-01:STAT:BgdWidth +# % gui, FSCN1.stat, readback, Background Width, S03SIM-EA-FSCN-01:STAT:BgdWidth_RBV +# % gui, FSCN1.stat, readback, Minimum Value, S03SIM-EA-FSCN-01:STAT:MinValue_RBV +# % gui, FSCN1.stat, readback, Minimum X, S03SIM-EA-FSCN-01:STAT:MinX_RBV +# % gui, FSCN1.stat, readback, Minimum Y, S03SIM-EA-FSCN-01:STAT:MinY_RBV +# % gui, FSCN1.stat, readback, Maximum Value, S03SIM-EA-FSCN-01:STAT:MaxValue_RBV +# % gui, FSCN1.stat, readback, Maximum X, S03SIM-EA-FSCN-01:STAT:MaxX_RBV +# % gui, FSCN1.stat, readback, Maximum Y, S03SIM-EA-FSCN-01:STAT:MaxY_RBV +# % gui, FSCN1.stat, readback, Mean Value, S03SIM-EA-FSCN-01:STAT:MeanValue_RBV +# % gui, FSCN1.stat, readback, Total, S03SIM-EA-FSCN-01:STAT:Total_RBV +# % gui, FSCN1.stat, readback, Sigma, S03SIM-EA-FSCN-01:STAT:Sigma_RBV +# % gui, FSCN1.stat, readback, Net, S03SIM-EA-FSCN-01:STAT:Net_RBV +# Centroid +# % gui, FSCN1.stat, groupHeading, Centroid +# % gui, FSCN1.stat, enum, Compute Centroid, S03SIM-EA-FSCN-01:STAT:ComputeCentroid +# % gui, FSCN1.stat, statusbits, Compute Centroid, S03SIM-EA-FSCN-01:STAT:ComputeCentroid_RBV +# % gui, FSCN1.stat, demand, Threshold, S03SIM-EA-FSCN-01:STAT:CentroidThreshold +# % gui, FSCN1.stat, readback, Threshold, S03SIM-EA-FSCN-01:STAT:CentroidThreshold_RBV +# % gui, FSCN1.stat, readback, X, S03SIM-EA-FSCN-01:STAT:CentroidX_RBV +# % gui, FSCN1.stat, readback, Sigma X, S03SIM-EA-FSCN-01:STAT:SigmaX_RBV +# % gui, FSCN1.stat, readback, Y, S03SIM-EA-FSCN-01:STAT:CentroidY_RBV +# % gui, FSCN1.stat, readback, Sigma Y, S03SIM-EA-FSCN-01:STAT:SigmaY_RBV +# % gui, FSCN1.stat, readback, Sigma XY, S03SIM-EA-FSCN-01:STAT:SigmaXY_RBV +# Histogram +# % gui, FSCN1.stat, groupHeading, Histogram +# % gui, FSCN1.stat, enum, Compute Histogram, S03SIM-EA-FSCN-01:STAT:ComputeHistogram +# % gui, FSCN1.stat, statusbits, Compute Histogram, S03SIM-EA-FSCN-01:STAT:ComputeHistogram_RBV +# % gui, FSCN1.stat, demand, Histogram Size, S03SIM-EA-FSCN-01:STAT:HistSize +# % gui, FSCN1.stat, readback, Histogram Size, S03SIM-EA-FSCN-01:STAT:HistSize_RBV +# % gui, FSCN1.stat, demand, Histogram Min, S03SIM-EA-FSCN-01:STAT:HistMin +# % gui, FSCN1.stat, readback, Histogram Min, S03SIM-EA-FSCN-01:STAT:HistMin_RBV +# % gui, FSCN1.stat, demand, Histogram Max, S03SIM-EA-FSCN-01:STAT:HistMax +# % gui, FSCN1.stat, readback, Histogram Max, S03SIM-EA-FSCN-01:STAT:HistMax_RBV +# % gui, FSCN1.stat, readback, Histogram Entropy, S03SIM-EA-FSCN-01:STAT:HistEntropy_RBV +# Profiles +# % gui, FSCN1.stat, groupHeading, Profiles +# % gui, FSCN1.stat, enum, Compute Profiles, S03SIM-EA-FSCN-01:STAT:ComputeProfiles +# % gui, FSCN1.stat, statusbits, Compute Profiles, S03SIM-EA-FSCN-01:STAT:ComputeProfiles_RBV +# % gui, FSCN1.stat, demand, Cursor X, S03SIM-EA-FSCN-01:STAT:CursorX +# % gui, FSCN1.stat, readback, Cursor X, S03SIM-EA-FSCN-01:STAT:CursorX_RBV +# % gui, FSCN1.stat, demand, Cursor Y, S03SIM-EA-FSCN-01:STAT:CursorY +# % gui, FSCN1.stat, readback, Cursor Y, S03SIM-EA-FSCN-01:STAT:CursorY_RBV +# % gui, FSCN1.stat, readback, Size X, S03SIM-EA-FSCN-01:STAT:ProfileSizeX_RBV +# % gui, FSCN1.stat, readback, Size Y, S03SIM-EA-FSCN-01:STAT:ProfileSizeY_RBV +# Time series +# % gui, FSCN1.stat, groupHeading, Time Series +# % gui, FSCN1.stat, enum, Time Control, S03SIM-EA-FSCN-01:STAT:TS:TSAcquire +# % gui, FSCN1.stat, statusbits, Acquiring, S03SIM-EA-FSCN-01:STAT:TS:TSAcquiring +# % gui, FSCN1.stat, readback, Current Point, S03SIM-EA-FSCN-01:STAT:TS:TSCurrentPoint +# % gui, FSCN1.stat, demand, Number of Points, S03SIM-EA-FSCN-01:STAT:TS:TSNumPoints +# % gui, FSCN1.stat, enum, Update, S03SIM-EA-FSCN-01:STAT:TS:TSRead.SCAN +# Memory +# % gui, FSCN1.stat, groupHeading, Memory +# % gui, FSCN1.stat, readback, Max memory, S03SIM-EA-FSCN-01:STAT:PoolMaxMem +# % gui, FSCN1.stat, readback, Max buffers, S03SIM-EA-FSCN-01:STAT:PoolMaxBuffers +# % gui, FSCN1.stat, readback, Used memory, S03SIM-EA-FSCN-01:STAT:PoolUsedMem +# % gui, FSCN1.stat, readback, Allocated buffers, S03SIM-EA-FSCN-01:STAT:PoolAllocBuffers +# % gui, FSCN1.stat, readback, Free buffers, S03SIM-EA-FSCN-01:STAT:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stat,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stat,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stat,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stat,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stat,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stat,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stat,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stat,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:STAT:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:STAT:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:STAT:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:STAT:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:STAT:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:STAT:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:STAT:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.stat,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.stat,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:STAT:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:STAT:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stat,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:STAT:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:STAT:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:STAT:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:STAT:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:STAT:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:STAT:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:STAT:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:STAT:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:STAT:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:STAT:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.stat,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:STAT:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.stat,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:STAT:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:STAT:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:STAT:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:STAT:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:STAT:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stat,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:STAT:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.stat,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stat,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:STAT:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:STAT:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:STAT:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:STAT:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:STAT:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:STAT:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:STAT:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:STAT:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:STAT:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:STAT:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:STAT:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:STAT:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:STAT:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:STAT:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:STAT:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:STAT:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:STAT:AsynIO") +{ + field(PORT, "FSCN1.stat") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records contain the basic statistics # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT:ComputeStatistics") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)COMPUTE_STATISTICS") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT:ComputeStatistics_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)COMPUTE_STATISTICS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT:BgdWidth") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)BGD_WIDTH") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:BgdWidth_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)BGD_WIDTH") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:MinValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)MIN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:MinValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)MIN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:MaxValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)MAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:MaxValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)MAX_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:MeanValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)MEAN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:MeanValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)MEAN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:SigmaValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)SIGMA_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:Sigma_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)SIGMA_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:Total") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:Total_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:Net") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)NET") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:Net_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)NET") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:MinX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)MIN_X") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:MinX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:MinY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)MIN_Y") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:MinY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:MaxX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)MAX_X") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:MaxX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)MAX_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:MaxY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)MAX_Y") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:MaxY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)MAX_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether centroid statistics are computed # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT:ComputeCentroid") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)COMPUTE_CENTROID") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT:ComputeCentroid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)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, "S03SIM-EA-FSCN-01:STAT:CentroidThreshold") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)CENTROID_THRESHOLD") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:CentroidThreshold_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)CENTROID_THRESHOLD") + field(VAL, "0") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:CentroidTotal") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)CENTROID_TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:CentroidTotal_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)CENTROID_TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:CentroidX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)CENTROIDX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:CentroidX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)CENTROIDX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:CentroidY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)CENTROIDY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:CentroidY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)CENTROIDY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:SigmaX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)SIGMAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:SigmaX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)SIGMAX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:SigmaY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)SIGMAY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:SigmaY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)SIGMAY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:SigmaXY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)SIGMAXY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:SigmaXY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)SIGMAXY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:SkewX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)SKEWX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:SkewX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)SKEWX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:SkewY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)SKEWY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:SkewY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)SKEWY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:KurtosisX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)KURTOSISX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:KurtosisX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)KURTOSISX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:KurtosisY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)KURTOSISY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:KurtosisY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)KURTOSISY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:Eccentricity") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)ECCENTRICITY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:Eccentricity_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)ECCENTRICITY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:Orientation") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)ORIENTATION_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:Orientation_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)ORIENTATION_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control time series # +################################################################### +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSMinValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,0,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSMinX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,1,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSMinY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,2,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSMaxValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,3,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSMaxX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,4,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSMaxY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,5,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSMeanValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,6,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSSigma") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,7,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,8,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSNet") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,9,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSCentroidTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,10,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSCentroidX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,11,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSCentroidY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,12,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSSigmaX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,13,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSSigmaY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,14,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSSigmaXY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,15,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSSkewX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,16,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSSkewY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,17,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSKurtosisX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,18,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSKurtosisY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,19,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSEccentricity") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,20,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSOrientation") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,21,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:TSTimestamp") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat_TS,22,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control profiles # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT:ComputeProfiles") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)COMPUTE_PROFILES") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT:ComputeProfiles_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)COMPUTE_PROFILES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ProfileSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)PROFILE_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:ProfileSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)PROFILE_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT:CursorX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)CURSOR_X") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:CursorX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)CURSOR_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT:CursorY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)CURSOR_Y") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:CursorY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)CURSOR_Y") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:CursorVal") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)CURSOR_VAL") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:ProfileAverageX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat,0,1)PROFILE_AVERAGE_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:ProfileAverageY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat,0,1)PROFILE_AVERAGE_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:ProfileThresholdX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat,0,1)PROFILE_THRESHOLD_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:ProfileThresholdY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat,0,1)PROFILE_THRESHOLD_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:ProfileCentroidX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat,0,1)PROFILE_CENTROID_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:ProfileCentroidY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat,0,1)PROFILE_CENTROID_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:ProfileCursorX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat,0,1)PROFILE_CURSOR_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:ProfileCursorY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat,0,1)PROFILE_CURSOR_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These are used to define the histogram # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT:ComputeHistogram") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)COMPUTE_HISTOGRAM") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT:ComputeHistogram_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)COMPUTE_HISTOGRAM") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT:HistSize") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)HIST_SIZE") + field(VAL, "256") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:HistSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)HIST_SIZE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:HistMin") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)HIST_MIN") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:HistMin_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)HIST_MIN") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:HistMax") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)HIST_MAX") + field(VAL, "255") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:HistMax_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)HIST_MAX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT:HistBelow") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)HIST_BELOW") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:HistBelow_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)HIST_BELOW") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT:HistAbove") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stat,0,1)HIST_ABOVE") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:HistAbove_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stat,0,1)HIST_ABOVE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT:HistEntropy") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stat,0,1)HIST_ENTROPY") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT:HistEntropy_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stat,0,1)HIST_ENTROPY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:Histogram_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat,0,1)HIST_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT:HistogramX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stat,0,1)HIST_X_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + 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, "S03SIM-EA-FSCN-01:STAT:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:ProfileSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:STAT:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:STAT:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:STAT:CursorX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT:ProfileSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:STAT:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:STAT:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:STAT:CursorY.HOPR NPP") +} + +################################################################### +# These records reset the statistics # +################################################################### +record(sseq, "S03SIM-EA-FSCN-01:STAT:Reset") +{ + field(LNK1, "S03SIM-EA-FSCN-01:STAT:MinValue PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:STAT:MaxValue PP MS") + field(LNK3, "S03SIM-EA-FSCN-01:STAT:MeanValue PP MS") + field(LNK4, "S03SIM-EA-FSCN-01:STAT:SigmaValue PP MS") + field(LNK5, "S03SIM-EA-FSCN-01:STAT:Total PP MS") + field(LNK6, "S03SIM-EA-FSCN-01:STAT:Net PP MS") + field(LNK7, "S03SIM-EA-FSCN-01:STAT:MinX PP MS") + field(LNK8, "S03SIM-EA-FSCN-01:STAT:MinY PP MS") + field(LNK9, "S03SIM-EA-FSCN-01:STAT:MaxX PP MS") + field(LNKA, "S03SIM-EA-FSCN-01:STAT:MaxY PP MS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Reset1") +} + +record(sseq, "S03SIM-EA-FSCN-01:STAT:Reset1") +{ + field(LNK1, "S03SIM-EA-FSCN-01:STAT:CentroidX PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:STAT:CentroidY PP MS") + field(LNK3, "S03SIM-EA-FSCN-01:STAT:SigmaX PP MS") + field(LNK4, "S03SIM-EA-FSCN-01:STAT:SigmaY PP MS") + field(LNK5, "S03SIM-EA-FSCN-01:STAT:SigmaXY PP MS") + field(LNK6, "S03SIM-EA-FSCN-01:STAT:CentroidTotal PP MS") + field(LNK7, "S03SIM-EA-FSCN-01:STAT:SkewX PP MS") + field(LNK8, "S03SIM-EA-FSCN-01:STAT:SkewY PP MS") + field(LNK9, "S03SIM-EA-FSCN-01:STAT:KurtosisX PP MS") + field(LNKA, "S03SIM-EA-FSCN-01:STAT:KurtosisY PP MS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT:Reset2") +} + +record(sseq, "S03SIM-EA-FSCN-01:STAT:Reset2") +{ + field(LNK1, "S03SIM-EA-FSCN-01:STAT:Eccentricity PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:STAT:Orientation PP MS") + field(LNK3, "S03SIM-EA-FSCN-01:STAT:HistBelow PP MS") + field(LNK4, "S03SIM-EA-FSCN-01:STAT:HistAbove PP MS") + field(LNK5, "S03SIM-EA-FSCN-01:STAT:HistEntropy PP MS") +} + +#=================================================================# +# Template file: NDStats.template + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, NCHANS, Number of channels +# % macro, XSIZE, x size +# % macro, YSIZE, y size +# % macro, HIST_SIZE, hist size +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Timeout +# % macro, TS_PORT, TS port + +# This associates the template with an edm screen +# % gui, FSCN1.stats.stat1, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-01,R=:STAT1: + +# This associates a BOY screen with the template +# % gui, FSCN1.stats.stat1, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-01, R=:STAT1:, DESC=Statistics +# % gui, FSCN1.stats.stat1, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:STAT1:, DESC=Statistics +# % gui, FSCN1.stats.stat1, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-01, R=:STAT1:, DESC=Statistics + + +# % gui, FSCN1.stats.stat1, groupHeading, Info +# % gui, FSCN1.stats.stat1, readback, Port name, S03SIM-EA-FSCN-01:STAT1:PortName_RBV +# % gui, FSCN1.stats.stat1, readback, Plugin type, S03SIM-EA-FSCN-01:STAT1:PluginType_RBV +# Input +# % gui, FSCN1.stats.stat1, demandString, Input, S03SIM-EA-FSCN-01:STAT1:NDArrayPort +# % gui, FSCN1.stats.stat1, readback, Input, S03SIM-EA-FSCN-01:STAT1:NDArrayPort_RBV + +# % gui, FSCN1.stats.stat1, groupHeading, Callback +# % gui, FSCN1.stats.stat1, enum, Callbacks, S03SIM-EA-FSCN-01:STAT1:EnableCallbacks +# % gui, FSCN1.stats.stat1, statusbits, Callbacks, S03SIM-EA-FSCN-01:STAT1:EnableCallbacks_RBV +# % gui, FSCN1.stats.stat1, demand, Min Callback Time, S03SIM-EA-FSCN-01:STAT1:MinCallbackTime +# % gui, FSCN1.stats.stat1, readback, Min Callback Time, S03SIM-EA-FSCN-01:STAT1:MinCallbackTime_RBV +# % gui, FSCN1.stats.stat1, enum, Block Callbacks, S03SIM-EA-FSCN-01:STAT1:BlockingCallbacks +# % gui, FSCN1.stats.stat1, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:STAT1:BlockingCallbacks_RBV + +# % gui, FSCN1.stats.stat1, groupHeading, Counters +# % gui, FSCN1.stats.stat1, demand, Array Counter, S03SIM-EA-FSCN-01:STAT1:ArrayCounter +# % gui, FSCN1.stats.stat1, readback, Array Counter, S03SIM-EA-FSCN-01:STAT1:ArrayCounter_RBV +# % gui, FSCN1.stats.stat1, readback, Array Rate (fps), S03SIM-EA-FSCN-01:STAT1:ArrayRate_RBV +# % gui, FSCN1.stats.stat1, readback, Queue Use, S03SIM-EA-FSCN-01:STAT1:QueueUse +# % gui, FSCN1.stats.stat1, readback, Queue Size, S03SIM-EA-FSCN-01:STAT1:QueueSize +# % gui, FSCN1.stats.stat1, demand, Dropped Arrays, S03SIM-EA-FSCN-01:STAT1:DroppedArrays +# % gui, FSCN1.stats.stat1, readback, Dropped Arrays, S03SIM-EA-FSCN-01:STAT1:DroppedArrays_RBV + +# % gui, FSCN1.stats.stat1, groupHeading, Array Settings +# % gui, FSCN1.stats.stat1, readback, Num Dimensions, S03SIM-EA-FSCN-01:STAT1:NDimensions_RBV +# % gui, FSCN1.stats.stat1, readback, Dim 0 Size, S03SIM-EA-FSCN-01:STAT1:ArraySize0_RBV +# % gui, FSCN1.stats.stat1, readback, Dim 1 Size, S03SIM-EA-FSCN-01:STAT1:ArraySize1_RBV +# % gui, FSCN1.stats.stat1, readback, Dim 2 Size, S03SIM-EA-FSCN-01:STAT1:ArraySize2_RBV +# % gui, FSCN1.stats.stat1, readback, Input Data Type, S03SIM-EA-FSCN-01:STAT1:DataType_RBV +# % gui, FSCN1.stats.stat1, readback, Colour Mode, S03SIM-EA-FSCN-01:STAT1:ColorMode_RBV +# % gui, FSCN1.stats.stat1, readback, Bayer Pattern, S03SIM-EA-FSCN-01:STAT1:BayerPattern_RBV +# % gui, FSCN1.stats.stat1, readback, Unique id, S03SIM-EA-FSCN-01:STAT1:UniqueId_RBV +# % gui, FSCN1.stats.stat1, readback, Timestamp, S03SIM-EA-FSCN-01:STAT1:TimeStamp_RBV + +# Output +# % gui, FSCN1.stats.stat1, groupHeading, Output +# % gui, FSCN1.stats.stat1, demand, Name, S03SIM-EA-FSCN-01:STAT1:Name +# % gui, FSCN1.stats.stat1, enum, Out data type, S03SIM-EA-FSCN-01:STAT1:DataTypeOut +# % gui, FSCN1.stats.stat1, readback, Out data type, S03SIM-EA-FSCN-01:STAT1:DataTypeOut_RBV +# % gui, FSCN1.stats.stat1, demand, Attributes file, S03SIM-EA-FSCN-01:STAT1:NDAttributesFile + +# Statistics +# % gui, FSCN1.stats.stat1, groupHeading, Statistics +# % gui, FSCN1.stats.stat1, enum, Compute Statistics, S03SIM-EA-FSCN-01:STAT1:ComputeStatistics +# % gui, FSCN1.stats.stat1, statusbits, Compute Statistics, S03SIM-EA-FSCN-01:STAT1:ComputeStatistics_RBV +# % gui, FSCN1.stats.stat1, demand, Background Width, S03SIM-EA-FSCN-01:STAT1:BgdWidth +# % gui, FSCN1.stats.stat1, readback, Background Width, S03SIM-EA-FSCN-01:STAT1:BgdWidth_RBV +# % gui, FSCN1.stats.stat1, readback, Minimum Value, S03SIM-EA-FSCN-01:STAT1:MinValue_RBV +# % gui, FSCN1.stats.stat1, readback, Minimum X, S03SIM-EA-FSCN-01:STAT1:MinX_RBV +# % gui, FSCN1.stats.stat1, readback, Minimum Y, S03SIM-EA-FSCN-01:STAT1:MinY_RBV +# % gui, FSCN1.stats.stat1, readback, Maximum Value, S03SIM-EA-FSCN-01:STAT1:MaxValue_RBV +# % gui, FSCN1.stats.stat1, readback, Maximum X, S03SIM-EA-FSCN-01:STAT1:MaxX_RBV +# % gui, FSCN1.stats.stat1, readback, Maximum Y, S03SIM-EA-FSCN-01:STAT1:MaxY_RBV +# % gui, FSCN1.stats.stat1, readback, Mean Value, S03SIM-EA-FSCN-01:STAT1:MeanValue_RBV +# % gui, FSCN1.stats.stat1, readback, Total, S03SIM-EA-FSCN-01:STAT1:Total_RBV +# % gui, FSCN1.stats.stat1, readback, Sigma, S03SIM-EA-FSCN-01:STAT1:Sigma_RBV +# % gui, FSCN1.stats.stat1, readback, Net, S03SIM-EA-FSCN-01:STAT1:Net_RBV +# Centroid +# % gui, FSCN1.stats.stat1, groupHeading, Centroid +# % gui, FSCN1.stats.stat1, enum, Compute Centroid, S03SIM-EA-FSCN-01:STAT1:ComputeCentroid +# % gui, FSCN1.stats.stat1, statusbits, Compute Centroid, S03SIM-EA-FSCN-01:STAT1:ComputeCentroid_RBV +# % gui, FSCN1.stats.stat1, demand, Threshold, S03SIM-EA-FSCN-01:STAT1:CentroidThreshold +# % gui, FSCN1.stats.stat1, readback, Threshold, S03SIM-EA-FSCN-01:STAT1:CentroidThreshold_RBV +# % gui, FSCN1.stats.stat1, readback, X, S03SIM-EA-FSCN-01:STAT1:CentroidX_RBV +# % gui, FSCN1.stats.stat1, readback, Sigma X, S03SIM-EA-FSCN-01:STAT1:SigmaX_RBV +# % gui, FSCN1.stats.stat1, readback, Y, S03SIM-EA-FSCN-01:STAT1:CentroidY_RBV +# % gui, FSCN1.stats.stat1, readback, Sigma Y, S03SIM-EA-FSCN-01:STAT1:SigmaY_RBV +# % gui, FSCN1.stats.stat1, readback, Sigma XY, S03SIM-EA-FSCN-01:STAT1:SigmaXY_RBV +# Histogram +# % gui, FSCN1.stats.stat1, groupHeading, Histogram +# % gui, FSCN1.stats.stat1, enum, Compute Histogram, S03SIM-EA-FSCN-01:STAT1:ComputeHistogram +# % gui, FSCN1.stats.stat1, statusbits, Compute Histogram, S03SIM-EA-FSCN-01:STAT1:ComputeHistogram_RBV +# % gui, FSCN1.stats.stat1, demand, Histogram Size, S03SIM-EA-FSCN-01:STAT1:HistSize +# % gui, FSCN1.stats.stat1, readback, Histogram Size, S03SIM-EA-FSCN-01:STAT1:HistSize_RBV +# % gui, FSCN1.stats.stat1, demand, Histogram Min, S03SIM-EA-FSCN-01:STAT1:HistMin +# % gui, FSCN1.stats.stat1, readback, Histogram Min, S03SIM-EA-FSCN-01:STAT1:HistMin_RBV +# % gui, FSCN1.stats.stat1, demand, Histogram Max, S03SIM-EA-FSCN-01:STAT1:HistMax +# % gui, FSCN1.stats.stat1, readback, Histogram Max, S03SIM-EA-FSCN-01:STAT1:HistMax_RBV +# % gui, FSCN1.stats.stat1, readback, Histogram Entropy, S03SIM-EA-FSCN-01:STAT1:HistEntropy_RBV +# Profiles +# % gui, FSCN1.stats.stat1, groupHeading, Profiles +# % gui, FSCN1.stats.stat1, enum, Compute Profiles, S03SIM-EA-FSCN-01:STAT1:ComputeProfiles +# % gui, FSCN1.stats.stat1, statusbits, Compute Profiles, S03SIM-EA-FSCN-01:STAT1:ComputeProfiles_RBV +# % gui, FSCN1.stats.stat1, demand, Cursor X, S03SIM-EA-FSCN-01:STAT1:CursorX +# % gui, FSCN1.stats.stat1, readback, Cursor X, S03SIM-EA-FSCN-01:STAT1:CursorX_RBV +# % gui, FSCN1.stats.stat1, demand, Cursor Y, S03SIM-EA-FSCN-01:STAT1:CursorY +# % gui, FSCN1.stats.stat1, readback, Cursor Y, S03SIM-EA-FSCN-01:STAT1:CursorY_RBV +# % gui, FSCN1.stats.stat1, readback, Size X, S03SIM-EA-FSCN-01:STAT1:ProfileSizeX_RBV +# % gui, FSCN1.stats.stat1, readback, Size Y, S03SIM-EA-FSCN-01:STAT1:ProfileSizeY_RBV +# Time series +# % gui, FSCN1.stats.stat1, groupHeading, Time Series +# % gui, FSCN1.stats.stat1, enum, Time Control, S03SIM-EA-FSCN-01:STAT1:TS:TSAcquire +# % gui, FSCN1.stats.stat1, statusbits, Acquiring, S03SIM-EA-FSCN-01:STAT1:TS:TSAcquiring +# % gui, FSCN1.stats.stat1, readback, Current Point, S03SIM-EA-FSCN-01:STAT1:TS:TSCurrentPoint +# % gui, FSCN1.stats.stat1, demand, Number of Points, S03SIM-EA-FSCN-01:STAT1:TS:TSNumPoints +# % gui, FSCN1.stats.stat1, enum, Update, S03SIM-EA-FSCN-01:STAT1:TS:TSRead.SCAN +# Memory +# % gui, FSCN1.stats.stat1, groupHeading, Memory +# % gui, FSCN1.stats.stat1, readback, Max memory, S03SIM-EA-FSCN-01:STAT1:PoolMaxMem +# % gui, FSCN1.stats.stat1, readback, Max buffers, S03SIM-EA-FSCN-01:STAT1:PoolMaxBuffers +# % gui, FSCN1.stats.stat1, readback, Used memory, S03SIM-EA-FSCN-01:STAT1:PoolUsedMem +# % gui, FSCN1.stats.stat1, readback, Allocated buffers, S03SIM-EA-FSCN-01:STAT1:PoolAllocBuffers +# % gui, FSCN1.stats.stat1, readback, Free buffers, S03SIM-EA-FSCN-01:STAT1:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT1:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT1:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT1:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT1:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT1:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT1:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT1:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT1:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:STAT1:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT1:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT1:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT1:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:STAT1:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT1:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT1:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:STAT1:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:STAT1:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:STAT1:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:STAT1:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:STAT1:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:STAT1:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:STAT1:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:STAT1:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:STAT1:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:STAT1:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:STAT1:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:STAT1:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:STAT1:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:STAT1:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT1:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:STAT1:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:STAT1:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT1:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT1:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:STAT1:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:STAT1:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:STAT1:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT1:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:STAT1:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:STAT1:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT1:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:STAT1:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.rois.roi1") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT1:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT1:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT1:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT1:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:STAT1:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT1:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT1:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:STAT1:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:STAT1:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT1:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:STAT1:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT1:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT1:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT1:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:STAT1:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT1:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT1:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:STAT1:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT1:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:STAT1:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:STAT1:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT1:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:STAT1:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:STAT1:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT1:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:STAT1:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:STAT1:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:STAT1:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT1:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:STAT1:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:STAT1:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT1:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT1:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:STAT1:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT1:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT1:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT1:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:STAT1:AsynIO") +{ + field(PORT, "FSCN1.stats.stat1") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records contain the basic statistics # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT1:ComputeStatistics") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)COMPUTE_STATISTICS") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT1:ComputeStatistics_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)COMPUTE_STATISTICS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT1:BgdWidth") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)BGD_WIDTH") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:BgdWidth_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)BGD_WIDTH") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:MinValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)MIN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:MinValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)MIN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:MaxValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)MAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:MaxValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)MAX_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:MeanValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)MEAN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:MeanValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)MEAN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:SigmaValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)SIGMA_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:Sigma_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)SIGMA_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:Total") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:Total_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:Net") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)NET") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:Net_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)NET") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:MinX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)MIN_X") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:MinX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:MinY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)MIN_Y") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:MinY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:MaxX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)MAX_X") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:MaxX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)MAX_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:MaxY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)MAX_Y") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:MaxY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)MAX_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether centroid statistics are computed # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT1:ComputeCentroid") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)COMPUTE_CENTROID") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT1:ComputeCentroid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)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, "S03SIM-EA-FSCN-01:STAT1:CentroidThreshold") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)CENTROID_THRESHOLD") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:CentroidThreshold_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)CENTROID_THRESHOLD") + field(VAL, "0") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:CentroidTotal") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)CENTROID_TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:CentroidTotal_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)CENTROID_TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:CentroidX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)CENTROIDX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:CentroidX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)CENTROIDX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:CentroidY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)CENTROIDY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:CentroidY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)CENTROIDY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:SigmaX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)SIGMAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:SigmaX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)SIGMAX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:SigmaY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)SIGMAY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:SigmaY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)SIGMAY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:SigmaXY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)SIGMAXY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:SigmaXY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)SIGMAXY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:SkewX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)SKEWX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:SkewX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)SKEWX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:SkewY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)SKEWY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:SkewY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)SKEWY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:KurtosisX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)KURTOSISX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:KurtosisX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)KURTOSISX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:KurtosisY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)KURTOSISY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:KurtosisY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)KURTOSISY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:Eccentricity") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)ECCENTRICITY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:Eccentricity_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)ECCENTRICITY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:Orientation") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)ORIENTATION_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:Orientation_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)ORIENTATION_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control time series # +################################################################### +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSMinValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,0,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSMinX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,1,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSMinY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,2,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSMaxValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,3,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSMaxX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,4,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSMaxY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,5,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSMeanValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,6,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSSigma") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,7,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,8,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSNet") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,9,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSCentroidTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,10,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSCentroidX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,11,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSCentroidY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,12,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSSigmaX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,13,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSSigmaY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,14,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSSigmaXY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,15,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSSkewX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,16,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSSkewY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,17,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSKurtosisX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,18,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSKurtosisY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,19,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSEccentricity") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,20,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSOrientation") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,21,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSTimestamp") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1_TS,22,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control profiles # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT1:ComputeProfiles") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)COMPUTE_PROFILES") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT1:ComputeProfiles_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)COMPUTE_PROFILES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ProfileSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)PROFILE_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:ProfileSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)PROFILE_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT1:CursorX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)CURSOR_X") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:CursorX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)CURSOR_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT1:CursorY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)CURSOR_Y") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:CursorY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)CURSOR_Y") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:CursorVal") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)CURSOR_VAL") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:ProfileAverageX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)PROFILE_AVERAGE_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:ProfileAverageY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)PROFILE_AVERAGE_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:ProfileThresholdX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)PROFILE_THRESHOLD_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:ProfileThresholdY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)PROFILE_THRESHOLD_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:ProfileCentroidX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)PROFILE_CENTROID_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:ProfileCentroidY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)PROFILE_CENTROID_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:ProfileCursorX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)PROFILE_CURSOR_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:ProfileCursorY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)PROFILE_CURSOR_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These are used to define the histogram # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT1:ComputeHistogram") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)COMPUTE_HISTOGRAM") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT1:ComputeHistogram_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)COMPUTE_HISTOGRAM") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT1:HistSize") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)HIST_SIZE") + field(VAL, "256") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:HistSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)HIST_SIZE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:HistMin") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)HIST_MIN") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:HistMin_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)HIST_MIN") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:HistMax") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)HIST_MAX") + field(VAL, "255") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:HistMax_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)HIST_MAX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT1:HistBelow") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)HIST_BELOW") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:HistBelow_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)HIST_BELOW") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT1:HistAbove") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)HIST_ABOVE") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:HistAbove_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)HIST_ABOVE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT1:HistEntropy") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat1,0,1)HIST_ENTROPY") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT1:HistEntropy_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)HIST_ENTROPY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:Histogram_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)HIST_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT1:HistogramX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat1,0,1)HIST_X_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + 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, "S03SIM-EA-FSCN-01:STAT1:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:ProfileSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:STAT1:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:STAT1:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:STAT1:CursorX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT1:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT1:ProfileSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:STAT1:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:STAT1:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:STAT1:CursorY.HOPR NPP") +} + +################################################################### +# These records reset the statistics # +################################################################### +record(sseq, "S03SIM-EA-FSCN-01:STAT1:Reset") +{ + field(LNK1, "S03SIM-EA-FSCN-01:STAT1:MinValue PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:STAT1:MaxValue PP MS") + field(LNK3, "S03SIM-EA-FSCN-01:STAT1:MeanValue PP MS") + field(LNK4, "S03SIM-EA-FSCN-01:STAT1:SigmaValue PP MS") + field(LNK5, "S03SIM-EA-FSCN-01:STAT1:Total PP MS") + field(LNK6, "S03SIM-EA-FSCN-01:STAT1:Net PP MS") + field(LNK7, "S03SIM-EA-FSCN-01:STAT1:MinX PP MS") + field(LNK8, "S03SIM-EA-FSCN-01:STAT1:MinY PP MS") + field(LNK9, "S03SIM-EA-FSCN-01:STAT1:MaxX PP MS") + field(LNKA, "S03SIM-EA-FSCN-01:STAT1:MaxY PP MS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Reset1") +} + +record(sseq, "S03SIM-EA-FSCN-01:STAT1:Reset1") +{ + field(LNK1, "S03SIM-EA-FSCN-01:STAT1:CentroidX PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:STAT1:CentroidY PP MS") + field(LNK3, "S03SIM-EA-FSCN-01:STAT1:SigmaX PP MS") + field(LNK4, "S03SIM-EA-FSCN-01:STAT1:SigmaY PP MS") + field(LNK5, "S03SIM-EA-FSCN-01:STAT1:SigmaXY PP MS") + field(LNK6, "S03SIM-EA-FSCN-01:STAT1:CentroidTotal PP MS") + field(LNK7, "S03SIM-EA-FSCN-01:STAT1:SkewX PP MS") + field(LNK8, "S03SIM-EA-FSCN-01:STAT1:SkewY PP MS") + field(LNK9, "S03SIM-EA-FSCN-01:STAT1:KurtosisX PP MS") + field(LNKA, "S03SIM-EA-FSCN-01:STAT1:KurtosisY PP MS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Reset2") +} + +record(sseq, "S03SIM-EA-FSCN-01:STAT1:Reset2") +{ + field(LNK1, "S03SIM-EA-FSCN-01:STAT1:Eccentricity PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:STAT1:Orientation PP MS") + field(LNK3, "S03SIM-EA-FSCN-01:STAT1:HistBelow PP MS") + field(LNK4, "S03SIM-EA-FSCN-01:STAT1:HistAbove PP MS") + field(LNK5, "S03SIM-EA-FSCN-01:STAT1:HistEntropy PP MS") +} + +#=================================================================# +# Template file: NDStats.template + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, NCHANS, Number of channels +# % macro, XSIZE, x size +# % macro, YSIZE, y size +# % macro, HIST_SIZE, hist size +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Timeout +# % macro, TS_PORT, TS port + +# This associates the template with an edm screen +# % gui, FSCN1.stats.stat2, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-01,R=:STAT2: + +# This associates a BOY screen with the template +# % gui, FSCN1.stats.stat2, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-01, R=:STAT2:, DESC=Statistics +# % gui, FSCN1.stats.stat2, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:STAT2:, DESC=Statistics +# % gui, FSCN1.stats.stat2, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-01, R=:STAT2:, DESC=Statistics + + +# % gui, FSCN1.stats.stat2, groupHeading, Info +# % gui, FSCN1.stats.stat2, readback, Port name, S03SIM-EA-FSCN-01:STAT2:PortName_RBV +# % gui, FSCN1.stats.stat2, readback, Plugin type, S03SIM-EA-FSCN-01:STAT2:PluginType_RBV +# Input +# % gui, FSCN1.stats.stat2, demandString, Input, S03SIM-EA-FSCN-01:STAT2:NDArrayPort +# % gui, FSCN1.stats.stat2, readback, Input, S03SIM-EA-FSCN-01:STAT2:NDArrayPort_RBV + +# % gui, FSCN1.stats.stat2, groupHeading, Callback +# % gui, FSCN1.stats.stat2, enum, Callbacks, S03SIM-EA-FSCN-01:STAT2:EnableCallbacks +# % gui, FSCN1.stats.stat2, statusbits, Callbacks, S03SIM-EA-FSCN-01:STAT2:EnableCallbacks_RBV +# % gui, FSCN1.stats.stat2, demand, Min Callback Time, S03SIM-EA-FSCN-01:STAT2:MinCallbackTime +# % gui, FSCN1.stats.stat2, readback, Min Callback Time, S03SIM-EA-FSCN-01:STAT2:MinCallbackTime_RBV +# % gui, FSCN1.stats.stat2, enum, Block Callbacks, S03SIM-EA-FSCN-01:STAT2:BlockingCallbacks +# % gui, FSCN1.stats.stat2, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:STAT2:BlockingCallbacks_RBV + +# % gui, FSCN1.stats.stat2, groupHeading, Counters +# % gui, FSCN1.stats.stat2, demand, Array Counter, S03SIM-EA-FSCN-01:STAT2:ArrayCounter +# % gui, FSCN1.stats.stat2, readback, Array Counter, S03SIM-EA-FSCN-01:STAT2:ArrayCounter_RBV +# % gui, FSCN1.stats.stat2, readback, Array Rate (fps), S03SIM-EA-FSCN-01:STAT2:ArrayRate_RBV +# % gui, FSCN1.stats.stat2, readback, Queue Use, S03SIM-EA-FSCN-01:STAT2:QueueUse +# % gui, FSCN1.stats.stat2, readback, Queue Size, S03SIM-EA-FSCN-01:STAT2:QueueSize +# % gui, FSCN1.stats.stat2, demand, Dropped Arrays, S03SIM-EA-FSCN-01:STAT2:DroppedArrays +# % gui, FSCN1.stats.stat2, readback, Dropped Arrays, S03SIM-EA-FSCN-01:STAT2:DroppedArrays_RBV + +# % gui, FSCN1.stats.stat2, groupHeading, Array Settings +# % gui, FSCN1.stats.stat2, readback, Num Dimensions, S03SIM-EA-FSCN-01:STAT2:NDimensions_RBV +# % gui, FSCN1.stats.stat2, readback, Dim 0 Size, S03SIM-EA-FSCN-01:STAT2:ArraySize0_RBV +# % gui, FSCN1.stats.stat2, readback, Dim 1 Size, S03SIM-EA-FSCN-01:STAT2:ArraySize1_RBV +# % gui, FSCN1.stats.stat2, readback, Dim 2 Size, S03SIM-EA-FSCN-01:STAT2:ArraySize2_RBV +# % gui, FSCN1.stats.stat2, readback, Input Data Type, S03SIM-EA-FSCN-01:STAT2:DataType_RBV +# % gui, FSCN1.stats.stat2, readback, Colour Mode, S03SIM-EA-FSCN-01:STAT2:ColorMode_RBV +# % gui, FSCN1.stats.stat2, readback, Bayer Pattern, S03SIM-EA-FSCN-01:STAT2:BayerPattern_RBV +# % gui, FSCN1.stats.stat2, readback, Unique id, S03SIM-EA-FSCN-01:STAT2:UniqueId_RBV +# % gui, FSCN1.stats.stat2, readback, Timestamp, S03SIM-EA-FSCN-01:STAT2:TimeStamp_RBV + +# Output +# % gui, FSCN1.stats.stat2, groupHeading, Output +# % gui, FSCN1.stats.stat2, demand, Name, S03SIM-EA-FSCN-01:STAT2:Name +# % gui, FSCN1.stats.stat2, enum, Out data type, S03SIM-EA-FSCN-01:STAT2:DataTypeOut +# % gui, FSCN1.stats.stat2, readback, Out data type, S03SIM-EA-FSCN-01:STAT2:DataTypeOut_RBV +# % gui, FSCN1.stats.stat2, demand, Attributes file, S03SIM-EA-FSCN-01:STAT2:NDAttributesFile + +# Statistics +# % gui, FSCN1.stats.stat2, groupHeading, Statistics +# % gui, FSCN1.stats.stat2, enum, Compute Statistics, S03SIM-EA-FSCN-01:STAT2:ComputeStatistics +# % gui, FSCN1.stats.stat2, statusbits, Compute Statistics, S03SIM-EA-FSCN-01:STAT2:ComputeStatistics_RBV +# % gui, FSCN1.stats.stat2, demand, Background Width, S03SIM-EA-FSCN-01:STAT2:BgdWidth +# % gui, FSCN1.stats.stat2, readback, Background Width, S03SIM-EA-FSCN-01:STAT2:BgdWidth_RBV +# % gui, FSCN1.stats.stat2, readback, Minimum Value, S03SIM-EA-FSCN-01:STAT2:MinValue_RBV +# % gui, FSCN1.stats.stat2, readback, Minimum X, S03SIM-EA-FSCN-01:STAT2:MinX_RBV +# % gui, FSCN1.stats.stat2, readback, Minimum Y, S03SIM-EA-FSCN-01:STAT2:MinY_RBV +# % gui, FSCN1.stats.stat2, readback, Maximum Value, S03SIM-EA-FSCN-01:STAT2:MaxValue_RBV +# % gui, FSCN1.stats.stat2, readback, Maximum X, S03SIM-EA-FSCN-01:STAT2:MaxX_RBV +# % gui, FSCN1.stats.stat2, readback, Maximum Y, S03SIM-EA-FSCN-01:STAT2:MaxY_RBV +# % gui, FSCN1.stats.stat2, readback, Mean Value, S03SIM-EA-FSCN-01:STAT2:MeanValue_RBV +# % gui, FSCN1.stats.stat2, readback, Total, S03SIM-EA-FSCN-01:STAT2:Total_RBV +# % gui, FSCN1.stats.stat2, readback, Sigma, S03SIM-EA-FSCN-01:STAT2:Sigma_RBV +# % gui, FSCN1.stats.stat2, readback, Net, S03SIM-EA-FSCN-01:STAT2:Net_RBV +# Centroid +# % gui, FSCN1.stats.stat2, groupHeading, Centroid +# % gui, FSCN1.stats.stat2, enum, Compute Centroid, S03SIM-EA-FSCN-01:STAT2:ComputeCentroid +# % gui, FSCN1.stats.stat2, statusbits, Compute Centroid, S03SIM-EA-FSCN-01:STAT2:ComputeCentroid_RBV +# % gui, FSCN1.stats.stat2, demand, Threshold, S03SIM-EA-FSCN-01:STAT2:CentroidThreshold +# % gui, FSCN1.stats.stat2, readback, Threshold, S03SIM-EA-FSCN-01:STAT2:CentroidThreshold_RBV +# % gui, FSCN1.stats.stat2, readback, X, S03SIM-EA-FSCN-01:STAT2:CentroidX_RBV +# % gui, FSCN1.stats.stat2, readback, Sigma X, S03SIM-EA-FSCN-01:STAT2:SigmaX_RBV +# % gui, FSCN1.stats.stat2, readback, Y, S03SIM-EA-FSCN-01:STAT2:CentroidY_RBV +# % gui, FSCN1.stats.stat2, readback, Sigma Y, S03SIM-EA-FSCN-01:STAT2:SigmaY_RBV +# % gui, FSCN1.stats.stat2, readback, Sigma XY, S03SIM-EA-FSCN-01:STAT2:SigmaXY_RBV +# Histogram +# % gui, FSCN1.stats.stat2, groupHeading, Histogram +# % gui, FSCN1.stats.stat2, enum, Compute Histogram, S03SIM-EA-FSCN-01:STAT2:ComputeHistogram +# % gui, FSCN1.stats.stat2, statusbits, Compute Histogram, S03SIM-EA-FSCN-01:STAT2:ComputeHistogram_RBV +# % gui, FSCN1.stats.stat2, demand, Histogram Size, S03SIM-EA-FSCN-01:STAT2:HistSize +# % gui, FSCN1.stats.stat2, readback, Histogram Size, S03SIM-EA-FSCN-01:STAT2:HistSize_RBV +# % gui, FSCN1.stats.stat2, demand, Histogram Min, S03SIM-EA-FSCN-01:STAT2:HistMin +# % gui, FSCN1.stats.stat2, readback, Histogram Min, S03SIM-EA-FSCN-01:STAT2:HistMin_RBV +# % gui, FSCN1.stats.stat2, demand, Histogram Max, S03SIM-EA-FSCN-01:STAT2:HistMax +# % gui, FSCN1.stats.stat2, readback, Histogram Max, S03SIM-EA-FSCN-01:STAT2:HistMax_RBV +# % gui, FSCN1.stats.stat2, readback, Histogram Entropy, S03SIM-EA-FSCN-01:STAT2:HistEntropy_RBV +# Profiles +# % gui, FSCN1.stats.stat2, groupHeading, Profiles +# % gui, FSCN1.stats.stat2, enum, Compute Profiles, S03SIM-EA-FSCN-01:STAT2:ComputeProfiles +# % gui, FSCN1.stats.stat2, statusbits, Compute Profiles, S03SIM-EA-FSCN-01:STAT2:ComputeProfiles_RBV +# % gui, FSCN1.stats.stat2, demand, Cursor X, S03SIM-EA-FSCN-01:STAT2:CursorX +# % gui, FSCN1.stats.stat2, readback, Cursor X, S03SIM-EA-FSCN-01:STAT2:CursorX_RBV +# % gui, FSCN1.stats.stat2, demand, Cursor Y, S03SIM-EA-FSCN-01:STAT2:CursorY +# % gui, FSCN1.stats.stat2, readback, Cursor Y, S03SIM-EA-FSCN-01:STAT2:CursorY_RBV +# % gui, FSCN1.stats.stat2, readback, Size X, S03SIM-EA-FSCN-01:STAT2:ProfileSizeX_RBV +# % gui, FSCN1.stats.stat2, readback, Size Y, S03SIM-EA-FSCN-01:STAT2:ProfileSizeY_RBV +# Time series +# % gui, FSCN1.stats.stat2, groupHeading, Time Series +# % gui, FSCN1.stats.stat2, enum, Time Control, S03SIM-EA-FSCN-01:STAT2:TS:TSAcquire +# % gui, FSCN1.stats.stat2, statusbits, Acquiring, S03SIM-EA-FSCN-01:STAT2:TS:TSAcquiring +# % gui, FSCN1.stats.stat2, readback, Current Point, S03SIM-EA-FSCN-01:STAT2:TS:TSCurrentPoint +# % gui, FSCN1.stats.stat2, demand, Number of Points, S03SIM-EA-FSCN-01:STAT2:TS:TSNumPoints +# % gui, FSCN1.stats.stat2, enum, Update, S03SIM-EA-FSCN-01:STAT2:TS:TSRead.SCAN +# Memory +# % gui, FSCN1.stats.stat2, groupHeading, Memory +# % gui, FSCN1.stats.stat2, readback, Max memory, S03SIM-EA-FSCN-01:STAT2:PoolMaxMem +# % gui, FSCN1.stats.stat2, readback, Max buffers, S03SIM-EA-FSCN-01:STAT2:PoolMaxBuffers +# % gui, FSCN1.stats.stat2, readback, Used memory, S03SIM-EA-FSCN-01:STAT2:PoolUsedMem +# % gui, FSCN1.stats.stat2, readback, Allocated buffers, S03SIM-EA-FSCN-01:STAT2:PoolAllocBuffers +# % gui, FSCN1.stats.stat2, readback, Free buffers, S03SIM-EA-FSCN-01:STAT2:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT2:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT2:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT2:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT2:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT2:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT2:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT2:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT2:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:STAT2:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT2:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT2:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT2:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:STAT2:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT2:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT2:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:STAT2:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:STAT2:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:STAT2:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:STAT2:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:STAT2:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:STAT2:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:STAT2:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:STAT2:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:STAT2:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:STAT2:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:STAT2:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:STAT2:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:STAT2:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:STAT2:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT2:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:STAT2:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:STAT2:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT2:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT2:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:STAT2:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:STAT2:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:STAT2:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT2:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:STAT2:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:STAT2:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT2:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:STAT2:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.rois.roi1") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT2:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT2:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT2:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT2:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:STAT2:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT2:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT2:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:STAT2:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:STAT2:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT2:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:STAT2:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT2:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT2:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT2:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:STAT2:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT2:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT2:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:STAT2:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT2:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:STAT2:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:STAT2:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT2:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:STAT2:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:STAT2:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT2:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:STAT2:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:STAT2:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:STAT2:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT2:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:STAT2:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:STAT2:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT2:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT2:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:STAT2:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT2:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT2:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT2:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:STAT2:AsynIO") +{ + field(PORT, "FSCN1.stats.stat2") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records contain the basic statistics # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT2:ComputeStatistics") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)COMPUTE_STATISTICS") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT2:ComputeStatistics_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)COMPUTE_STATISTICS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT2:BgdWidth") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)BGD_WIDTH") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:BgdWidth_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)BGD_WIDTH") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:MinValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)MIN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:MinValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)MIN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:MaxValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)MAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:MaxValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)MAX_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:MeanValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)MEAN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:MeanValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)MEAN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:SigmaValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)SIGMA_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:Sigma_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)SIGMA_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:Total") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:Total_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:Net") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)NET") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:Net_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)NET") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:MinX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)MIN_X") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:MinX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:MinY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)MIN_Y") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:MinY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:MaxX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)MAX_X") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:MaxX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)MAX_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:MaxY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)MAX_Y") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:MaxY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)MAX_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether centroid statistics are computed # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT2:ComputeCentroid") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)COMPUTE_CENTROID") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT2:ComputeCentroid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)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, "S03SIM-EA-FSCN-01:STAT2:CentroidThreshold") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)CENTROID_THRESHOLD") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:CentroidThreshold_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)CENTROID_THRESHOLD") + field(VAL, "0") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:CentroidTotal") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)CENTROID_TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:CentroidTotal_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)CENTROID_TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:CentroidX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)CENTROIDX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:CentroidX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)CENTROIDX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:CentroidY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)CENTROIDY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:CentroidY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)CENTROIDY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:SigmaX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)SIGMAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:SigmaX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)SIGMAX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:SigmaY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)SIGMAY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:SigmaY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)SIGMAY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:SigmaXY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)SIGMAXY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:SigmaXY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)SIGMAXY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:SkewX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)SKEWX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:SkewX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)SKEWX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:SkewY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)SKEWY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:SkewY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)SKEWY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:KurtosisX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)KURTOSISX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:KurtosisX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)KURTOSISX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:KurtosisY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)KURTOSISY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:KurtosisY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)KURTOSISY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:Eccentricity") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)ECCENTRICITY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:Eccentricity_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)ECCENTRICITY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:Orientation") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)ORIENTATION_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:Orientation_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)ORIENTATION_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control time series # +################################################################### +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSMinValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,0,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSMinX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,1,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSMinY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,2,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSMaxValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,3,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSMaxX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,4,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSMaxY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,5,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSMeanValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,6,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSSigma") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,7,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,8,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSNet") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,9,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSCentroidTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,10,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSCentroidX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,11,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSCentroidY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,12,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSSigmaX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,13,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSSigmaY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,14,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSSigmaXY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,15,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSSkewX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,16,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSSkewY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,17,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSKurtosisX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,18,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSKurtosisY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,19,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSEccentricity") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,20,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSOrientation") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,21,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSTimestamp") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2_TS,22,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control profiles # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT2:ComputeProfiles") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)COMPUTE_PROFILES") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT2:ComputeProfiles_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)COMPUTE_PROFILES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ProfileSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)PROFILE_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:ProfileSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)PROFILE_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT2:CursorX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)CURSOR_X") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:CursorX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)CURSOR_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT2:CursorY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)CURSOR_Y") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:CursorY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)CURSOR_Y") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:CursorVal") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)CURSOR_VAL") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:ProfileAverageX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)PROFILE_AVERAGE_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:ProfileAverageY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)PROFILE_AVERAGE_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:ProfileThresholdX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)PROFILE_THRESHOLD_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:ProfileThresholdY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)PROFILE_THRESHOLD_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:ProfileCentroidX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)PROFILE_CENTROID_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:ProfileCentroidY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)PROFILE_CENTROID_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:ProfileCursorX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)PROFILE_CURSOR_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:ProfileCursorY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)PROFILE_CURSOR_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These are used to define the histogram # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT2:ComputeHistogram") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)COMPUTE_HISTOGRAM") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT2:ComputeHistogram_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)COMPUTE_HISTOGRAM") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT2:HistSize") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)HIST_SIZE") + field(VAL, "256") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:HistSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)HIST_SIZE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:HistMin") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)HIST_MIN") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:HistMin_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)HIST_MIN") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:HistMax") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)HIST_MAX") + field(VAL, "255") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:HistMax_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)HIST_MAX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT2:HistBelow") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)HIST_BELOW") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:HistBelow_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)HIST_BELOW") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT2:HistAbove") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)HIST_ABOVE") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:HistAbove_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)HIST_ABOVE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT2:HistEntropy") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat2,0,1)HIST_ENTROPY") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT2:HistEntropy_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)HIST_ENTROPY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:Histogram_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)HIST_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT2:HistogramX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat2,0,1)HIST_X_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + 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, "S03SIM-EA-FSCN-01:STAT2:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:ProfileSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:STAT2:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:STAT2:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:STAT2:CursorX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT2:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT2:ProfileSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:STAT2:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:STAT2:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:STAT2:CursorY.HOPR NPP") +} + +################################################################### +# These records reset the statistics # +################################################################### +record(sseq, "S03SIM-EA-FSCN-01:STAT2:Reset") +{ + field(LNK1, "S03SIM-EA-FSCN-01:STAT2:MinValue PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:STAT2:MaxValue PP MS") + field(LNK3, "S03SIM-EA-FSCN-01:STAT2:MeanValue PP MS") + field(LNK4, "S03SIM-EA-FSCN-01:STAT2:SigmaValue PP MS") + field(LNK5, "S03SIM-EA-FSCN-01:STAT2:Total PP MS") + field(LNK6, "S03SIM-EA-FSCN-01:STAT2:Net PP MS") + field(LNK7, "S03SIM-EA-FSCN-01:STAT2:MinX PP MS") + field(LNK8, "S03SIM-EA-FSCN-01:STAT2:MinY PP MS") + field(LNK9, "S03SIM-EA-FSCN-01:STAT2:MaxX PP MS") + field(LNKA, "S03SIM-EA-FSCN-01:STAT2:MaxY PP MS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Reset1") +} + +record(sseq, "S03SIM-EA-FSCN-01:STAT2:Reset1") +{ + field(LNK1, "S03SIM-EA-FSCN-01:STAT2:CentroidX PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:STAT2:CentroidY PP MS") + field(LNK3, "S03SIM-EA-FSCN-01:STAT2:SigmaX PP MS") + field(LNK4, "S03SIM-EA-FSCN-01:STAT2:SigmaY PP MS") + field(LNK5, "S03SIM-EA-FSCN-01:STAT2:SigmaXY PP MS") + field(LNK6, "S03SIM-EA-FSCN-01:STAT2:CentroidTotal PP MS") + field(LNK7, "S03SIM-EA-FSCN-01:STAT2:SkewX PP MS") + field(LNK8, "S03SIM-EA-FSCN-01:STAT2:SkewY PP MS") + field(LNK9, "S03SIM-EA-FSCN-01:STAT2:KurtosisX PP MS") + field(LNKA, "S03SIM-EA-FSCN-01:STAT2:KurtosisY PP MS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Reset2") +} + +record(sseq, "S03SIM-EA-FSCN-01:STAT2:Reset2") +{ + field(LNK1, "S03SIM-EA-FSCN-01:STAT2:Eccentricity PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:STAT2:Orientation PP MS") + field(LNK3, "S03SIM-EA-FSCN-01:STAT2:HistBelow PP MS") + field(LNK4, "S03SIM-EA-FSCN-01:STAT2:HistAbove PP MS") + field(LNK5, "S03SIM-EA-FSCN-01:STAT2:HistEntropy PP MS") +} + +#=================================================================# +# Template file: NDStats.template + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, NCHANS, Number of channels +# % macro, XSIZE, x size +# % macro, YSIZE, y size +# % macro, HIST_SIZE, hist size +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Timeout +# % macro, TS_PORT, TS port + +# This associates the template with an edm screen +# % gui, FSCN1.stats.stat3, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-01,R=:STAT3: + +# This associates a BOY screen with the template +# % gui, FSCN1.stats.stat3, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-01, R=:STAT3:, DESC=Statistics +# % gui, FSCN1.stats.stat3, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:STAT3:, DESC=Statistics +# % gui, FSCN1.stats.stat3, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-01, R=:STAT3:, DESC=Statistics + + +# % gui, FSCN1.stats.stat3, groupHeading, Info +# % gui, FSCN1.stats.stat3, readback, Port name, S03SIM-EA-FSCN-01:STAT3:PortName_RBV +# % gui, FSCN1.stats.stat3, readback, Plugin type, S03SIM-EA-FSCN-01:STAT3:PluginType_RBV +# Input +# % gui, FSCN1.stats.stat3, demandString, Input, S03SIM-EA-FSCN-01:STAT3:NDArrayPort +# % gui, FSCN1.stats.stat3, readback, Input, S03SIM-EA-FSCN-01:STAT3:NDArrayPort_RBV + +# % gui, FSCN1.stats.stat3, groupHeading, Callback +# % gui, FSCN1.stats.stat3, enum, Callbacks, S03SIM-EA-FSCN-01:STAT3:EnableCallbacks +# % gui, FSCN1.stats.stat3, statusbits, Callbacks, S03SIM-EA-FSCN-01:STAT3:EnableCallbacks_RBV +# % gui, FSCN1.stats.stat3, demand, Min Callback Time, S03SIM-EA-FSCN-01:STAT3:MinCallbackTime +# % gui, FSCN1.stats.stat3, readback, Min Callback Time, S03SIM-EA-FSCN-01:STAT3:MinCallbackTime_RBV +# % gui, FSCN1.stats.stat3, enum, Block Callbacks, S03SIM-EA-FSCN-01:STAT3:BlockingCallbacks +# % gui, FSCN1.stats.stat3, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:STAT3:BlockingCallbacks_RBV + +# % gui, FSCN1.stats.stat3, groupHeading, Counters +# % gui, FSCN1.stats.stat3, demand, Array Counter, S03SIM-EA-FSCN-01:STAT3:ArrayCounter +# % gui, FSCN1.stats.stat3, readback, Array Counter, S03SIM-EA-FSCN-01:STAT3:ArrayCounter_RBV +# % gui, FSCN1.stats.stat3, readback, Array Rate (fps), S03SIM-EA-FSCN-01:STAT3:ArrayRate_RBV +# % gui, FSCN1.stats.stat3, readback, Queue Use, S03SIM-EA-FSCN-01:STAT3:QueueUse +# % gui, FSCN1.stats.stat3, readback, Queue Size, S03SIM-EA-FSCN-01:STAT3:QueueSize +# % gui, FSCN1.stats.stat3, demand, Dropped Arrays, S03SIM-EA-FSCN-01:STAT3:DroppedArrays +# % gui, FSCN1.stats.stat3, readback, Dropped Arrays, S03SIM-EA-FSCN-01:STAT3:DroppedArrays_RBV + +# % gui, FSCN1.stats.stat3, groupHeading, Array Settings +# % gui, FSCN1.stats.stat3, readback, Num Dimensions, S03SIM-EA-FSCN-01:STAT3:NDimensions_RBV +# % gui, FSCN1.stats.stat3, readback, Dim 0 Size, S03SIM-EA-FSCN-01:STAT3:ArraySize0_RBV +# % gui, FSCN1.stats.stat3, readback, Dim 1 Size, S03SIM-EA-FSCN-01:STAT3:ArraySize1_RBV +# % gui, FSCN1.stats.stat3, readback, Dim 2 Size, S03SIM-EA-FSCN-01:STAT3:ArraySize2_RBV +# % gui, FSCN1.stats.stat3, readback, Input Data Type, S03SIM-EA-FSCN-01:STAT3:DataType_RBV +# % gui, FSCN1.stats.stat3, readback, Colour Mode, S03SIM-EA-FSCN-01:STAT3:ColorMode_RBV +# % gui, FSCN1.stats.stat3, readback, Bayer Pattern, S03SIM-EA-FSCN-01:STAT3:BayerPattern_RBV +# % gui, FSCN1.stats.stat3, readback, Unique id, S03SIM-EA-FSCN-01:STAT3:UniqueId_RBV +# % gui, FSCN1.stats.stat3, readback, Timestamp, S03SIM-EA-FSCN-01:STAT3:TimeStamp_RBV + +# Output +# % gui, FSCN1.stats.stat3, groupHeading, Output +# % gui, FSCN1.stats.stat3, demand, Name, S03SIM-EA-FSCN-01:STAT3:Name +# % gui, FSCN1.stats.stat3, enum, Out data type, S03SIM-EA-FSCN-01:STAT3:DataTypeOut +# % gui, FSCN1.stats.stat3, readback, Out data type, S03SIM-EA-FSCN-01:STAT3:DataTypeOut_RBV +# % gui, FSCN1.stats.stat3, demand, Attributes file, S03SIM-EA-FSCN-01:STAT3:NDAttributesFile + +# Statistics +# % gui, FSCN1.stats.stat3, groupHeading, Statistics +# % gui, FSCN1.stats.stat3, enum, Compute Statistics, S03SIM-EA-FSCN-01:STAT3:ComputeStatistics +# % gui, FSCN1.stats.stat3, statusbits, Compute Statistics, S03SIM-EA-FSCN-01:STAT3:ComputeStatistics_RBV +# % gui, FSCN1.stats.stat3, demand, Background Width, S03SIM-EA-FSCN-01:STAT3:BgdWidth +# % gui, FSCN1.stats.stat3, readback, Background Width, S03SIM-EA-FSCN-01:STAT3:BgdWidth_RBV +# % gui, FSCN1.stats.stat3, readback, Minimum Value, S03SIM-EA-FSCN-01:STAT3:MinValue_RBV +# % gui, FSCN1.stats.stat3, readback, Minimum X, S03SIM-EA-FSCN-01:STAT3:MinX_RBV +# % gui, FSCN1.stats.stat3, readback, Minimum Y, S03SIM-EA-FSCN-01:STAT3:MinY_RBV +# % gui, FSCN1.stats.stat3, readback, Maximum Value, S03SIM-EA-FSCN-01:STAT3:MaxValue_RBV +# % gui, FSCN1.stats.stat3, readback, Maximum X, S03SIM-EA-FSCN-01:STAT3:MaxX_RBV +# % gui, FSCN1.stats.stat3, readback, Maximum Y, S03SIM-EA-FSCN-01:STAT3:MaxY_RBV +# % gui, FSCN1.stats.stat3, readback, Mean Value, S03SIM-EA-FSCN-01:STAT3:MeanValue_RBV +# % gui, FSCN1.stats.stat3, readback, Total, S03SIM-EA-FSCN-01:STAT3:Total_RBV +# % gui, FSCN1.stats.stat3, readback, Sigma, S03SIM-EA-FSCN-01:STAT3:Sigma_RBV +# % gui, FSCN1.stats.stat3, readback, Net, S03SIM-EA-FSCN-01:STAT3:Net_RBV +# Centroid +# % gui, FSCN1.stats.stat3, groupHeading, Centroid +# % gui, FSCN1.stats.stat3, enum, Compute Centroid, S03SIM-EA-FSCN-01:STAT3:ComputeCentroid +# % gui, FSCN1.stats.stat3, statusbits, Compute Centroid, S03SIM-EA-FSCN-01:STAT3:ComputeCentroid_RBV +# % gui, FSCN1.stats.stat3, demand, Threshold, S03SIM-EA-FSCN-01:STAT3:CentroidThreshold +# % gui, FSCN1.stats.stat3, readback, Threshold, S03SIM-EA-FSCN-01:STAT3:CentroidThreshold_RBV +# % gui, FSCN1.stats.stat3, readback, X, S03SIM-EA-FSCN-01:STAT3:CentroidX_RBV +# % gui, FSCN1.stats.stat3, readback, Sigma X, S03SIM-EA-FSCN-01:STAT3:SigmaX_RBV +# % gui, FSCN1.stats.stat3, readback, Y, S03SIM-EA-FSCN-01:STAT3:CentroidY_RBV +# % gui, FSCN1.stats.stat3, readback, Sigma Y, S03SIM-EA-FSCN-01:STAT3:SigmaY_RBV +# % gui, FSCN1.stats.stat3, readback, Sigma XY, S03SIM-EA-FSCN-01:STAT3:SigmaXY_RBV +# Histogram +# % gui, FSCN1.stats.stat3, groupHeading, Histogram +# % gui, FSCN1.stats.stat3, enum, Compute Histogram, S03SIM-EA-FSCN-01:STAT3:ComputeHistogram +# % gui, FSCN1.stats.stat3, statusbits, Compute Histogram, S03SIM-EA-FSCN-01:STAT3:ComputeHistogram_RBV +# % gui, FSCN1.stats.stat3, demand, Histogram Size, S03SIM-EA-FSCN-01:STAT3:HistSize +# % gui, FSCN1.stats.stat3, readback, Histogram Size, S03SIM-EA-FSCN-01:STAT3:HistSize_RBV +# % gui, FSCN1.stats.stat3, demand, Histogram Min, S03SIM-EA-FSCN-01:STAT3:HistMin +# % gui, FSCN1.stats.stat3, readback, Histogram Min, S03SIM-EA-FSCN-01:STAT3:HistMin_RBV +# % gui, FSCN1.stats.stat3, demand, Histogram Max, S03SIM-EA-FSCN-01:STAT3:HistMax +# % gui, FSCN1.stats.stat3, readback, Histogram Max, S03SIM-EA-FSCN-01:STAT3:HistMax_RBV +# % gui, FSCN1.stats.stat3, readback, Histogram Entropy, S03SIM-EA-FSCN-01:STAT3:HistEntropy_RBV +# Profiles +# % gui, FSCN1.stats.stat3, groupHeading, Profiles +# % gui, FSCN1.stats.stat3, enum, Compute Profiles, S03SIM-EA-FSCN-01:STAT3:ComputeProfiles +# % gui, FSCN1.stats.stat3, statusbits, Compute Profiles, S03SIM-EA-FSCN-01:STAT3:ComputeProfiles_RBV +# % gui, FSCN1.stats.stat3, demand, Cursor X, S03SIM-EA-FSCN-01:STAT3:CursorX +# % gui, FSCN1.stats.stat3, readback, Cursor X, S03SIM-EA-FSCN-01:STAT3:CursorX_RBV +# % gui, FSCN1.stats.stat3, demand, Cursor Y, S03SIM-EA-FSCN-01:STAT3:CursorY +# % gui, FSCN1.stats.stat3, readback, Cursor Y, S03SIM-EA-FSCN-01:STAT3:CursorY_RBV +# % gui, FSCN1.stats.stat3, readback, Size X, S03SIM-EA-FSCN-01:STAT3:ProfileSizeX_RBV +# % gui, FSCN1.stats.stat3, readback, Size Y, S03SIM-EA-FSCN-01:STAT3:ProfileSizeY_RBV +# Time series +# % gui, FSCN1.stats.stat3, groupHeading, Time Series +# % gui, FSCN1.stats.stat3, enum, Time Control, S03SIM-EA-FSCN-01:STAT3:TS:TSAcquire +# % gui, FSCN1.stats.stat3, statusbits, Acquiring, S03SIM-EA-FSCN-01:STAT3:TS:TSAcquiring +# % gui, FSCN1.stats.stat3, readback, Current Point, S03SIM-EA-FSCN-01:STAT3:TS:TSCurrentPoint +# % gui, FSCN1.stats.stat3, demand, Number of Points, S03SIM-EA-FSCN-01:STAT3:TS:TSNumPoints +# % gui, FSCN1.stats.stat3, enum, Update, S03SIM-EA-FSCN-01:STAT3:TS:TSRead.SCAN +# Memory +# % gui, FSCN1.stats.stat3, groupHeading, Memory +# % gui, FSCN1.stats.stat3, readback, Max memory, S03SIM-EA-FSCN-01:STAT3:PoolMaxMem +# % gui, FSCN1.stats.stat3, readback, Max buffers, S03SIM-EA-FSCN-01:STAT3:PoolMaxBuffers +# % gui, FSCN1.stats.stat3, readback, Used memory, S03SIM-EA-FSCN-01:STAT3:PoolUsedMem +# % gui, FSCN1.stats.stat3, readback, Allocated buffers, S03SIM-EA-FSCN-01:STAT3:PoolAllocBuffers +# % gui, FSCN1.stats.stat3, readback, Free buffers, S03SIM-EA-FSCN-01:STAT3:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT3:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT3:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT3:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT3:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT3:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT3:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT3:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT3:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:STAT3:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT3:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT3:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT3:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:STAT3:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT3:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT3:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:STAT3:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:STAT3:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:STAT3:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:STAT3:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:STAT3:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:STAT3:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:STAT3:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:STAT3:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:STAT3:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:STAT3:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:STAT3:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:STAT3:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:STAT3:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:STAT3:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT3:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:STAT3:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:STAT3:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT3:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT3:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:STAT3:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:STAT3:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:STAT3:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT3:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:STAT3:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:STAT3:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT3:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:STAT3:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.rois.roi1") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT3:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT3:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT3:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT3:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:STAT3:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT3:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT3:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:STAT3:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:STAT3:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT3:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:STAT3:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT3:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT3:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT3:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:STAT3:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT3:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT3:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:STAT3:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT3:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:STAT3:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:STAT3:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT3:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:STAT3:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:STAT3:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT3:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:STAT3:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:STAT3:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:STAT3:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT3:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:STAT3:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:STAT3:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT3:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT3:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:STAT3:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT3:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT3:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT3:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:STAT3:AsynIO") +{ + field(PORT, "FSCN1.stats.stat3") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records contain the basic statistics # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT3:ComputeStatistics") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)COMPUTE_STATISTICS") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT3:ComputeStatistics_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)COMPUTE_STATISTICS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT3:BgdWidth") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)BGD_WIDTH") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:BgdWidth_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)BGD_WIDTH") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:MinValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)MIN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:MinValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)MIN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:MaxValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)MAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:MaxValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)MAX_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:MeanValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)MEAN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:MeanValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)MEAN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:SigmaValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)SIGMA_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:Sigma_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)SIGMA_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:Total") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:Total_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:Net") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)NET") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:Net_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)NET") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:MinX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)MIN_X") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:MinX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:MinY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)MIN_Y") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:MinY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:MaxX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)MAX_X") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:MaxX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)MAX_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:MaxY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)MAX_Y") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:MaxY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)MAX_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether centroid statistics are computed # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT3:ComputeCentroid") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)COMPUTE_CENTROID") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT3:ComputeCentroid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)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, "S03SIM-EA-FSCN-01:STAT3:CentroidThreshold") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)CENTROID_THRESHOLD") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:CentroidThreshold_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)CENTROID_THRESHOLD") + field(VAL, "0") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:CentroidTotal") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)CENTROID_TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:CentroidTotal_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)CENTROID_TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:CentroidX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)CENTROIDX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:CentroidX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)CENTROIDX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:CentroidY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)CENTROIDY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:CentroidY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)CENTROIDY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:SigmaX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)SIGMAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:SigmaX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)SIGMAX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:SigmaY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)SIGMAY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:SigmaY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)SIGMAY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:SigmaXY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)SIGMAXY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:SigmaXY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)SIGMAXY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:SkewX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)SKEWX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:SkewX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)SKEWX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:SkewY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)SKEWY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:SkewY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)SKEWY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:KurtosisX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)KURTOSISX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:KurtosisX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)KURTOSISX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:KurtosisY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)KURTOSISY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:KurtosisY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)KURTOSISY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:Eccentricity") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)ECCENTRICITY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:Eccentricity_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)ECCENTRICITY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:Orientation") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)ORIENTATION_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:Orientation_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)ORIENTATION_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control time series # +################################################################### +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSMinValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,0,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSMinX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,1,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSMinY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,2,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSMaxValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,3,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSMaxX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,4,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSMaxY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,5,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSMeanValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,6,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSSigma") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,7,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,8,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSNet") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,9,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSCentroidTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,10,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSCentroidX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,11,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSCentroidY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,12,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSSigmaX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,13,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSSigmaY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,14,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSSigmaXY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,15,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSSkewX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,16,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSSkewY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,17,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSKurtosisX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,18,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSKurtosisY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,19,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSEccentricity") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,20,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSOrientation") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,21,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSTimestamp") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3_TS,22,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control profiles # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT3:ComputeProfiles") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)COMPUTE_PROFILES") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT3:ComputeProfiles_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)COMPUTE_PROFILES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ProfileSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)PROFILE_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:ProfileSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)PROFILE_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT3:CursorX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)CURSOR_X") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:CursorX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)CURSOR_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT3:CursorY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)CURSOR_Y") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:CursorY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)CURSOR_Y") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:CursorVal") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)CURSOR_VAL") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:ProfileAverageX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)PROFILE_AVERAGE_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:ProfileAverageY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)PROFILE_AVERAGE_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:ProfileThresholdX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)PROFILE_THRESHOLD_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:ProfileThresholdY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)PROFILE_THRESHOLD_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:ProfileCentroidX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)PROFILE_CENTROID_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:ProfileCentroidY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)PROFILE_CENTROID_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:ProfileCursorX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)PROFILE_CURSOR_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:ProfileCursorY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)PROFILE_CURSOR_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These are used to define the histogram # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT3:ComputeHistogram") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)COMPUTE_HISTOGRAM") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT3:ComputeHistogram_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)COMPUTE_HISTOGRAM") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT3:HistSize") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)HIST_SIZE") + field(VAL, "256") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:HistSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)HIST_SIZE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:HistMin") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)HIST_MIN") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:HistMin_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)HIST_MIN") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:HistMax") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)HIST_MAX") + field(VAL, "255") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:HistMax_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)HIST_MAX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT3:HistBelow") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)HIST_BELOW") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:HistBelow_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)HIST_BELOW") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT3:HistAbove") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)HIST_ABOVE") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:HistAbove_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)HIST_ABOVE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT3:HistEntropy") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat3,0,1)HIST_ENTROPY") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT3:HistEntropy_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)HIST_ENTROPY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:Histogram_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)HIST_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT3:HistogramX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat3,0,1)HIST_X_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + 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, "S03SIM-EA-FSCN-01:STAT3:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:ProfileSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:STAT3:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:STAT3:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:STAT3:CursorX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT3:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT3:ProfileSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:STAT3:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:STAT3:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:STAT3:CursorY.HOPR NPP") +} + +################################################################### +# These records reset the statistics # +################################################################### +record(sseq, "S03SIM-EA-FSCN-01:STAT3:Reset") +{ + field(LNK1, "S03SIM-EA-FSCN-01:STAT3:MinValue PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:STAT3:MaxValue PP MS") + field(LNK3, "S03SIM-EA-FSCN-01:STAT3:MeanValue PP MS") + field(LNK4, "S03SIM-EA-FSCN-01:STAT3:SigmaValue PP MS") + field(LNK5, "S03SIM-EA-FSCN-01:STAT3:Total PP MS") + field(LNK6, "S03SIM-EA-FSCN-01:STAT3:Net PP MS") + field(LNK7, "S03SIM-EA-FSCN-01:STAT3:MinX PP MS") + field(LNK8, "S03SIM-EA-FSCN-01:STAT3:MinY PP MS") + field(LNK9, "S03SIM-EA-FSCN-01:STAT3:MaxX PP MS") + field(LNKA, "S03SIM-EA-FSCN-01:STAT3:MaxY PP MS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Reset1") +} + +record(sseq, "S03SIM-EA-FSCN-01:STAT3:Reset1") +{ + field(LNK1, "S03SIM-EA-FSCN-01:STAT3:CentroidX PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:STAT3:CentroidY PP MS") + field(LNK3, "S03SIM-EA-FSCN-01:STAT3:SigmaX PP MS") + field(LNK4, "S03SIM-EA-FSCN-01:STAT3:SigmaY PP MS") + field(LNK5, "S03SIM-EA-FSCN-01:STAT3:SigmaXY PP MS") + field(LNK6, "S03SIM-EA-FSCN-01:STAT3:CentroidTotal PP MS") + field(LNK7, "S03SIM-EA-FSCN-01:STAT3:SkewX PP MS") + field(LNK8, "S03SIM-EA-FSCN-01:STAT3:SkewY PP MS") + field(LNK9, "S03SIM-EA-FSCN-01:STAT3:KurtosisX PP MS") + field(LNKA, "S03SIM-EA-FSCN-01:STAT3:KurtosisY PP MS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Reset2") +} + +record(sseq, "S03SIM-EA-FSCN-01:STAT3:Reset2") +{ + field(LNK1, "S03SIM-EA-FSCN-01:STAT3:Eccentricity PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:STAT3:Orientation PP MS") + field(LNK3, "S03SIM-EA-FSCN-01:STAT3:HistBelow PP MS") + field(LNK4, "S03SIM-EA-FSCN-01:STAT3:HistAbove PP MS") + field(LNK5, "S03SIM-EA-FSCN-01:STAT3:HistEntropy PP MS") +} + +#=================================================================# +# Template file: NDStats.template + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, NCHANS, Number of channels +# % macro, XSIZE, x size +# % macro, YSIZE, y size +# % macro, HIST_SIZE, hist size +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Timeout +# % macro, TS_PORT, TS port + +# This associates the template with an edm screen +# % gui, FSCN1.stats.stat4, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-01,R=:STAT4: + +# This associates a BOY screen with the template +# % gui, FSCN1.stats.stat4, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-01, R=:STAT4:, DESC=Statistics +# % gui, FSCN1.stats.stat4, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:STAT4:, DESC=Statistics +# % gui, FSCN1.stats.stat4, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-01, R=:STAT4:, DESC=Statistics + + +# % gui, FSCN1.stats.stat4, groupHeading, Info +# % gui, FSCN1.stats.stat4, readback, Port name, S03SIM-EA-FSCN-01:STAT4:PortName_RBV +# % gui, FSCN1.stats.stat4, readback, Plugin type, S03SIM-EA-FSCN-01:STAT4:PluginType_RBV +# Input +# % gui, FSCN1.stats.stat4, demandString, Input, S03SIM-EA-FSCN-01:STAT4:NDArrayPort +# % gui, FSCN1.stats.stat4, readback, Input, S03SIM-EA-FSCN-01:STAT4:NDArrayPort_RBV + +# % gui, FSCN1.stats.stat4, groupHeading, Callback +# % gui, FSCN1.stats.stat4, enum, Callbacks, S03SIM-EA-FSCN-01:STAT4:EnableCallbacks +# % gui, FSCN1.stats.stat4, statusbits, Callbacks, S03SIM-EA-FSCN-01:STAT4:EnableCallbacks_RBV +# % gui, FSCN1.stats.stat4, demand, Min Callback Time, S03SIM-EA-FSCN-01:STAT4:MinCallbackTime +# % gui, FSCN1.stats.stat4, readback, Min Callback Time, S03SIM-EA-FSCN-01:STAT4:MinCallbackTime_RBV +# % gui, FSCN1.stats.stat4, enum, Block Callbacks, S03SIM-EA-FSCN-01:STAT4:BlockingCallbacks +# % gui, FSCN1.stats.stat4, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:STAT4:BlockingCallbacks_RBV + +# % gui, FSCN1.stats.stat4, groupHeading, Counters +# % gui, FSCN1.stats.stat4, demand, Array Counter, S03SIM-EA-FSCN-01:STAT4:ArrayCounter +# % gui, FSCN1.stats.stat4, readback, Array Counter, S03SIM-EA-FSCN-01:STAT4:ArrayCounter_RBV +# % gui, FSCN1.stats.stat4, readback, Array Rate (fps), S03SIM-EA-FSCN-01:STAT4:ArrayRate_RBV +# % gui, FSCN1.stats.stat4, readback, Queue Use, S03SIM-EA-FSCN-01:STAT4:QueueUse +# % gui, FSCN1.stats.stat4, readback, Queue Size, S03SIM-EA-FSCN-01:STAT4:QueueSize +# % gui, FSCN1.stats.stat4, demand, Dropped Arrays, S03SIM-EA-FSCN-01:STAT4:DroppedArrays +# % gui, FSCN1.stats.stat4, readback, Dropped Arrays, S03SIM-EA-FSCN-01:STAT4:DroppedArrays_RBV + +# % gui, FSCN1.stats.stat4, groupHeading, Array Settings +# % gui, FSCN1.stats.stat4, readback, Num Dimensions, S03SIM-EA-FSCN-01:STAT4:NDimensions_RBV +# % gui, FSCN1.stats.stat4, readback, Dim 0 Size, S03SIM-EA-FSCN-01:STAT4:ArraySize0_RBV +# % gui, FSCN1.stats.stat4, readback, Dim 1 Size, S03SIM-EA-FSCN-01:STAT4:ArraySize1_RBV +# % gui, FSCN1.stats.stat4, readback, Dim 2 Size, S03SIM-EA-FSCN-01:STAT4:ArraySize2_RBV +# % gui, FSCN1.stats.stat4, readback, Input Data Type, S03SIM-EA-FSCN-01:STAT4:DataType_RBV +# % gui, FSCN1.stats.stat4, readback, Colour Mode, S03SIM-EA-FSCN-01:STAT4:ColorMode_RBV +# % gui, FSCN1.stats.stat4, readback, Bayer Pattern, S03SIM-EA-FSCN-01:STAT4:BayerPattern_RBV +# % gui, FSCN1.stats.stat4, readback, Unique id, S03SIM-EA-FSCN-01:STAT4:UniqueId_RBV +# % gui, FSCN1.stats.stat4, readback, Timestamp, S03SIM-EA-FSCN-01:STAT4:TimeStamp_RBV + +# Output +# % gui, FSCN1.stats.stat4, groupHeading, Output +# % gui, FSCN1.stats.stat4, demand, Name, S03SIM-EA-FSCN-01:STAT4:Name +# % gui, FSCN1.stats.stat4, enum, Out data type, S03SIM-EA-FSCN-01:STAT4:DataTypeOut +# % gui, FSCN1.stats.stat4, readback, Out data type, S03SIM-EA-FSCN-01:STAT4:DataTypeOut_RBV +# % gui, FSCN1.stats.stat4, demand, Attributes file, S03SIM-EA-FSCN-01:STAT4:NDAttributesFile + +# Statistics +# % gui, FSCN1.stats.stat4, groupHeading, Statistics +# % gui, FSCN1.stats.stat4, enum, Compute Statistics, S03SIM-EA-FSCN-01:STAT4:ComputeStatistics +# % gui, FSCN1.stats.stat4, statusbits, Compute Statistics, S03SIM-EA-FSCN-01:STAT4:ComputeStatistics_RBV +# % gui, FSCN1.stats.stat4, demand, Background Width, S03SIM-EA-FSCN-01:STAT4:BgdWidth +# % gui, FSCN1.stats.stat4, readback, Background Width, S03SIM-EA-FSCN-01:STAT4:BgdWidth_RBV +# % gui, FSCN1.stats.stat4, readback, Minimum Value, S03SIM-EA-FSCN-01:STAT4:MinValue_RBV +# % gui, FSCN1.stats.stat4, readback, Minimum X, S03SIM-EA-FSCN-01:STAT4:MinX_RBV +# % gui, FSCN1.stats.stat4, readback, Minimum Y, S03SIM-EA-FSCN-01:STAT4:MinY_RBV +# % gui, FSCN1.stats.stat4, readback, Maximum Value, S03SIM-EA-FSCN-01:STAT4:MaxValue_RBV +# % gui, FSCN1.stats.stat4, readback, Maximum X, S03SIM-EA-FSCN-01:STAT4:MaxX_RBV +# % gui, FSCN1.stats.stat4, readback, Maximum Y, S03SIM-EA-FSCN-01:STAT4:MaxY_RBV +# % gui, FSCN1.stats.stat4, readback, Mean Value, S03SIM-EA-FSCN-01:STAT4:MeanValue_RBV +# % gui, FSCN1.stats.stat4, readback, Total, S03SIM-EA-FSCN-01:STAT4:Total_RBV +# % gui, FSCN1.stats.stat4, readback, Sigma, S03SIM-EA-FSCN-01:STAT4:Sigma_RBV +# % gui, FSCN1.stats.stat4, readback, Net, S03SIM-EA-FSCN-01:STAT4:Net_RBV +# Centroid +# % gui, FSCN1.stats.stat4, groupHeading, Centroid +# % gui, FSCN1.stats.stat4, enum, Compute Centroid, S03SIM-EA-FSCN-01:STAT4:ComputeCentroid +# % gui, FSCN1.stats.stat4, statusbits, Compute Centroid, S03SIM-EA-FSCN-01:STAT4:ComputeCentroid_RBV +# % gui, FSCN1.stats.stat4, demand, Threshold, S03SIM-EA-FSCN-01:STAT4:CentroidThreshold +# % gui, FSCN1.stats.stat4, readback, Threshold, S03SIM-EA-FSCN-01:STAT4:CentroidThreshold_RBV +# % gui, FSCN1.stats.stat4, readback, X, S03SIM-EA-FSCN-01:STAT4:CentroidX_RBV +# % gui, FSCN1.stats.stat4, readback, Sigma X, S03SIM-EA-FSCN-01:STAT4:SigmaX_RBV +# % gui, FSCN1.stats.stat4, readback, Y, S03SIM-EA-FSCN-01:STAT4:CentroidY_RBV +# % gui, FSCN1.stats.stat4, readback, Sigma Y, S03SIM-EA-FSCN-01:STAT4:SigmaY_RBV +# % gui, FSCN1.stats.stat4, readback, Sigma XY, S03SIM-EA-FSCN-01:STAT4:SigmaXY_RBV +# Histogram +# % gui, FSCN1.stats.stat4, groupHeading, Histogram +# % gui, FSCN1.stats.stat4, enum, Compute Histogram, S03SIM-EA-FSCN-01:STAT4:ComputeHistogram +# % gui, FSCN1.stats.stat4, statusbits, Compute Histogram, S03SIM-EA-FSCN-01:STAT4:ComputeHistogram_RBV +# % gui, FSCN1.stats.stat4, demand, Histogram Size, S03SIM-EA-FSCN-01:STAT4:HistSize +# % gui, FSCN1.stats.stat4, readback, Histogram Size, S03SIM-EA-FSCN-01:STAT4:HistSize_RBV +# % gui, FSCN1.stats.stat4, demand, Histogram Min, S03SIM-EA-FSCN-01:STAT4:HistMin +# % gui, FSCN1.stats.stat4, readback, Histogram Min, S03SIM-EA-FSCN-01:STAT4:HistMin_RBV +# % gui, FSCN1.stats.stat4, demand, Histogram Max, S03SIM-EA-FSCN-01:STAT4:HistMax +# % gui, FSCN1.stats.stat4, readback, Histogram Max, S03SIM-EA-FSCN-01:STAT4:HistMax_RBV +# % gui, FSCN1.stats.stat4, readback, Histogram Entropy, S03SIM-EA-FSCN-01:STAT4:HistEntropy_RBV +# Profiles +# % gui, FSCN1.stats.stat4, groupHeading, Profiles +# % gui, FSCN1.stats.stat4, enum, Compute Profiles, S03SIM-EA-FSCN-01:STAT4:ComputeProfiles +# % gui, FSCN1.stats.stat4, statusbits, Compute Profiles, S03SIM-EA-FSCN-01:STAT4:ComputeProfiles_RBV +# % gui, FSCN1.stats.stat4, demand, Cursor X, S03SIM-EA-FSCN-01:STAT4:CursorX +# % gui, FSCN1.stats.stat4, readback, Cursor X, S03SIM-EA-FSCN-01:STAT4:CursorX_RBV +# % gui, FSCN1.stats.stat4, demand, Cursor Y, S03SIM-EA-FSCN-01:STAT4:CursorY +# % gui, FSCN1.stats.stat4, readback, Cursor Y, S03SIM-EA-FSCN-01:STAT4:CursorY_RBV +# % gui, FSCN1.stats.stat4, readback, Size X, S03SIM-EA-FSCN-01:STAT4:ProfileSizeX_RBV +# % gui, FSCN1.stats.stat4, readback, Size Y, S03SIM-EA-FSCN-01:STAT4:ProfileSizeY_RBV +# Time series +# % gui, FSCN1.stats.stat4, groupHeading, Time Series +# % gui, FSCN1.stats.stat4, enum, Time Control, S03SIM-EA-FSCN-01:STAT4:TS:TSAcquire +# % gui, FSCN1.stats.stat4, statusbits, Acquiring, S03SIM-EA-FSCN-01:STAT4:TS:TSAcquiring +# % gui, FSCN1.stats.stat4, readback, Current Point, S03SIM-EA-FSCN-01:STAT4:TS:TSCurrentPoint +# % gui, FSCN1.stats.stat4, demand, Number of Points, S03SIM-EA-FSCN-01:STAT4:TS:TSNumPoints +# % gui, FSCN1.stats.stat4, enum, Update, S03SIM-EA-FSCN-01:STAT4:TS:TSRead.SCAN +# Memory +# % gui, FSCN1.stats.stat4, groupHeading, Memory +# % gui, FSCN1.stats.stat4, readback, Max memory, S03SIM-EA-FSCN-01:STAT4:PoolMaxMem +# % gui, FSCN1.stats.stat4, readback, Max buffers, S03SIM-EA-FSCN-01:STAT4:PoolMaxBuffers +# % gui, FSCN1.stats.stat4, readback, Used memory, S03SIM-EA-FSCN-01:STAT4:PoolUsedMem +# % gui, FSCN1.stats.stat4, readback, Allocated buffers, S03SIM-EA-FSCN-01:STAT4:PoolAllocBuffers +# % gui, FSCN1.stats.stat4, readback, Free buffers, S03SIM-EA-FSCN-01:STAT4:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT4:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT4:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT4:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT4:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT4:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT4:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT4:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT4:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:STAT4:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT4:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT4:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT4:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:STAT4:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT4:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT4:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:STAT4:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:STAT4:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:STAT4:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:STAT4:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:STAT4:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:STAT4:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:STAT4:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:STAT4:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:STAT4:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:STAT4:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:STAT4:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:STAT4:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:STAT4:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:STAT4:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT4:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:STAT4:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:STAT4:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT4:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT4:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:STAT4:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:STAT4:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:STAT4:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT4:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:STAT4:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:STAT4:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT4:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:STAT4:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.rois.roi1") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT4:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT4:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT4:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT4:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:STAT4:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT4:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT4:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:STAT4:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:STAT4:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT4:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:STAT4:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT4:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT4:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT4:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:STAT4:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT4:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT4:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:STAT4:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT4:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:STAT4:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:STAT4:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT4:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:STAT4:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:STAT4:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT4:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:STAT4:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:STAT4:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:STAT4:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT4:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:STAT4:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:STAT4:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT4:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT4:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:STAT4:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT4:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT4:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT4:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:STAT4:AsynIO") +{ + field(PORT, "FSCN1.stats.stat4") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records contain the basic statistics # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT4:ComputeStatistics") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)COMPUTE_STATISTICS") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT4:ComputeStatistics_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)COMPUTE_STATISTICS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT4:BgdWidth") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)BGD_WIDTH") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:BgdWidth_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)BGD_WIDTH") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:MinValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)MIN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:MinValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)MIN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:MaxValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)MAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:MaxValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)MAX_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:MeanValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)MEAN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:MeanValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)MEAN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:SigmaValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)SIGMA_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:Sigma_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)SIGMA_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:Total") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:Total_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:Net") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)NET") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:Net_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)NET") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:MinX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)MIN_X") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:MinX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:MinY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)MIN_Y") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:MinY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:MaxX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)MAX_X") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:MaxX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)MAX_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:MaxY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)MAX_Y") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:MaxY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)MAX_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether centroid statistics are computed # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT4:ComputeCentroid") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)COMPUTE_CENTROID") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT4:ComputeCentroid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)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, "S03SIM-EA-FSCN-01:STAT4:CentroidThreshold") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)CENTROID_THRESHOLD") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:CentroidThreshold_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)CENTROID_THRESHOLD") + field(VAL, "0") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:CentroidTotal") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)CENTROID_TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:CentroidTotal_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)CENTROID_TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:CentroidX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)CENTROIDX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:CentroidX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)CENTROIDX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:CentroidY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)CENTROIDY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:CentroidY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)CENTROIDY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:SigmaX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)SIGMAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:SigmaX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)SIGMAX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:SigmaY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)SIGMAY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:SigmaY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)SIGMAY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:SigmaXY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)SIGMAXY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:SigmaXY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)SIGMAXY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:SkewX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)SKEWX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:SkewX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)SKEWX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:SkewY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)SKEWY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:SkewY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)SKEWY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:KurtosisX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)KURTOSISX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:KurtosisX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)KURTOSISX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:KurtosisY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)KURTOSISY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:KurtosisY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)KURTOSISY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:Eccentricity") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)ECCENTRICITY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:Eccentricity_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)ECCENTRICITY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:Orientation") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)ORIENTATION_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:Orientation_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)ORIENTATION_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control time series # +################################################################### +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSMinValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,0,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSMinX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,1,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSMinY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,2,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSMaxValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,3,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSMaxX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,4,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSMaxY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,5,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSMeanValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,6,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSSigma") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,7,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,8,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSNet") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,9,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSCentroidTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,10,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSCentroidX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,11,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSCentroidY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,12,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSSigmaX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,13,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSSigmaY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,14,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSSigmaXY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,15,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSSkewX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,16,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSSkewY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,17,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSKurtosisX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,18,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSKurtosisY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,19,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSEccentricity") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,20,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSOrientation") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,21,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSTimestamp") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4_TS,22,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control profiles # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT4:ComputeProfiles") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)COMPUTE_PROFILES") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT4:ComputeProfiles_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)COMPUTE_PROFILES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ProfileSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)PROFILE_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:ProfileSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)PROFILE_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT4:CursorX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)CURSOR_X") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:CursorX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)CURSOR_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT4:CursorY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)CURSOR_Y") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:CursorY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)CURSOR_Y") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:CursorVal") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)CURSOR_VAL") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:ProfileAverageX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)PROFILE_AVERAGE_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:ProfileAverageY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)PROFILE_AVERAGE_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:ProfileThresholdX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)PROFILE_THRESHOLD_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:ProfileThresholdY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)PROFILE_THRESHOLD_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:ProfileCentroidX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)PROFILE_CENTROID_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:ProfileCentroidY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)PROFILE_CENTROID_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:ProfileCursorX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)PROFILE_CURSOR_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:ProfileCursorY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)PROFILE_CURSOR_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These are used to define the histogram # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT4:ComputeHistogram") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)COMPUTE_HISTOGRAM") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT4:ComputeHistogram_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)COMPUTE_HISTOGRAM") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT4:HistSize") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)HIST_SIZE") + field(VAL, "256") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:HistSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)HIST_SIZE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:HistMin") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)HIST_MIN") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:HistMin_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)HIST_MIN") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:HistMax") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)HIST_MAX") + field(VAL, "255") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:HistMax_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)HIST_MAX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT4:HistBelow") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)HIST_BELOW") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:HistBelow_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)HIST_BELOW") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT4:HistAbove") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)HIST_ABOVE") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:HistAbove_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)HIST_ABOVE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT4:HistEntropy") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat4,0,1)HIST_ENTROPY") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT4:HistEntropy_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)HIST_ENTROPY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:Histogram_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)HIST_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT4:HistogramX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat4,0,1)HIST_X_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + 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, "S03SIM-EA-FSCN-01:STAT4:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:ProfileSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:STAT4:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:STAT4:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:STAT4:CursorX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT4:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT4:ProfileSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:STAT4:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:STAT4:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:STAT4:CursorY.HOPR NPP") +} + +################################################################### +# These records reset the statistics # +################################################################### +record(sseq, "S03SIM-EA-FSCN-01:STAT4:Reset") +{ + field(LNK1, "S03SIM-EA-FSCN-01:STAT4:MinValue PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:STAT4:MaxValue PP MS") + field(LNK3, "S03SIM-EA-FSCN-01:STAT4:MeanValue PP MS") + field(LNK4, "S03SIM-EA-FSCN-01:STAT4:SigmaValue PP MS") + field(LNK5, "S03SIM-EA-FSCN-01:STAT4:Total PP MS") + field(LNK6, "S03SIM-EA-FSCN-01:STAT4:Net PP MS") + field(LNK7, "S03SIM-EA-FSCN-01:STAT4:MinX PP MS") + field(LNK8, "S03SIM-EA-FSCN-01:STAT4:MinY PP MS") + field(LNK9, "S03SIM-EA-FSCN-01:STAT4:MaxX PP MS") + field(LNKA, "S03SIM-EA-FSCN-01:STAT4:MaxY PP MS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Reset1") +} + +record(sseq, "S03SIM-EA-FSCN-01:STAT4:Reset1") +{ + field(LNK1, "S03SIM-EA-FSCN-01:STAT4:CentroidX PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:STAT4:CentroidY PP MS") + field(LNK3, "S03SIM-EA-FSCN-01:STAT4:SigmaX PP MS") + field(LNK4, "S03SIM-EA-FSCN-01:STAT4:SigmaY PP MS") + field(LNK5, "S03SIM-EA-FSCN-01:STAT4:SigmaXY PP MS") + field(LNK6, "S03SIM-EA-FSCN-01:STAT4:CentroidTotal PP MS") + field(LNK7, "S03SIM-EA-FSCN-01:STAT4:SkewX PP MS") + field(LNK8, "S03SIM-EA-FSCN-01:STAT4:SkewY PP MS") + field(LNK9, "S03SIM-EA-FSCN-01:STAT4:KurtosisX PP MS") + field(LNKA, "S03SIM-EA-FSCN-01:STAT4:KurtosisY PP MS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Reset2") +} + +record(sseq, "S03SIM-EA-FSCN-01:STAT4:Reset2") +{ + field(LNK1, "S03SIM-EA-FSCN-01:STAT4:Eccentricity PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:STAT4:Orientation PP MS") + field(LNK3, "S03SIM-EA-FSCN-01:STAT4:HistBelow PP MS") + field(LNK4, "S03SIM-EA-FSCN-01:STAT4:HistAbove PP MS") + field(LNK5, "S03SIM-EA-FSCN-01:STAT4:HistEntropy PP MS") +} + +#=================================================================# +# Template file: NDStats.template + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, NCHANS, Number of channels +# % macro, XSIZE, x size +# % macro, YSIZE, y size +# % macro, HIST_SIZE, hist size +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Timeout +# % macro, TS_PORT, TS port + +# This associates the template with an edm screen +# % gui, FSCN1.stats.stat5, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-01,R=:STAT5: + +# This associates a BOY screen with the template +# % gui, FSCN1.stats.stat5, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-01, R=:STAT5:, DESC=Statistics +# % gui, FSCN1.stats.stat5, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:STAT5:, DESC=Statistics +# % gui, FSCN1.stats.stat5, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-01, R=:STAT5:, DESC=Statistics + + +# % gui, FSCN1.stats.stat5, groupHeading, Info +# % gui, FSCN1.stats.stat5, readback, Port name, S03SIM-EA-FSCN-01:STAT5:PortName_RBV +# % gui, FSCN1.stats.stat5, readback, Plugin type, S03SIM-EA-FSCN-01:STAT5:PluginType_RBV +# Input +# % gui, FSCN1.stats.stat5, demandString, Input, S03SIM-EA-FSCN-01:STAT5:NDArrayPort +# % gui, FSCN1.stats.stat5, readback, Input, S03SIM-EA-FSCN-01:STAT5:NDArrayPort_RBV + +# % gui, FSCN1.stats.stat5, groupHeading, Callback +# % gui, FSCN1.stats.stat5, enum, Callbacks, S03SIM-EA-FSCN-01:STAT5:EnableCallbacks +# % gui, FSCN1.stats.stat5, statusbits, Callbacks, S03SIM-EA-FSCN-01:STAT5:EnableCallbacks_RBV +# % gui, FSCN1.stats.stat5, demand, Min Callback Time, S03SIM-EA-FSCN-01:STAT5:MinCallbackTime +# % gui, FSCN1.stats.stat5, readback, Min Callback Time, S03SIM-EA-FSCN-01:STAT5:MinCallbackTime_RBV +# % gui, FSCN1.stats.stat5, enum, Block Callbacks, S03SIM-EA-FSCN-01:STAT5:BlockingCallbacks +# % gui, FSCN1.stats.stat5, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:STAT5:BlockingCallbacks_RBV + +# % gui, FSCN1.stats.stat5, groupHeading, Counters +# % gui, FSCN1.stats.stat5, demand, Array Counter, S03SIM-EA-FSCN-01:STAT5:ArrayCounter +# % gui, FSCN1.stats.stat5, readback, Array Counter, S03SIM-EA-FSCN-01:STAT5:ArrayCounter_RBV +# % gui, FSCN1.stats.stat5, readback, Array Rate (fps), S03SIM-EA-FSCN-01:STAT5:ArrayRate_RBV +# % gui, FSCN1.stats.stat5, readback, Queue Use, S03SIM-EA-FSCN-01:STAT5:QueueUse +# % gui, FSCN1.stats.stat5, readback, Queue Size, S03SIM-EA-FSCN-01:STAT5:QueueSize +# % gui, FSCN1.stats.stat5, demand, Dropped Arrays, S03SIM-EA-FSCN-01:STAT5:DroppedArrays +# % gui, FSCN1.stats.stat5, readback, Dropped Arrays, S03SIM-EA-FSCN-01:STAT5:DroppedArrays_RBV + +# % gui, FSCN1.stats.stat5, groupHeading, Array Settings +# % gui, FSCN1.stats.stat5, readback, Num Dimensions, S03SIM-EA-FSCN-01:STAT5:NDimensions_RBV +# % gui, FSCN1.stats.stat5, readback, Dim 0 Size, S03SIM-EA-FSCN-01:STAT5:ArraySize0_RBV +# % gui, FSCN1.stats.stat5, readback, Dim 1 Size, S03SIM-EA-FSCN-01:STAT5:ArraySize1_RBV +# % gui, FSCN1.stats.stat5, readback, Dim 2 Size, S03SIM-EA-FSCN-01:STAT5:ArraySize2_RBV +# % gui, FSCN1.stats.stat5, readback, Input Data Type, S03SIM-EA-FSCN-01:STAT5:DataType_RBV +# % gui, FSCN1.stats.stat5, readback, Colour Mode, S03SIM-EA-FSCN-01:STAT5:ColorMode_RBV +# % gui, FSCN1.stats.stat5, readback, Bayer Pattern, S03SIM-EA-FSCN-01:STAT5:BayerPattern_RBV +# % gui, FSCN1.stats.stat5, readback, Unique id, S03SIM-EA-FSCN-01:STAT5:UniqueId_RBV +# % gui, FSCN1.stats.stat5, readback, Timestamp, S03SIM-EA-FSCN-01:STAT5:TimeStamp_RBV + +# Output +# % gui, FSCN1.stats.stat5, groupHeading, Output +# % gui, FSCN1.stats.stat5, demand, Name, S03SIM-EA-FSCN-01:STAT5:Name +# % gui, FSCN1.stats.stat5, enum, Out data type, S03SIM-EA-FSCN-01:STAT5:DataTypeOut +# % gui, FSCN1.stats.stat5, readback, Out data type, S03SIM-EA-FSCN-01:STAT5:DataTypeOut_RBV +# % gui, FSCN1.stats.stat5, demand, Attributes file, S03SIM-EA-FSCN-01:STAT5:NDAttributesFile + +# Statistics +# % gui, FSCN1.stats.stat5, groupHeading, Statistics +# % gui, FSCN1.stats.stat5, enum, Compute Statistics, S03SIM-EA-FSCN-01:STAT5:ComputeStatistics +# % gui, FSCN1.stats.stat5, statusbits, Compute Statistics, S03SIM-EA-FSCN-01:STAT5:ComputeStatistics_RBV +# % gui, FSCN1.stats.stat5, demand, Background Width, S03SIM-EA-FSCN-01:STAT5:BgdWidth +# % gui, FSCN1.stats.stat5, readback, Background Width, S03SIM-EA-FSCN-01:STAT5:BgdWidth_RBV +# % gui, FSCN1.stats.stat5, readback, Minimum Value, S03SIM-EA-FSCN-01:STAT5:MinValue_RBV +# % gui, FSCN1.stats.stat5, readback, Minimum X, S03SIM-EA-FSCN-01:STAT5:MinX_RBV +# % gui, FSCN1.stats.stat5, readback, Minimum Y, S03SIM-EA-FSCN-01:STAT5:MinY_RBV +# % gui, FSCN1.stats.stat5, readback, Maximum Value, S03SIM-EA-FSCN-01:STAT5:MaxValue_RBV +# % gui, FSCN1.stats.stat5, readback, Maximum X, S03SIM-EA-FSCN-01:STAT5:MaxX_RBV +# % gui, FSCN1.stats.stat5, readback, Maximum Y, S03SIM-EA-FSCN-01:STAT5:MaxY_RBV +# % gui, FSCN1.stats.stat5, readback, Mean Value, S03SIM-EA-FSCN-01:STAT5:MeanValue_RBV +# % gui, FSCN1.stats.stat5, readback, Total, S03SIM-EA-FSCN-01:STAT5:Total_RBV +# % gui, FSCN1.stats.stat5, readback, Sigma, S03SIM-EA-FSCN-01:STAT5:Sigma_RBV +# % gui, FSCN1.stats.stat5, readback, Net, S03SIM-EA-FSCN-01:STAT5:Net_RBV +# Centroid +# % gui, FSCN1.stats.stat5, groupHeading, Centroid +# % gui, FSCN1.stats.stat5, enum, Compute Centroid, S03SIM-EA-FSCN-01:STAT5:ComputeCentroid +# % gui, FSCN1.stats.stat5, statusbits, Compute Centroid, S03SIM-EA-FSCN-01:STAT5:ComputeCentroid_RBV +# % gui, FSCN1.stats.stat5, demand, Threshold, S03SIM-EA-FSCN-01:STAT5:CentroidThreshold +# % gui, FSCN1.stats.stat5, readback, Threshold, S03SIM-EA-FSCN-01:STAT5:CentroidThreshold_RBV +# % gui, FSCN1.stats.stat5, readback, X, S03SIM-EA-FSCN-01:STAT5:CentroidX_RBV +# % gui, FSCN1.stats.stat5, readback, Sigma X, S03SIM-EA-FSCN-01:STAT5:SigmaX_RBV +# % gui, FSCN1.stats.stat5, readback, Y, S03SIM-EA-FSCN-01:STAT5:CentroidY_RBV +# % gui, FSCN1.stats.stat5, readback, Sigma Y, S03SIM-EA-FSCN-01:STAT5:SigmaY_RBV +# % gui, FSCN1.stats.stat5, readback, Sigma XY, S03SIM-EA-FSCN-01:STAT5:SigmaXY_RBV +# Histogram +# % gui, FSCN1.stats.stat5, groupHeading, Histogram +# % gui, FSCN1.stats.stat5, enum, Compute Histogram, S03SIM-EA-FSCN-01:STAT5:ComputeHistogram +# % gui, FSCN1.stats.stat5, statusbits, Compute Histogram, S03SIM-EA-FSCN-01:STAT5:ComputeHistogram_RBV +# % gui, FSCN1.stats.stat5, demand, Histogram Size, S03SIM-EA-FSCN-01:STAT5:HistSize +# % gui, FSCN1.stats.stat5, readback, Histogram Size, S03SIM-EA-FSCN-01:STAT5:HistSize_RBV +# % gui, FSCN1.stats.stat5, demand, Histogram Min, S03SIM-EA-FSCN-01:STAT5:HistMin +# % gui, FSCN1.stats.stat5, readback, Histogram Min, S03SIM-EA-FSCN-01:STAT5:HistMin_RBV +# % gui, FSCN1.stats.stat5, demand, Histogram Max, S03SIM-EA-FSCN-01:STAT5:HistMax +# % gui, FSCN1.stats.stat5, readback, Histogram Max, S03SIM-EA-FSCN-01:STAT5:HistMax_RBV +# % gui, FSCN1.stats.stat5, readback, Histogram Entropy, S03SIM-EA-FSCN-01:STAT5:HistEntropy_RBV +# Profiles +# % gui, FSCN1.stats.stat5, groupHeading, Profiles +# % gui, FSCN1.stats.stat5, enum, Compute Profiles, S03SIM-EA-FSCN-01:STAT5:ComputeProfiles +# % gui, FSCN1.stats.stat5, statusbits, Compute Profiles, S03SIM-EA-FSCN-01:STAT5:ComputeProfiles_RBV +# % gui, FSCN1.stats.stat5, demand, Cursor X, S03SIM-EA-FSCN-01:STAT5:CursorX +# % gui, FSCN1.stats.stat5, readback, Cursor X, S03SIM-EA-FSCN-01:STAT5:CursorX_RBV +# % gui, FSCN1.stats.stat5, demand, Cursor Y, S03SIM-EA-FSCN-01:STAT5:CursorY +# % gui, FSCN1.stats.stat5, readback, Cursor Y, S03SIM-EA-FSCN-01:STAT5:CursorY_RBV +# % gui, FSCN1.stats.stat5, readback, Size X, S03SIM-EA-FSCN-01:STAT5:ProfileSizeX_RBV +# % gui, FSCN1.stats.stat5, readback, Size Y, S03SIM-EA-FSCN-01:STAT5:ProfileSizeY_RBV +# Time series +# % gui, FSCN1.stats.stat5, groupHeading, Time Series +# % gui, FSCN1.stats.stat5, enum, Time Control, S03SIM-EA-FSCN-01:STAT5:TS:TSAcquire +# % gui, FSCN1.stats.stat5, statusbits, Acquiring, S03SIM-EA-FSCN-01:STAT5:TS:TSAcquiring +# % gui, FSCN1.stats.stat5, readback, Current Point, S03SIM-EA-FSCN-01:STAT5:TS:TSCurrentPoint +# % gui, FSCN1.stats.stat5, demand, Number of Points, S03SIM-EA-FSCN-01:STAT5:TS:TSNumPoints +# % gui, FSCN1.stats.stat5, enum, Update, S03SIM-EA-FSCN-01:STAT5:TS:TSRead.SCAN +# Memory +# % gui, FSCN1.stats.stat5, groupHeading, Memory +# % gui, FSCN1.stats.stat5, readback, Max memory, S03SIM-EA-FSCN-01:STAT5:PoolMaxMem +# % gui, FSCN1.stats.stat5, readback, Max buffers, S03SIM-EA-FSCN-01:STAT5:PoolMaxBuffers +# % gui, FSCN1.stats.stat5, readback, Used memory, S03SIM-EA-FSCN-01:STAT5:PoolUsedMem +# % gui, FSCN1.stats.stat5, readback, Allocated buffers, S03SIM-EA-FSCN-01:STAT5:PoolAllocBuffers +# % gui, FSCN1.stats.stat5, readback, Free buffers, S03SIM-EA-FSCN-01:STAT5:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT5:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT5:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT5:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT5:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT5:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT5:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT5:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT5:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:STAT5:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT5:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT5:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT5:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:STAT5:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT5:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT5:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:STAT5:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:STAT5:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:STAT5:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:STAT5:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:STAT5:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:STAT5:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:STAT5:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:STAT5:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:STAT5:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:STAT5:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:STAT5:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:STAT5:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:STAT5:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:STAT5:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT5:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:STAT5:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:STAT5:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT5:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT5:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:STAT5:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:STAT5:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:STAT5:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT5:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:STAT5:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:STAT5:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT5:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:STAT5:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.rois.roi1") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT5:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT5:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT5:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT5:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:STAT5:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT5:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT5:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:STAT5:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:STAT5:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT5:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:STAT5:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT5:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT5:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT5:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:STAT5:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT5:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT5:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:STAT5:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT5:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:STAT5:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:STAT5:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT5:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:STAT5:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:STAT5:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT5:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:STAT5:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:STAT5:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:STAT5:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT5:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:STAT5:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:STAT5:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT5:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT5:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:STAT5:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT5:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT5:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT5:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:STAT5:AsynIO") +{ + field(PORT, "FSCN1.stats.stat5") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records contain the basic statistics # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT5:ComputeStatistics") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)COMPUTE_STATISTICS") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT5:ComputeStatistics_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)COMPUTE_STATISTICS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT5:BgdWidth") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)BGD_WIDTH") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:BgdWidth_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)BGD_WIDTH") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:MinValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)MIN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:MinValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)MIN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:MaxValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)MAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:MaxValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)MAX_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:MeanValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)MEAN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:MeanValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)MEAN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:SigmaValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)SIGMA_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:Sigma_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)SIGMA_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:Total") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:Total_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:Net") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)NET") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:Net_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)NET") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:MinX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)MIN_X") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:MinX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:MinY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)MIN_Y") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:MinY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:MaxX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)MAX_X") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:MaxX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)MAX_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:MaxY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)MAX_Y") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:MaxY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)MAX_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether centroid statistics are computed # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT5:ComputeCentroid") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)COMPUTE_CENTROID") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT5:ComputeCentroid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)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, "S03SIM-EA-FSCN-01:STAT5:CentroidThreshold") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)CENTROID_THRESHOLD") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:CentroidThreshold_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)CENTROID_THRESHOLD") + field(VAL, "0") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:CentroidTotal") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)CENTROID_TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:CentroidTotal_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)CENTROID_TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:CentroidX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)CENTROIDX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:CentroidX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)CENTROIDX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:CentroidY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)CENTROIDY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:CentroidY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)CENTROIDY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:SigmaX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)SIGMAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:SigmaX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)SIGMAX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:SigmaY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)SIGMAY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:SigmaY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)SIGMAY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:SigmaXY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)SIGMAXY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:SigmaXY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)SIGMAXY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:SkewX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)SKEWX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:SkewX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)SKEWX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:SkewY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)SKEWY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:SkewY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)SKEWY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:KurtosisX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)KURTOSISX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:KurtosisX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)KURTOSISX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:KurtosisY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)KURTOSISY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:KurtosisY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)KURTOSISY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:Eccentricity") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)ECCENTRICITY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:Eccentricity_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)ECCENTRICITY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:Orientation") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)ORIENTATION_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:Orientation_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)ORIENTATION_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control time series # +################################################################### +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSMinValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,0,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSMinX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,1,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSMinY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,2,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSMaxValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,3,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSMaxX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,4,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSMaxY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,5,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSMeanValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,6,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSSigma") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,7,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,8,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSNet") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,9,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSCentroidTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,10,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSCentroidX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,11,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSCentroidY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,12,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSSigmaX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,13,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSSigmaY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,14,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSSigmaXY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,15,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSSkewX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,16,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSSkewY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,17,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSKurtosisX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,18,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSKurtosisY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,19,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSEccentricity") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,20,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSOrientation") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,21,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSTimestamp") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5_TS,22,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control profiles # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT5:ComputeProfiles") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)COMPUTE_PROFILES") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT5:ComputeProfiles_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)COMPUTE_PROFILES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ProfileSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)PROFILE_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:ProfileSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)PROFILE_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT5:CursorX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)CURSOR_X") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:CursorX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)CURSOR_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT5:CursorY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)CURSOR_Y") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:CursorY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)CURSOR_Y") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:CursorVal") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)CURSOR_VAL") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:ProfileAverageX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)PROFILE_AVERAGE_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:ProfileAverageY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)PROFILE_AVERAGE_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:ProfileThresholdX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)PROFILE_THRESHOLD_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:ProfileThresholdY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)PROFILE_THRESHOLD_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:ProfileCentroidX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)PROFILE_CENTROID_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:ProfileCentroidY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)PROFILE_CENTROID_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:ProfileCursorX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)PROFILE_CURSOR_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:ProfileCursorY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)PROFILE_CURSOR_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These are used to define the histogram # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT5:ComputeHistogram") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)COMPUTE_HISTOGRAM") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT5:ComputeHistogram_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)COMPUTE_HISTOGRAM") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT5:HistSize") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)HIST_SIZE") + field(VAL, "256") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:HistSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)HIST_SIZE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:HistMin") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)HIST_MIN") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:HistMin_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)HIST_MIN") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:HistMax") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)HIST_MAX") + field(VAL, "255") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:HistMax_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)HIST_MAX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT5:HistBelow") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)HIST_BELOW") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:HistBelow_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)HIST_BELOW") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT5:HistAbove") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)HIST_ABOVE") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:HistAbove_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)HIST_ABOVE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT5:HistEntropy") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat5,0,1)HIST_ENTROPY") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT5:HistEntropy_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)HIST_ENTROPY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:Histogram_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)HIST_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT5:HistogramX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat5,0,1)HIST_X_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + 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, "S03SIM-EA-FSCN-01:STAT5:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:ProfileSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:STAT5:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:STAT5:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:STAT5:CursorX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT5:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT5:ProfileSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:STAT5:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:STAT5:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:STAT5:CursorY.HOPR NPP") +} + +################################################################### +# These records reset the statistics # +################################################################### +record(sseq, "S03SIM-EA-FSCN-01:STAT5:Reset") +{ + field(LNK1, "S03SIM-EA-FSCN-01:STAT5:MinValue PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:STAT5:MaxValue PP MS") + field(LNK3, "S03SIM-EA-FSCN-01:STAT5:MeanValue PP MS") + field(LNK4, "S03SIM-EA-FSCN-01:STAT5:SigmaValue PP MS") + field(LNK5, "S03SIM-EA-FSCN-01:STAT5:Total PP MS") + field(LNK6, "S03SIM-EA-FSCN-01:STAT5:Net PP MS") + field(LNK7, "S03SIM-EA-FSCN-01:STAT5:MinX PP MS") + field(LNK8, "S03SIM-EA-FSCN-01:STAT5:MinY PP MS") + field(LNK9, "S03SIM-EA-FSCN-01:STAT5:MaxX PP MS") + field(LNKA, "S03SIM-EA-FSCN-01:STAT5:MaxY PP MS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Reset1") +} + +record(sseq, "S03SIM-EA-FSCN-01:STAT5:Reset1") +{ + field(LNK1, "S03SIM-EA-FSCN-01:STAT5:CentroidX PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:STAT5:CentroidY PP MS") + field(LNK3, "S03SIM-EA-FSCN-01:STAT5:SigmaX PP MS") + field(LNK4, "S03SIM-EA-FSCN-01:STAT5:SigmaY PP MS") + field(LNK5, "S03SIM-EA-FSCN-01:STAT5:SigmaXY PP MS") + field(LNK6, "S03SIM-EA-FSCN-01:STAT5:CentroidTotal PP MS") + field(LNK7, "S03SIM-EA-FSCN-01:STAT5:SkewX PP MS") + field(LNK8, "S03SIM-EA-FSCN-01:STAT5:SkewY PP MS") + field(LNK9, "S03SIM-EA-FSCN-01:STAT5:KurtosisX PP MS") + field(LNKA, "S03SIM-EA-FSCN-01:STAT5:KurtosisY PP MS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Reset2") +} + +record(sseq, "S03SIM-EA-FSCN-01:STAT5:Reset2") +{ + field(LNK1, "S03SIM-EA-FSCN-01:STAT5:Eccentricity PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:STAT5:Orientation PP MS") + field(LNK3, "S03SIM-EA-FSCN-01:STAT5:HistBelow PP MS") + field(LNK4, "S03SIM-EA-FSCN-01:STAT5:HistAbove PP MS") + field(LNK5, "S03SIM-EA-FSCN-01:STAT5:HistEntropy PP MS") +} + +#=================================================================# +# Template file: NDStats.template + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, NCHANS, Number of channels +# % macro, XSIZE, x size +# % macro, YSIZE, y size +# % macro, HIST_SIZE, hist size +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Timeout +# % macro, TS_PORT, TS port + +# This associates the template with an edm screen +# % gui, FSCN1.stats.stat6, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-01,R=:STAT6: + +# This associates a BOY screen with the template +# % gui, FSCN1.stats.stat6, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-01, R=:STAT6:, DESC=Statistics +# % gui, FSCN1.stats.stat6, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:STAT6:, DESC=Statistics +# % gui, FSCN1.stats.stat6, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-01, R=:STAT6:, DESC=Statistics + + +# % gui, FSCN1.stats.stat6, groupHeading, Info +# % gui, FSCN1.stats.stat6, readback, Port name, S03SIM-EA-FSCN-01:STAT6:PortName_RBV +# % gui, FSCN1.stats.stat6, readback, Plugin type, S03SIM-EA-FSCN-01:STAT6:PluginType_RBV +# Input +# % gui, FSCN1.stats.stat6, demandString, Input, S03SIM-EA-FSCN-01:STAT6:NDArrayPort +# % gui, FSCN1.stats.stat6, readback, Input, S03SIM-EA-FSCN-01:STAT6:NDArrayPort_RBV + +# % gui, FSCN1.stats.stat6, groupHeading, Callback +# % gui, FSCN1.stats.stat6, enum, Callbacks, S03SIM-EA-FSCN-01:STAT6:EnableCallbacks +# % gui, FSCN1.stats.stat6, statusbits, Callbacks, S03SIM-EA-FSCN-01:STAT6:EnableCallbacks_RBV +# % gui, FSCN1.stats.stat6, demand, Min Callback Time, S03SIM-EA-FSCN-01:STAT6:MinCallbackTime +# % gui, FSCN1.stats.stat6, readback, Min Callback Time, S03SIM-EA-FSCN-01:STAT6:MinCallbackTime_RBV +# % gui, FSCN1.stats.stat6, enum, Block Callbacks, S03SIM-EA-FSCN-01:STAT6:BlockingCallbacks +# % gui, FSCN1.stats.stat6, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:STAT6:BlockingCallbacks_RBV + +# % gui, FSCN1.stats.stat6, groupHeading, Counters +# % gui, FSCN1.stats.stat6, demand, Array Counter, S03SIM-EA-FSCN-01:STAT6:ArrayCounter +# % gui, FSCN1.stats.stat6, readback, Array Counter, S03SIM-EA-FSCN-01:STAT6:ArrayCounter_RBV +# % gui, FSCN1.stats.stat6, readback, Array Rate (fps), S03SIM-EA-FSCN-01:STAT6:ArrayRate_RBV +# % gui, FSCN1.stats.stat6, readback, Queue Use, S03SIM-EA-FSCN-01:STAT6:QueueUse +# % gui, FSCN1.stats.stat6, readback, Queue Size, S03SIM-EA-FSCN-01:STAT6:QueueSize +# % gui, FSCN1.stats.stat6, demand, Dropped Arrays, S03SIM-EA-FSCN-01:STAT6:DroppedArrays +# % gui, FSCN1.stats.stat6, readback, Dropped Arrays, S03SIM-EA-FSCN-01:STAT6:DroppedArrays_RBV + +# % gui, FSCN1.stats.stat6, groupHeading, Array Settings +# % gui, FSCN1.stats.stat6, readback, Num Dimensions, S03SIM-EA-FSCN-01:STAT6:NDimensions_RBV +# % gui, FSCN1.stats.stat6, readback, Dim 0 Size, S03SIM-EA-FSCN-01:STAT6:ArraySize0_RBV +# % gui, FSCN1.stats.stat6, readback, Dim 1 Size, S03SIM-EA-FSCN-01:STAT6:ArraySize1_RBV +# % gui, FSCN1.stats.stat6, readback, Dim 2 Size, S03SIM-EA-FSCN-01:STAT6:ArraySize2_RBV +# % gui, FSCN1.stats.stat6, readback, Input Data Type, S03SIM-EA-FSCN-01:STAT6:DataType_RBV +# % gui, FSCN1.stats.stat6, readback, Colour Mode, S03SIM-EA-FSCN-01:STAT6:ColorMode_RBV +# % gui, FSCN1.stats.stat6, readback, Bayer Pattern, S03SIM-EA-FSCN-01:STAT6:BayerPattern_RBV +# % gui, FSCN1.stats.stat6, readback, Unique id, S03SIM-EA-FSCN-01:STAT6:UniqueId_RBV +# % gui, FSCN1.stats.stat6, readback, Timestamp, S03SIM-EA-FSCN-01:STAT6:TimeStamp_RBV + +# Output +# % gui, FSCN1.stats.stat6, groupHeading, Output +# % gui, FSCN1.stats.stat6, demand, Name, S03SIM-EA-FSCN-01:STAT6:Name +# % gui, FSCN1.stats.stat6, enum, Out data type, S03SIM-EA-FSCN-01:STAT6:DataTypeOut +# % gui, FSCN1.stats.stat6, readback, Out data type, S03SIM-EA-FSCN-01:STAT6:DataTypeOut_RBV +# % gui, FSCN1.stats.stat6, demand, Attributes file, S03SIM-EA-FSCN-01:STAT6:NDAttributesFile + +# Statistics +# % gui, FSCN1.stats.stat6, groupHeading, Statistics +# % gui, FSCN1.stats.stat6, enum, Compute Statistics, S03SIM-EA-FSCN-01:STAT6:ComputeStatistics +# % gui, FSCN1.stats.stat6, statusbits, Compute Statistics, S03SIM-EA-FSCN-01:STAT6:ComputeStatistics_RBV +# % gui, FSCN1.stats.stat6, demand, Background Width, S03SIM-EA-FSCN-01:STAT6:BgdWidth +# % gui, FSCN1.stats.stat6, readback, Background Width, S03SIM-EA-FSCN-01:STAT6:BgdWidth_RBV +# % gui, FSCN1.stats.stat6, readback, Minimum Value, S03SIM-EA-FSCN-01:STAT6:MinValue_RBV +# % gui, FSCN1.stats.stat6, readback, Minimum X, S03SIM-EA-FSCN-01:STAT6:MinX_RBV +# % gui, FSCN1.stats.stat6, readback, Minimum Y, S03SIM-EA-FSCN-01:STAT6:MinY_RBV +# % gui, FSCN1.stats.stat6, readback, Maximum Value, S03SIM-EA-FSCN-01:STAT6:MaxValue_RBV +# % gui, FSCN1.stats.stat6, readback, Maximum X, S03SIM-EA-FSCN-01:STAT6:MaxX_RBV +# % gui, FSCN1.stats.stat6, readback, Maximum Y, S03SIM-EA-FSCN-01:STAT6:MaxY_RBV +# % gui, FSCN1.stats.stat6, readback, Mean Value, S03SIM-EA-FSCN-01:STAT6:MeanValue_RBV +# % gui, FSCN1.stats.stat6, readback, Total, S03SIM-EA-FSCN-01:STAT6:Total_RBV +# % gui, FSCN1.stats.stat6, readback, Sigma, S03SIM-EA-FSCN-01:STAT6:Sigma_RBV +# % gui, FSCN1.stats.stat6, readback, Net, S03SIM-EA-FSCN-01:STAT6:Net_RBV +# Centroid +# % gui, FSCN1.stats.stat6, groupHeading, Centroid +# % gui, FSCN1.stats.stat6, enum, Compute Centroid, S03SIM-EA-FSCN-01:STAT6:ComputeCentroid +# % gui, FSCN1.stats.stat6, statusbits, Compute Centroid, S03SIM-EA-FSCN-01:STAT6:ComputeCentroid_RBV +# % gui, FSCN1.stats.stat6, demand, Threshold, S03SIM-EA-FSCN-01:STAT6:CentroidThreshold +# % gui, FSCN1.stats.stat6, readback, Threshold, S03SIM-EA-FSCN-01:STAT6:CentroidThreshold_RBV +# % gui, FSCN1.stats.stat6, readback, X, S03SIM-EA-FSCN-01:STAT6:CentroidX_RBV +# % gui, FSCN1.stats.stat6, readback, Sigma X, S03SIM-EA-FSCN-01:STAT6:SigmaX_RBV +# % gui, FSCN1.stats.stat6, readback, Y, S03SIM-EA-FSCN-01:STAT6:CentroidY_RBV +# % gui, FSCN1.stats.stat6, readback, Sigma Y, S03SIM-EA-FSCN-01:STAT6:SigmaY_RBV +# % gui, FSCN1.stats.stat6, readback, Sigma XY, S03SIM-EA-FSCN-01:STAT6:SigmaXY_RBV +# Histogram +# % gui, FSCN1.stats.stat6, groupHeading, Histogram +# % gui, FSCN1.stats.stat6, enum, Compute Histogram, S03SIM-EA-FSCN-01:STAT6:ComputeHistogram +# % gui, FSCN1.stats.stat6, statusbits, Compute Histogram, S03SIM-EA-FSCN-01:STAT6:ComputeHistogram_RBV +# % gui, FSCN1.stats.stat6, demand, Histogram Size, S03SIM-EA-FSCN-01:STAT6:HistSize +# % gui, FSCN1.stats.stat6, readback, Histogram Size, S03SIM-EA-FSCN-01:STAT6:HistSize_RBV +# % gui, FSCN1.stats.stat6, demand, Histogram Min, S03SIM-EA-FSCN-01:STAT6:HistMin +# % gui, FSCN1.stats.stat6, readback, Histogram Min, S03SIM-EA-FSCN-01:STAT6:HistMin_RBV +# % gui, FSCN1.stats.stat6, demand, Histogram Max, S03SIM-EA-FSCN-01:STAT6:HistMax +# % gui, FSCN1.stats.stat6, readback, Histogram Max, S03SIM-EA-FSCN-01:STAT6:HistMax_RBV +# % gui, FSCN1.stats.stat6, readback, Histogram Entropy, S03SIM-EA-FSCN-01:STAT6:HistEntropy_RBV +# Profiles +# % gui, FSCN1.stats.stat6, groupHeading, Profiles +# % gui, FSCN1.stats.stat6, enum, Compute Profiles, S03SIM-EA-FSCN-01:STAT6:ComputeProfiles +# % gui, FSCN1.stats.stat6, statusbits, Compute Profiles, S03SIM-EA-FSCN-01:STAT6:ComputeProfiles_RBV +# % gui, FSCN1.stats.stat6, demand, Cursor X, S03SIM-EA-FSCN-01:STAT6:CursorX +# % gui, FSCN1.stats.stat6, readback, Cursor X, S03SIM-EA-FSCN-01:STAT6:CursorX_RBV +# % gui, FSCN1.stats.stat6, demand, Cursor Y, S03SIM-EA-FSCN-01:STAT6:CursorY +# % gui, FSCN1.stats.stat6, readback, Cursor Y, S03SIM-EA-FSCN-01:STAT6:CursorY_RBV +# % gui, FSCN1.stats.stat6, readback, Size X, S03SIM-EA-FSCN-01:STAT6:ProfileSizeX_RBV +# % gui, FSCN1.stats.stat6, readback, Size Y, S03SIM-EA-FSCN-01:STAT6:ProfileSizeY_RBV +# Time series +# % gui, FSCN1.stats.stat6, groupHeading, Time Series +# % gui, FSCN1.stats.stat6, enum, Time Control, S03SIM-EA-FSCN-01:STAT6:TS:TSAcquire +# % gui, FSCN1.stats.stat6, statusbits, Acquiring, S03SIM-EA-FSCN-01:STAT6:TS:TSAcquiring +# % gui, FSCN1.stats.stat6, readback, Current Point, S03SIM-EA-FSCN-01:STAT6:TS:TSCurrentPoint +# % gui, FSCN1.stats.stat6, demand, Number of Points, S03SIM-EA-FSCN-01:STAT6:TS:TSNumPoints +# % gui, FSCN1.stats.stat6, enum, Update, S03SIM-EA-FSCN-01:STAT6:TS:TSRead.SCAN +# Memory +# % gui, FSCN1.stats.stat6, groupHeading, Memory +# % gui, FSCN1.stats.stat6, readback, Max memory, S03SIM-EA-FSCN-01:STAT6:PoolMaxMem +# % gui, FSCN1.stats.stat6, readback, Max buffers, S03SIM-EA-FSCN-01:STAT6:PoolMaxBuffers +# % gui, FSCN1.stats.stat6, readback, Used memory, S03SIM-EA-FSCN-01:STAT6:PoolUsedMem +# % gui, FSCN1.stats.stat6, readback, Allocated buffers, S03SIM-EA-FSCN-01:STAT6:PoolAllocBuffers +# % gui, FSCN1.stats.stat6, readback, Free buffers, S03SIM-EA-FSCN-01:STAT6:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT6:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT6:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT6:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT6:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT6:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT6:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT6:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT6:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:STAT6:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT6:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT6:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT6:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:STAT6:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT6:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT6:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:STAT6:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:STAT6:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:STAT6:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:STAT6:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:STAT6:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:STAT6:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:STAT6:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:STAT6:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:STAT6:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:STAT6:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:STAT6:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:STAT6:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:STAT6:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:STAT6:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT6:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:STAT6:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:STAT6:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT6:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT6:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:STAT6:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:STAT6:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:STAT6:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT6:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:STAT6:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:STAT6:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:STAT6:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:STAT6:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.rois.roi1") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:STAT6:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT6:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT6:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT6:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:STAT6:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT6:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT6:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:STAT6:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:STAT6:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:STAT6:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:STAT6:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT6:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT6:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT6:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:STAT6:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT6:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT6:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:STAT6:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT6:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:STAT6:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:STAT6:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT6:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:STAT6:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:STAT6:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT6:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:STAT6:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:STAT6:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:STAT6:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT6:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:STAT6:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:STAT6:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT6:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:STAT6:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:STAT6:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:STAT6:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT6:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT6:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:STAT6:AsynIO") +{ + field(PORT, "FSCN1.stats.stat6") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records contain the basic statistics # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT6:ComputeStatistics") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)COMPUTE_STATISTICS") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT6:ComputeStatistics_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)COMPUTE_STATISTICS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT6:BgdWidth") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)BGD_WIDTH") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:BgdWidth_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)BGD_WIDTH") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:MinValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)MIN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:MinValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)MIN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:MaxValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)MAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:MaxValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)MAX_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:MeanValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)MEAN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:MeanValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)MEAN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:SigmaValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)SIGMA_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:Sigma_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)SIGMA_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:Total") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:Total_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:Net") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)NET") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:Net_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)NET") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:MinX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)MIN_X") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:MinX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:MinY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)MIN_Y") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:MinY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:MaxX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)MAX_X") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:MaxX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)MAX_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:MaxY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)MAX_Y") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:MaxY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)MAX_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether centroid statistics are computed # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT6:ComputeCentroid") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)COMPUTE_CENTROID") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT6:ComputeCentroid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)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, "S03SIM-EA-FSCN-01:STAT6:CentroidThreshold") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)CENTROID_THRESHOLD") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:CentroidThreshold_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)CENTROID_THRESHOLD") + field(VAL, "0") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:CentroidTotal") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)CENTROID_TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:CentroidTotal_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)CENTROID_TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:CentroidX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)CENTROIDX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:CentroidX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)CENTROIDX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:CentroidY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)CENTROIDY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:CentroidY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)CENTROIDY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:SigmaX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)SIGMAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:SigmaX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)SIGMAX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:SigmaY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)SIGMAY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:SigmaY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)SIGMAY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:SigmaXY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)SIGMAXY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:SigmaXY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)SIGMAXY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:SkewX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)SKEWX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:SkewX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)SKEWX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:SkewY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)SKEWY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:SkewY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)SKEWY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:KurtosisX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)KURTOSISX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:KurtosisX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)KURTOSISX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:KurtosisY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)KURTOSISY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:KurtosisY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)KURTOSISY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:Eccentricity") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)ECCENTRICITY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:Eccentricity_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)ECCENTRICITY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:Orientation") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)ORIENTATION_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:Orientation_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)ORIENTATION_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control time series # +################################################################### +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSMinValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,0,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSMinX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,1,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSMinY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,2,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSMaxValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,3,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSMaxX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,4,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSMaxY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,5,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSMeanValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,6,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSSigma") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,7,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,8,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSNet") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,9,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSCentroidTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,10,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSCentroidX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,11,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSCentroidY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,12,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSSigmaX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,13,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSSigmaY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,14,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSSigmaXY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,15,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSSkewX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,16,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSSkewY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,17,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSKurtosisX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,18,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSKurtosisY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,19,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSEccentricity") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,20,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSOrientation") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,21,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSTimestamp") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6_TS,22,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control profiles # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT6:ComputeProfiles") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)COMPUTE_PROFILES") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT6:ComputeProfiles_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)COMPUTE_PROFILES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ProfileSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)PROFILE_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:ProfileSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)PROFILE_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT6:CursorX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)CURSOR_X") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:CursorX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)CURSOR_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT6:CursorY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)CURSOR_Y") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:CursorY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)CURSOR_Y") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:CursorVal") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)CURSOR_VAL") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:ProfileAverageX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)PROFILE_AVERAGE_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:ProfileAverageY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)PROFILE_AVERAGE_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:ProfileThresholdX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)PROFILE_THRESHOLD_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:ProfileThresholdY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)PROFILE_THRESHOLD_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:ProfileCentroidX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)PROFILE_CENTROID_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:ProfileCentroidY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)PROFILE_CENTROID_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:ProfileCursorX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)PROFILE_CURSOR_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:ProfileCursorY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)PROFILE_CURSOR_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These are used to define the histogram # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:STAT6:ComputeHistogram") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)COMPUTE_HISTOGRAM") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:STAT6:ComputeHistogram_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)COMPUTE_HISTOGRAM") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT6:HistSize") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)HIST_SIZE") + field(VAL, "256") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:HistSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)HIST_SIZE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:HistMin") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)HIST_MIN") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:HistMin_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)HIST_MIN") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:HistMax") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)HIST_MAX") + field(VAL, "255") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:HistMax_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)HIST_MAX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT6:HistBelow") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)HIST_BELOW") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:HistBelow_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)HIST_BELOW") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:STAT6:HistAbove") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)HIST_ABOVE") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:HistAbove_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)HIST_ABOVE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:STAT6:HistEntropy") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.stats.stat6,0,1)HIST_ENTROPY") +} + +record(ai, "S03SIM-EA-FSCN-01:STAT6:HistEntropy_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)HIST_ENTROPY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:Histogram_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)HIST_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:STAT6:HistogramX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN1.stats.stat6,0,1)HIST_X_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + 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, "S03SIM-EA-FSCN-01:STAT6:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:ProfileSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:STAT6:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:STAT6:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:STAT6:CursorX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:STAT6:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-01:STAT6:ProfileSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:STAT6:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:STAT6:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:STAT6:CursorY.HOPR NPP") +} + +################################################################### +# These records reset the statistics # +################################################################### +record(sseq, "S03SIM-EA-FSCN-01:STAT6:Reset") +{ + field(LNK1, "S03SIM-EA-FSCN-01:STAT6:MinValue PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:STAT6:MaxValue PP MS") + field(LNK3, "S03SIM-EA-FSCN-01:STAT6:MeanValue PP MS") + field(LNK4, "S03SIM-EA-FSCN-01:STAT6:SigmaValue PP MS") + field(LNK5, "S03SIM-EA-FSCN-01:STAT6:Total PP MS") + field(LNK6, "S03SIM-EA-FSCN-01:STAT6:Net PP MS") + field(LNK7, "S03SIM-EA-FSCN-01:STAT6:MinX PP MS") + field(LNK8, "S03SIM-EA-FSCN-01:STAT6:MinY PP MS") + field(LNK9, "S03SIM-EA-FSCN-01:STAT6:MaxX PP MS") + field(LNKA, "S03SIM-EA-FSCN-01:STAT6:MaxY PP MS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Reset1") +} + +record(sseq, "S03SIM-EA-FSCN-01:STAT6:Reset1") +{ + field(LNK1, "S03SIM-EA-FSCN-01:STAT6:CentroidX PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:STAT6:CentroidY PP MS") + field(LNK3, "S03SIM-EA-FSCN-01:STAT6:SigmaX PP MS") + field(LNK4, "S03SIM-EA-FSCN-01:STAT6:SigmaY PP MS") + field(LNK5, "S03SIM-EA-FSCN-01:STAT6:SigmaXY PP MS") + field(LNK6, "S03SIM-EA-FSCN-01:STAT6:CentroidTotal PP MS") + field(LNK7, "S03SIM-EA-FSCN-01:STAT6:SkewX PP MS") + field(LNK8, "S03SIM-EA-FSCN-01:STAT6:SkewY PP MS") + field(LNK9, "S03SIM-EA-FSCN-01:STAT6:KurtosisX PP MS") + field(LNKA, "S03SIM-EA-FSCN-01:STAT6:KurtosisY PP MS") + field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Reset2") +} + +record(sseq, "S03SIM-EA-FSCN-01:STAT6:Reset2") +{ + field(LNK1, "S03SIM-EA-FSCN-01:STAT6:Eccentricity PP MS") + field(LNK2, "S03SIM-EA-FSCN-01:STAT6:Orientation PP MS") + field(LNK3, "S03SIM-EA-FSCN-01:STAT6:HistBelow PP MS") + field(LNK4, "S03SIM-EA-FSCN-01:STAT6:HistAbove PP MS") + field(LNK5, "S03SIM-EA-FSCN-01:STAT6:HistEntropy PP MS") +} + +#=================================================================# +# Template file: NDStats.template + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, NCHANS, Number of channels +# % macro, XSIZE, x size +# % macro, YSIZE, y size +# % macro, HIST_SIZE, hist size +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Timeout +# % macro, TS_PORT, TS port + +# This associates the template with an edm screen +# % gui, FSCN2.stat, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-02,R=:STAT: + +# This associates a BOY screen with the template +# % gui, FSCN2.stat, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-02, R=:STAT:, DESC=Statistics +# % gui, FSCN2.stat, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:STAT:, DESC=Statistics +# % gui, FSCN2.stat, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-02, R=:STAT:, DESC=Statistics + + +# % gui, FSCN2.stat, groupHeading, Info +# % gui, FSCN2.stat, readback, Port name, S03SIM-EA-FSCN-02:STAT:PortName_RBV +# % gui, FSCN2.stat, readback, Plugin type, S03SIM-EA-FSCN-02:STAT:PluginType_RBV +# Input +# % gui, FSCN2.stat, demandString, Input, S03SIM-EA-FSCN-02:STAT:NDArrayPort +# % gui, FSCN2.stat, readback, Input, S03SIM-EA-FSCN-02:STAT:NDArrayPort_RBV + +# % gui, FSCN2.stat, groupHeading, Callback +# % gui, FSCN2.stat, enum, Callbacks, S03SIM-EA-FSCN-02:STAT:EnableCallbacks +# % gui, FSCN2.stat, statusbits, Callbacks, S03SIM-EA-FSCN-02:STAT:EnableCallbacks_RBV +# % gui, FSCN2.stat, demand, Min Callback Time, S03SIM-EA-FSCN-02:STAT:MinCallbackTime +# % gui, FSCN2.stat, readback, Min Callback Time, S03SIM-EA-FSCN-02:STAT:MinCallbackTime_RBV +# % gui, FSCN2.stat, enum, Block Callbacks, S03SIM-EA-FSCN-02:STAT:BlockingCallbacks +# % gui, FSCN2.stat, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:STAT:BlockingCallbacks_RBV + +# % gui, FSCN2.stat, groupHeading, Counters +# % gui, FSCN2.stat, demand, Array Counter, S03SIM-EA-FSCN-02:STAT:ArrayCounter +# % gui, FSCN2.stat, readback, Array Counter, S03SIM-EA-FSCN-02:STAT:ArrayCounter_RBV +# % gui, FSCN2.stat, readback, Array Rate (fps), S03SIM-EA-FSCN-02:STAT:ArrayRate_RBV +# % gui, FSCN2.stat, readback, Queue Use, S03SIM-EA-FSCN-02:STAT:QueueUse +# % gui, FSCN2.stat, readback, Queue Size, S03SIM-EA-FSCN-02:STAT:QueueSize +# % gui, FSCN2.stat, demand, Dropped Arrays, S03SIM-EA-FSCN-02:STAT:DroppedArrays +# % gui, FSCN2.stat, readback, Dropped Arrays, S03SIM-EA-FSCN-02:STAT:DroppedArrays_RBV + +# % gui, FSCN2.stat, groupHeading, Array Settings +# % gui, FSCN2.stat, readback, Num Dimensions, S03SIM-EA-FSCN-02:STAT:NDimensions_RBV +# % gui, FSCN2.stat, readback, Dim 0 Size, S03SIM-EA-FSCN-02:STAT:ArraySize0_RBV +# % gui, FSCN2.stat, readback, Dim 1 Size, S03SIM-EA-FSCN-02:STAT:ArraySize1_RBV +# % gui, FSCN2.stat, readback, Dim 2 Size, S03SIM-EA-FSCN-02:STAT:ArraySize2_RBV +# % gui, FSCN2.stat, readback, Input Data Type, S03SIM-EA-FSCN-02:STAT:DataType_RBV +# % gui, FSCN2.stat, readback, Colour Mode, S03SIM-EA-FSCN-02:STAT:ColorMode_RBV +# % gui, FSCN2.stat, readback, Bayer Pattern, S03SIM-EA-FSCN-02:STAT:BayerPattern_RBV +# % gui, FSCN2.stat, readback, Unique id, S03SIM-EA-FSCN-02:STAT:UniqueId_RBV +# % gui, FSCN2.stat, readback, Timestamp, S03SIM-EA-FSCN-02:STAT:TimeStamp_RBV + +# Output +# % gui, FSCN2.stat, groupHeading, Output +# % gui, FSCN2.stat, demand, Name, S03SIM-EA-FSCN-02:STAT:Name +# % gui, FSCN2.stat, enum, Out data type, S03SIM-EA-FSCN-02:STAT:DataTypeOut +# % gui, FSCN2.stat, readback, Out data type, S03SIM-EA-FSCN-02:STAT:DataTypeOut_RBV +# % gui, FSCN2.stat, demand, Attributes file, S03SIM-EA-FSCN-02:STAT:NDAttributesFile + +# Statistics +# % gui, FSCN2.stat, groupHeading, Statistics +# % gui, FSCN2.stat, enum, Compute Statistics, S03SIM-EA-FSCN-02:STAT:ComputeStatistics +# % gui, FSCN2.stat, statusbits, Compute Statistics, S03SIM-EA-FSCN-02:STAT:ComputeStatistics_RBV +# % gui, FSCN2.stat, demand, Background Width, S03SIM-EA-FSCN-02:STAT:BgdWidth +# % gui, FSCN2.stat, readback, Background Width, S03SIM-EA-FSCN-02:STAT:BgdWidth_RBV +# % gui, FSCN2.stat, readback, Minimum Value, S03SIM-EA-FSCN-02:STAT:MinValue_RBV +# % gui, FSCN2.stat, readback, Minimum X, S03SIM-EA-FSCN-02:STAT:MinX_RBV +# % gui, FSCN2.stat, readback, Minimum Y, S03SIM-EA-FSCN-02:STAT:MinY_RBV +# % gui, FSCN2.stat, readback, Maximum Value, S03SIM-EA-FSCN-02:STAT:MaxValue_RBV +# % gui, FSCN2.stat, readback, Maximum X, S03SIM-EA-FSCN-02:STAT:MaxX_RBV +# % gui, FSCN2.stat, readback, Maximum Y, S03SIM-EA-FSCN-02:STAT:MaxY_RBV +# % gui, FSCN2.stat, readback, Mean Value, S03SIM-EA-FSCN-02:STAT:MeanValue_RBV +# % gui, FSCN2.stat, readback, Total, S03SIM-EA-FSCN-02:STAT:Total_RBV +# % gui, FSCN2.stat, readback, Sigma, S03SIM-EA-FSCN-02:STAT:Sigma_RBV +# % gui, FSCN2.stat, readback, Net, S03SIM-EA-FSCN-02:STAT:Net_RBV +# Centroid +# % gui, FSCN2.stat, groupHeading, Centroid +# % gui, FSCN2.stat, enum, Compute Centroid, S03SIM-EA-FSCN-02:STAT:ComputeCentroid +# % gui, FSCN2.stat, statusbits, Compute Centroid, S03SIM-EA-FSCN-02:STAT:ComputeCentroid_RBV +# % gui, FSCN2.stat, demand, Threshold, S03SIM-EA-FSCN-02:STAT:CentroidThreshold +# % gui, FSCN2.stat, readback, Threshold, S03SIM-EA-FSCN-02:STAT:CentroidThreshold_RBV +# % gui, FSCN2.stat, readback, X, S03SIM-EA-FSCN-02:STAT:CentroidX_RBV +# % gui, FSCN2.stat, readback, Sigma X, S03SIM-EA-FSCN-02:STAT:SigmaX_RBV +# % gui, FSCN2.stat, readback, Y, S03SIM-EA-FSCN-02:STAT:CentroidY_RBV +# % gui, FSCN2.stat, readback, Sigma Y, S03SIM-EA-FSCN-02:STAT:SigmaY_RBV +# % gui, FSCN2.stat, readback, Sigma XY, S03SIM-EA-FSCN-02:STAT:SigmaXY_RBV +# Histogram +# % gui, FSCN2.stat, groupHeading, Histogram +# % gui, FSCN2.stat, enum, Compute Histogram, S03SIM-EA-FSCN-02:STAT:ComputeHistogram +# % gui, FSCN2.stat, statusbits, Compute Histogram, S03SIM-EA-FSCN-02:STAT:ComputeHistogram_RBV +# % gui, FSCN2.stat, demand, Histogram Size, S03SIM-EA-FSCN-02:STAT:HistSize +# % gui, FSCN2.stat, readback, Histogram Size, S03SIM-EA-FSCN-02:STAT:HistSize_RBV +# % gui, FSCN2.stat, demand, Histogram Min, S03SIM-EA-FSCN-02:STAT:HistMin +# % gui, FSCN2.stat, readback, Histogram Min, S03SIM-EA-FSCN-02:STAT:HistMin_RBV +# % gui, FSCN2.stat, demand, Histogram Max, S03SIM-EA-FSCN-02:STAT:HistMax +# % gui, FSCN2.stat, readback, Histogram Max, S03SIM-EA-FSCN-02:STAT:HistMax_RBV +# % gui, FSCN2.stat, readback, Histogram Entropy, S03SIM-EA-FSCN-02:STAT:HistEntropy_RBV +# Profiles +# % gui, FSCN2.stat, groupHeading, Profiles +# % gui, FSCN2.stat, enum, Compute Profiles, S03SIM-EA-FSCN-02:STAT:ComputeProfiles +# % gui, FSCN2.stat, statusbits, Compute Profiles, S03SIM-EA-FSCN-02:STAT:ComputeProfiles_RBV +# % gui, FSCN2.stat, demand, Cursor X, S03SIM-EA-FSCN-02:STAT:CursorX +# % gui, FSCN2.stat, readback, Cursor X, S03SIM-EA-FSCN-02:STAT:CursorX_RBV +# % gui, FSCN2.stat, demand, Cursor Y, S03SIM-EA-FSCN-02:STAT:CursorY +# % gui, FSCN2.stat, readback, Cursor Y, S03SIM-EA-FSCN-02:STAT:CursorY_RBV +# % gui, FSCN2.stat, readback, Size X, S03SIM-EA-FSCN-02:STAT:ProfileSizeX_RBV +# % gui, FSCN2.stat, readback, Size Y, S03SIM-EA-FSCN-02:STAT:ProfileSizeY_RBV +# Time series +# % gui, FSCN2.stat, groupHeading, Time Series +# % gui, FSCN2.stat, enum, Time Control, S03SIM-EA-FSCN-02:STAT:TS:TSAcquire +# % gui, FSCN2.stat, statusbits, Acquiring, S03SIM-EA-FSCN-02:STAT:TS:TSAcquiring +# % gui, FSCN2.stat, readback, Current Point, S03SIM-EA-FSCN-02:STAT:TS:TSCurrentPoint +# % gui, FSCN2.stat, demand, Number of Points, S03SIM-EA-FSCN-02:STAT:TS:TSNumPoints +# % gui, FSCN2.stat, enum, Update, S03SIM-EA-FSCN-02:STAT:TS:TSRead.SCAN +# Memory +# % gui, FSCN2.stat, groupHeading, Memory +# % gui, FSCN2.stat, readback, Max memory, S03SIM-EA-FSCN-02:STAT:PoolMaxMem +# % gui, FSCN2.stat, readback, Max buffers, S03SIM-EA-FSCN-02:STAT:PoolMaxBuffers +# % gui, FSCN2.stat, readback, Used memory, S03SIM-EA-FSCN-02:STAT:PoolUsedMem +# % gui, FSCN2.stat, readback, Allocated buffers, S03SIM-EA-FSCN-02:STAT:PoolAllocBuffers +# % gui, FSCN2.stat, readback, Free buffers, S03SIM-EA-FSCN-02:STAT:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stat,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stat,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stat,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stat,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stat,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stat,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stat,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stat,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:STAT:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:STAT:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:STAT:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:STAT:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:STAT:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:STAT:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:STAT:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.stat,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.stat,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:STAT:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:STAT:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stat,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:STAT:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:STAT:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:STAT:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:STAT:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:STAT:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:STAT:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:STAT:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:STAT:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:STAT:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:STAT:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.stat,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:STAT:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.stat,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:STAT:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:STAT:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:STAT:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:STAT:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:STAT:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stat,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:STAT:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.stat,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stat,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:STAT:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:STAT:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:STAT:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:STAT:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:STAT:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:STAT:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:STAT:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:STAT:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:STAT:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:STAT:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:STAT:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:STAT:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:STAT:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:STAT:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:STAT:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:STAT:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:STAT:AsynIO") +{ + field(PORT, "FSCN2.stat") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records contain the basic statistics # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT:ComputeStatistics") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)COMPUTE_STATISTICS") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT:ComputeStatistics_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)COMPUTE_STATISTICS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT:BgdWidth") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)BGD_WIDTH") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:BgdWidth_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)BGD_WIDTH") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:MinValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)MIN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:MinValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)MIN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:MaxValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)MAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:MaxValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)MAX_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:MeanValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)MEAN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:MeanValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)MEAN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:SigmaValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)SIGMA_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:Sigma_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)SIGMA_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:Total") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:Total_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:Net") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)NET") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:Net_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)NET") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:MinX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)MIN_X") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:MinX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:MinY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)MIN_Y") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:MinY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:MaxX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)MAX_X") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:MaxX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)MAX_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:MaxY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)MAX_Y") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:MaxY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)MAX_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether centroid statistics are computed # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT:ComputeCentroid") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)COMPUTE_CENTROID") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT:ComputeCentroid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)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, "S03SIM-EA-FSCN-02:STAT:CentroidThreshold") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)CENTROID_THRESHOLD") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:CentroidThreshold_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)CENTROID_THRESHOLD") + field(VAL, "0") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:CentroidTotal") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)CENTROID_TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:CentroidTotal_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)CENTROID_TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:CentroidX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)CENTROIDX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:CentroidX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)CENTROIDX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:CentroidY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)CENTROIDY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:CentroidY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)CENTROIDY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:SigmaX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)SIGMAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:SigmaX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)SIGMAX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:SigmaY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)SIGMAY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:SigmaY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)SIGMAY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:SigmaXY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)SIGMAXY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:SigmaXY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)SIGMAXY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:SkewX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)SKEWX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:SkewX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)SKEWX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:SkewY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)SKEWY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:SkewY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)SKEWY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:KurtosisX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)KURTOSISX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:KurtosisX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)KURTOSISX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:KurtosisY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)KURTOSISY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:KurtosisY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)KURTOSISY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:Eccentricity") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)ECCENTRICITY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:Eccentricity_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)ECCENTRICITY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:Orientation") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)ORIENTATION_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:Orientation_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)ORIENTATION_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control time series # +################################################################### +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSMinValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,0,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSMinX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,1,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSMinY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,2,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSMaxValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,3,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSMaxX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,4,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSMaxY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,5,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSMeanValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,6,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSSigma") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,7,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,8,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSNet") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,9,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSCentroidTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,10,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSCentroidX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,11,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSCentroidY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,12,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSSigmaX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,13,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSSigmaY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,14,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSSigmaXY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,15,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSSkewX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,16,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSSkewY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,17,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSKurtosisX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,18,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSKurtosisY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,19,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSEccentricity") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,20,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSOrientation") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,21,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:TSTimestamp") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat_TS,22,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control profiles # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT:ComputeProfiles") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)COMPUTE_PROFILES") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT:ComputeProfiles_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)COMPUTE_PROFILES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ProfileSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)PROFILE_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:ProfileSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)PROFILE_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT:CursorX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)CURSOR_X") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:CursorX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)CURSOR_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT:CursorY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)CURSOR_Y") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:CursorY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)CURSOR_Y") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:CursorVal") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)CURSOR_VAL") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:ProfileAverageX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat,0,1)PROFILE_AVERAGE_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:ProfileAverageY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat,0,1)PROFILE_AVERAGE_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:ProfileThresholdX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat,0,1)PROFILE_THRESHOLD_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:ProfileThresholdY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat,0,1)PROFILE_THRESHOLD_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:ProfileCentroidX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat,0,1)PROFILE_CENTROID_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:ProfileCentroidY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat,0,1)PROFILE_CENTROID_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:ProfileCursorX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat,0,1)PROFILE_CURSOR_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:ProfileCursorY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat,0,1)PROFILE_CURSOR_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These are used to define the histogram # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT:ComputeHistogram") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)COMPUTE_HISTOGRAM") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT:ComputeHistogram_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)COMPUTE_HISTOGRAM") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT:HistSize") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)HIST_SIZE") + field(VAL, "256") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:HistSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)HIST_SIZE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:HistMin") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)HIST_MIN") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:HistMin_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)HIST_MIN") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:HistMax") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)HIST_MAX") + field(VAL, "255") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:HistMax_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)HIST_MAX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT:HistBelow") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)HIST_BELOW") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:HistBelow_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)HIST_BELOW") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT:HistAbove") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stat,0,1)HIST_ABOVE") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:HistAbove_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stat,0,1)HIST_ABOVE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT:HistEntropy") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stat,0,1)HIST_ENTROPY") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT:HistEntropy_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stat,0,1)HIST_ENTROPY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:Histogram_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat,0,1)HIST_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT:HistogramX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stat,0,1)HIST_X_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + 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, "S03SIM-EA-FSCN-02:STAT:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:ProfileSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:STAT:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:STAT:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:STAT:CursorX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT:ProfileSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:STAT:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:STAT:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:STAT:CursorY.HOPR NPP") +} + +################################################################### +# These records reset the statistics # +################################################################### +record(sseq, "S03SIM-EA-FSCN-02:STAT:Reset") +{ + field(LNK1, "S03SIM-EA-FSCN-02:STAT:MinValue PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:STAT:MaxValue PP MS") + field(LNK3, "S03SIM-EA-FSCN-02:STAT:MeanValue PP MS") + field(LNK4, "S03SIM-EA-FSCN-02:STAT:SigmaValue PP MS") + field(LNK5, "S03SIM-EA-FSCN-02:STAT:Total PP MS") + field(LNK6, "S03SIM-EA-FSCN-02:STAT:Net PP MS") + field(LNK7, "S03SIM-EA-FSCN-02:STAT:MinX PP MS") + field(LNK8, "S03SIM-EA-FSCN-02:STAT:MinY PP MS") + field(LNK9, "S03SIM-EA-FSCN-02:STAT:MaxX PP MS") + field(LNKA, "S03SIM-EA-FSCN-02:STAT:MaxY PP MS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Reset1") +} + +record(sseq, "S03SIM-EA-FSCN-02:STAT:Reset1") +{ + field(LNK1, "S03SIM-EA-FSCN-02:STAT:CentroidX PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:STAT:CentroidY PP MS") + field(LNK3, "S03SIM-EA-FSCN-02:STAT:SigmaX PP MS") + field(LNK4, "S03SIM-EA-FSCN-02:STAT:SigmaY PP MS") + field(LNK5, "S03SIM-EA-FSCN-02:STAT:SigmaXY PP MS") + field(LNK6, "S03SIM-EA-FSCN-02:STAT:CentroidTotal PP MS") + field(LNK7, "S03SIM-EA-FSCN-02:STAT:SkewX PP MS") + field(LNK8, "S03SIM-EA-FSCN-02:STAT:SkewY PP MS") + field(LNK9, "S03SIM-EA-FSCN-02:STAT:KurtosisX PP MS") + field(LNKA, "S03SIM-EA-FSCN-02:STAT:KurtosisY PP MS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT:Reset2") +} + +record(sseq, "S03SIM-EA-FSCN-02:STAT:Reset2") +{ + field(LNK1, "S03SIM-EA-FSCN-02:STAT:Eccentricity PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:STAT:Orientation PP MS") + field(LNK3, "S03SIM-EA-FSCN-02:STAT:HistBelow PP MS") + field(LNK4, "S03SIM-EA-FSCN-02:STAT:HistAbove PP MS") + field(LNK5, "S03SIM-EA-FSCN-02:STAT:HistEntropy PP MS") +} + +#=================================================================# +# Template file: NDStats.template + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, NCHANS, Number of channels +# % macro, XSIZE, x size +# % macro, YSIZE, y size +# % macro, HIST_SIZE, hist size +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Timeout +# % macro, TS_PORT, TS port + +# This associates the template with an edm screen +# % gui, FSCN2.stats.stat1, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-02,R=:STAT1: + +# This associates a BOY screen with the template +# % gui, FSCN2.stats.stat1, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-02, R=:STAT1:, DESC=Statistics +# % gui, FSCN2.stats.stat1, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:STAT1:, DESC=Statistics +# % gui, FSCN2.stats.stat1, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-02, R=:STAT1:, DESC=Statistics + + +# % gui, FSCN2.stats.stat1, groupHeading, Info +# % gui, FSCN2.stats.stat1, readback, Port name, S03SIM-EA-FSCN-02:STAT1:PortName_RBV +# % gui, FSCN2.stats.stat1, readback, Plugin type, S03SIM-EA-FSCN-02:STAT1:PluginType_RBV +# Input +# % gui, FSCN2.stats.stat1, demandString, Input, S03SIM-EA-FSCN-02:STAT1:NDArrayPort +# % gui, FSCN2.stats.stat1, readback, Input, S03SIM-EA-FSCN-02:STAT1:NDArrayPort_RBV + +# % gui, FSCN2.stats.stat1, groupHeading, Callback +# % gui, FSCN2.stats.stat1, enum, Callbacks, S03SIM-EA-FSCN-02:STAT1:EnableCallbacks +# % gui, FSCN2.stats.stat1, statusbits, Callbacks, S03SIM-EA-FSCN-02:STAT1:EnableCallbacks_RBV +# % gui, FSCN2.stats.stat1, demand, Min Callback Time, S03SIM-EA-FSCN-02:STAT1:MinCallbackTime +# % gui, FSCN2.stats.stat1, readback, Min Callback Time, S03SIM-EA-FSCN-02:STAT1:MinCallbackTime_RBV +# % gui, FSCN2.stats.stat1, enum, Block Callbacks, S03SIM-EA-FSCN-02:STAT1:BlockingCallbacks +# % gui, FSCN2.stats.stat1, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:STAT1:BlockingCallbacks_RBV + +# % gui, FSCN2.stats.stat1, groupHeading, Counters +# % gui, FSCN2.stats.stat1, demand, Array Counter, S03SIM-EA-FSCN-02:STAT1:ArrayCounter +# % gui, FSCN2.stats.stat1, readback, Array Counter, S03SIM-EA-FSCN-02:STAT1:ArrayCounter_RBV +# % gui, FSCN2.stats.stat1, readback, Array Rate (fps), S03SIM-EA-FSCN-02:STAT1:ArrayRate_RBV +# % gui, FSCN2.stats.stat1, readback, Queue Use, S03SIM-EA-FSCN-02:STAT1:QueueUse +# % gui, FSCN2.stats.stat1, readback, Queue Size, S03SIM-EA-FSCN-02:STAT1:QueueSize +# % gui, FSCN2.stats.stat1, demand, Dropped Arrays, S03SIM-EA-FSCN-02:STAT1:DroppedArrays +# % gui, FSCN2.stats.stat1, readback, Dropped Arrays, S03SIM-EA-FSCN-02:STAT1:DroppedArrays_RBV + +# % gui, FSCN2.stats.stat1, groupHeading, Array Settings +# % gui, FSCN2.stats.stat1, readback, Num Dimensions, S03SIM-EA-FSCN-02:STAT1:NDimensions_RBV +# % gui, FSCN2.stats.stat1, readback, Dim 0 Size, S03SIM-EA-FSCN-02:STAT1:ArraySize0_RBV +# % gui, FSCN2.stats.stat1, readback, Dim 1 Size, S03SIM-EA-FSCN-02:STAT1:ArraySize1_RBV +# % gui, FSCN2.stats.stat1, readback, Dim 2 Size, S03SIM-EA-FSCN-02:STAT1:ArraySize2_RBV +# % gui, FSCN2.stats.stat1, readback, Input Data Type, S03SIM-EA-FSCN-02:STAT1:DataType_RBV +# % gui, FSCN2.stats.stat1, readback, Colour Mode, S03SIM-EA-FSCN-02:STAT1:ColorMode_RBV +# % gui, FSCN2.stats.stat1, readback, Bayer Pattern, S03SIM-EA-FSCN-02:STAT1:BayerPattern_RBV +# % gui, FSCN2.stats.stat1, readback, Unique id, S03SIM-EA-FSCN-02:STAT1:UniqueId_RBV +# % gui, FSCN2.stats.stat1, readback, Timestamp, S03SIM-EA-FSCN-02:STAT1:TimeStamp_RBV + +# Output +# % gui, FSCN2.stats.stat1, groupHeading, Output +# % gui, FSCN2.stats.stat1, demand, Name, S03SIM-EA-FSCN-02:STAT1:Name +# % gui, FSCN2.stats.stat1, enum, Out data type, S03SIM-EA-FSCN-02:STAT1:DataTypeOut +# % gui, FSCN2.stats.stat1, readback, Out data type, S03SIM-EA-FSCN-02:STAT1:DataTypeOut_RBV +# % gui, FSCN2.stats.stat1, demand, Attributes file, S03SIM-EA-FSCN-02:STAT1:NDAttributesFile + +# Statistics +# % gui, FSCN2.stats.stat1, groupHeading, Statistics +# % gui, FSCN2.stats.stat1, enum, Compute Statistics, S03SIM-EA-FSCN-02:STAT1:ComputeStatistics +# % gui, FSCN2.stats.stat1, statusbits, Compute Statistics, S03SIM-EA-FSCN-02:STAT1:ComputeStatistics_RBV +# % gui, FSCN2.stats.stat1, demand, Background Width, S03SIM-EA-FSCN-02:STAT1:BgdWidth +# % gui, FSCN2.stats.stat1, readback, Background Width, S03SIM-EA-FSCN-02:STAT1:BgdWidth_RBV +# % gui, FSCN2.stats.stat1, readback, Minimum Value, S03SIM-EA-FSCN-02:STAT1:MinValue_RBV +# % gui, FSCN2.stats.stat1, readback, Minimum X, S03SIM-EA-FSCN-02:STAT1:MinX_RBV +# % gui, FSCN2.stats.stat1, readback, Minimum Y, S03SIM-EA-FSCN-02:STAT1:MinY_RBV +# % gui, FSCN2.stats.stat1, readback, Maximum Value, S03SIM-EA-FSCN-02:STAT1:MaxValue_RBV +# % gui, FSCN2.stats.stat1, readback, Maximum X, S03SIM-EA-FSCN-02:STAT1:MaxX_RBV +# % gui, FSCN2.stats.stat1, readback, Maximum Y, S03SIM-EA-FSCN-02:STAT1:MaxY_RBV +# % gui, FSCN2.stats.stat1, readback, Mean Value, S03SIM-EA-FSCN-02:STAT1:MeanValue_RBV +# % gui, FSCN2.stats.stat1, readback, Total, S03SIM-EA-FSCN-02:STAT1:Total_RBV +# % gui, FSCN2.stats.stat1, readback, Sigma, S03SIM-EA-FSCN-02:STAT1:Sigma_RBV +# % gui, FSCN2.stats.stat1, readback, Net, S03SIM-EA-FSCN-02:STAT1:Net_RBV +# Centroid +# % gui, FSCN2.stats.stat1, groupHeading, Centroid +# % gui, FSCN2.stats.stat1, enum, Compute Centroid, S03SIM-EA-FSCN-02:STAT1:ComputeCentroid +# % gui, FSCN2.stats.stat1, statusbits, Compute Centroid, S03SIM-EA-FSCN-02:STAT1:ComputeCentroid_RBV +# % gui, FSCN2.stats.stat1, demand, Threshold, S03SIM-EA-FSCN-02:STAT1:CentroidThreshold +# % gui, FSCN2.stats.stat1, readback, Threshold, S03SIM-EA-FSCN-02:STAT1:CentroidThreshold_RBV +# % gui, FSCN2.stats.stat1, readback, X, S03SIM-EA-FSCN-02:STAT1:CentroidX_RBV +# % gui, FSCN2.stats.stat1, readback, Sigma X, S03SIM-EA-FSCN-02:STAT1:SigmaX_RBV +# % gui, FSCN2.stats.stat1, readback, Y, S03SIM-EA-FSCN-02:STAT1:CentroidY_RBV +# % gui, FSCN2.stats.stat1, readback, Sigma Y, S03SIM-EA-FSCN-02:STAT1:SigmaY_RBV +# % gui, FSCN2.stats.stat1, readback, Sigma XY, S03SIM-EA-FSCN-02:STAT1:SigmaXY_RBV +# Histogram +# % gui, FSCN2.stats.stat1, groupHeading, Histogram +# % gui, FSCN2.stats.stat1, enum, Compute Histogram, S03SIM-EA-FSCN-02:STAT1:ComputeHistogram +# % gui, FSCN2.stats.stat1, statusbits, Compute Histogram, S03SIM-EA-FSCN-02:STAT1:ComputeHistogram_RBV +# % gui, FSCN2.stats.stat1, demand, Histogram Size, S03SIM-EA-FSCN-02:STAT1:HistSize +# % gui, FSCN2.stats.stat1, readback, Histogram Size, S03SIM-EA-FSCN-02:STAT1:HistSize_RBV +# % gui, FSCN2.stats.stat1, demand, Histogram Min, S03SIM-EA-FSCN-02:STAT1:HistMin +# % gui, FSCN2.stats.stat1, readback, Histogram Min, S03SIM-EA-FSCN-02:STAT1:HistMin_RBV +# % gui, FSCN2.stats.stat1, demand, Histogram Max, S03SIM-EA-FSCN-02:STAT1:HistMax +# % gui, FSCN2.stats.stat1, readback, Histogram Max, S03SIM-EA-FSCN-02:STAT1:HistMax_RBV +# % gui, FSCN2.stats.stat1, readback, Histogram Entropy, S03SIM-EA-FSCN-02:STAT1:HistEntropy_RBV +# Profiles +# % gui, FSCN2.stats.stat1, groupHeading, Profiles +# % gui, FSCN2.stats.stat1, enum, Compute Profiles, S03SIM-EA-FSCN-02:STAT1:ComputeProfiles +# % gui, FSCN2.stats.stat1, statusbits, Compute Profiles, S03SIM-EA-FSCN-02:STAT1:ComputeProfiles_RBV +# % gui, FSCN2.stats.stat1, demand, Cursor X, S03SIM-EA-FSCN-02:STAT1:CursorX +# % gui, FSCN2.stats.stat1, readback, Cursor X, S03SIM-EA-FSCN-02:STAT1:CursorX_RBV +# % gui, FSCN2.stats.stat1, demand, Cursor Y, S03SIM-EA-FSCN-02:STAT1:CursorY +# % gui, FSCN2.stats.stat1, readback, Cursor Y, S03SIM-EA-FSCN-02:STAT1:CursorY_RBV +# % gui, FSCN2.stats.stat1, readback, Size X, S03SIM-EA-FSCN-02:STAT1:ProfileSizeX_RBV +# % gui, FSCN2.stats.stat1, readback, Size Y, S03SIM-EA-FSCN-02:STAT1:ProfileSizeY_RBV +# Time series +# % gui, FSCN2.stats.stat1, groupHeading, Time Series +# % gui, FSCN2.stats.stat1, enum, Time Control, S03SIM-EA-FSCN-02:STAT1:TS:TSAcquire +# % gui, FSCN2.stats.stat1, statusbits, Acquiring, S03SIM-EA-FSCN-02:STAT1:TS:TSAcquiring +# % gui, FSCN2.stats.stat1, readback, Current Point, S03SIM-EA-FSCN-02:STAT1:TS:TSCurrentPoint +# % gui, FSCN2.stats.stat1, demand, Number of Points, S03SIM-EA-FSCN-02:STAT1:TS:TSNumPoints +# % gui, FSCN2.stats.stat1, enum, Update, S03SIM-EA-FSCN-02:STAT1:TS:TSRead.SCAN +# Memory +# % gui, FSCN2.stats.stat1, groupHeading, Memory +# % gui, FSCN2.stats.stat1, readback, Max memory, S03SIM-EA-FSCN-02:STAT1:PoolMaxMem +# % gui, FSCN2.stats.stat1, readback, Max buffers, S03SIM-EA-FSCN-02:STAT1:PoolMaxBuffers +# % gui, FSCN2.stats.stat1, readback, Used memory, S03SIM-EA-FSCN-02:STAT1:PoolUsedMem +# % gui, FSCN2.stats.stat1, readback, Allocated buffers, S03SIM-EA-FSCN-02:STAT1:PoolAllocBuffers +# % gui, FSCN2.stats.stat1, readback, Free buffers, S03SIM-EA-FSCN-02:STAT1:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT1:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT1:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT1:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT1:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT1:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT1:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT1:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT1:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:STAT1:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT1:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT1:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT1:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:STAT1:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT1:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT1:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:STAT1:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:STAT1:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:STAT1:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:STAT1:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:STAT1:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:STAT1:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:STAT1:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:STAT1:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:STAT1:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:STAT1:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:STAT1:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:STAT1:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:STAT1:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:STAT1:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT1:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:STAT1:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:STAT1:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT1:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT1:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:STAT1:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:STAT1:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:STAT1:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT1:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:STAT1:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:STAT1:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT1:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:STAT1:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.rois.roi1") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT1:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT1:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT1:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT1:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:STAT1:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT1:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT1:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:STAT1:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:STAT1:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT1:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:STAT1:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT1:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT1:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT1:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:STAT1:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT1:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT1:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:STAT1:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT1:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:STAT1:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:STAT1:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT1:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:STAT1:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:STAT1:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT1:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:STAT1:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:STAT1:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:STAT1:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT1:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:STAT1:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:STAT1:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT1:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT1:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:STAT1:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT1:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT1:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT1:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:STAT1:AsynIO") +{ + field(PORT, "FSCN2.stats.stat1") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records contain the basic statistics # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT1:ComputeStatistics") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)COMPUTE_STATISTICS") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT1:ComputeStatistics_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)COMPUTE_STATISTICS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT1:BgdWidth") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)BGD_WIDTH") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:BgdWidth_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)BGD_WIDTH") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:MinValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)MIN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:MinValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)MIN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:MaxValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)MAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:MaxValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)MAX_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:MeanValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)MEAN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:MeanValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)MEAN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:SigmaValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)SIGMA_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:Sigma_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)SIGMA_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:Total") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:Total_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:Net") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)NET") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:Net_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)NET") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:MinX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)MIN_X") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:MinX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:MinY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)MIN_Y") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:MinY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:MaxX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)MAX_X") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:MaxX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)MAX_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:MaxY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)MAX_Y") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:MaxY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)MAX_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether centroid statistics are computed # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT1:ComputeCentroid") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)COMPUTE_CENTROID") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT1:ComputeCentroid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)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, "S03SIM-EA-FSCN-02:STAT1:CentroidThreshold") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)CENTROID_THRESHOLD") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:CentroidThreshold_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)CENTROID_THRESHOLD") + field(VAL, "0") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:CentroidTotal") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)CENTROID_TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:CentroidTotal_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)CENTROID_TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:CentroidX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)CENTROIDX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:CentroidX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)CENTROIDX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:CentroidY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)CENTROIDY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:CentroidY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)CENTROIDY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:SigmaX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)SIGMAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:SigmaX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)SIGMAX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:SigmaY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)SIGMAY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:SigmaY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)SIGMAY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:SigmaXY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)SIGMAXY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:SigmaXY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)SIGMAXY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:SkewX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)SKEWX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:SkewX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)SKEWX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:SkewY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)SKEWY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:SkewY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)SKEWY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:KurtosisX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)KURTOSISX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:KurtosisX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)KURTOSISX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:KurtosisY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)KURTOSISY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:KurtosisY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)KURTOSISY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:Eccentricity") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)ECCENTRICITY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:Eccentricity_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)ECCENTRICITY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:Orientation") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)ORIENTATION_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:Orientation_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)ORIENTATION_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control time series # +################################################################### +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSMinValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,0,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSMinX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,1,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSMinY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,2,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSMaxValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,3,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSMaxX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,4,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSMaxY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,5,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSMeanValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,6,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSSigma") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,7,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,8,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSNet") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,9,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSCentroidTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,10,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSCentroidX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,11,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSCentroidY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,12,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSSigmaX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,13,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSSigmaY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,14,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSSigmaXY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,15,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSSkewX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,16,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSSkewY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,17,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSKurtosisX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,18,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSKurtosisY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,19,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSEccentricity") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,20,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSOrientation") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,21,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSTimestamp") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1_TS,22,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control profiles # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT1:ComputeProfiles") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)COMPUTE_PROFILES") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT1:ComputeProfiles_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)COMPUTE_PROFILES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ProfileSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)PROFILE_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:ProfileSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)PROFILE_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT1:CursorX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)CURSOR_X") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:CursorX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)CURSOR_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT1:CursorY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)CURSOR_Y") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:CursorY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)CURSOR_Y") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:CursorVal") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)CURSOR_VAL") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:ProfileAverageX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)PROFILE_AVERAGE_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:ProfileAverageY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)PROFILE_AVERAGE_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:ProfileThresholdX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)PROFILE_THRESHOLD_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:ProfileThresholdY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)PROFILE_THRESHOLD_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:ProfileCentroidX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)PROFILE_CENTROID_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:ProfileCentroidY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)PROFILE_CENTROID_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:ProfileCursorX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)PROFILE_CURSOR_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:ProfileCursorY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)PROFILE_CURSOR_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These are used to define the histogram # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT1:ComputeHistogram") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)COMPUTE_HISTOGRAM") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT1:ComputeHistogram_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)COMPUTE_HISTOGRAM") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT1:HistSize") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)HIST_SIZE") + field(VAL, "256") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:HistSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)HIST_SIZE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:HistMin") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)HIST_MIN") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:HistMin_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)HIST_MIN") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:HistMax") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)HIST_MAX") + field(VAL, "255") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:HistMax_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)HIST_MAX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT1:HistBelow") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)HIST_BELOW") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:HistBelow_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)HIST_BELOW") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT1:HistAbove") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)HIST_ABOVE") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:HistAbove_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)HIST_ABOVE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT1:HistEntropy") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat1,0,1)HIST_ENTROPY") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT1:HistEntropy_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)HIST_ENTROPY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:Histogram_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)HIST_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT1:HistogramX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat1,0,1)HIST_X_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + 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, "S03SIM-EA-FSCN-02:STAT1:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:ProfileSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:STAT1:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:STAT1:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:STAT1:CursorX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT1:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT1:ProfileSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:STAT1:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:STAT1:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:STAT1:CursorY.HOPR NPP") +} + +################################################################### +# These records reset the statistics # +################################################################### +record(sseq, "S03SIM-EA-FSCN-02:STAT1:Reset") +{ + field(LNK1, "S03SIM-EA-FSCN-02:STAT1:MinValue PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:STAT1:MaxValue PP MS") + field(LNK3, "S03SIM-EA-FSCN-02:STAT1:MeanValue PP MS") + field(LNK4, "S03SIM-EA-FSCN-02:STAT1:SigmaValue PP MS") + field(LNK5, "S03SIM-EA-FSCN-02:STAT1:Total PP MS") + field(LNK6, "S03SIM-EA-FSCN-02:STAT1:Net PP MS") + field(LNK7, "S03SIM-EA-FSCN-02:STAT1:MinX PP MS") + field(LNK8, "S03SIM-EA-FSCN-02:STAT1:MinY PP MS") + field(LNK9, "S03SIM-EA-FSCN-02:STAT1:MaxX PP MS") + field(LNKA, "S03SIM-EA-FSCN-02:STAT1:MaxY PP MS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Reset1") +} + +record(sseq, "S03SIM-EA-FSCN-02:STAT1:Reset1") +{ + field(LNK1, "S03SIM-EA-FSCN-02:STAT1:CentroidX PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:STAT1:CentroidY PP MS") + field(LNK3, "S03SIM-EA-FSCN-02:STAT1:SigmaX PP MS") + field(LNK4, "S03SIM-EA-FSCN-02:STAT1:SigmaY PP MS") + field(LNK5, "S03SIM-EA-FSCN-02:STAT1:SigmaXY PP MS") + field(LNK6, "S03SIM-EA-FSCN-02:STAT1:CentroidTotal PP MS") + field(LNK7, "S03SIM-EA-FSCN-02:STAT1:SkewX PP MS") + field(LNK8, "S03SIM-EA-FSCN-02:STAT1:SkewY PP MS") + field(LNK9, "S03SIM-EA-FSCN-02:STAT1:KurtosisX PP MS") + field(LNKA, "S03SIM-EA-FSCN-02:STAT1:KurtosisY PP MS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Reset2") +} + +record(sseq, "S03SIM-EA-FSCN-02:STAT1:Reset2") +{ + field(LNK1, "S03SIM-EA-FSCN-02:STAT1:Eccentricity PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:STAT1:Orientation PP MS") + field(LNK3, "S03SIM-EA-FSCN-02:STAT1:HistBelow PP MS") + field(LNK4, "S03SIM-EA-FSCN-02:STAT1:HistAbove PP MS") + field(LNK5, "S03SIM-EA-FSCN-02:STAT1:HistEntropy PP MS") +} + +#=================================================================# +# Template file: NDStats.template + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, NCHANS, Number of channels +# % macro, XSIZE, x size +# % macro, YSIZE, y size +# % macro, HIST_SIZE, hist size +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Timeout +# % macro, TS_PORT, TS port + +# This associates the template with an edm screen +# % gui, FSCN2.stats.stat2, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-02,R=:STAT2: + +# This associates a BOY screen with the template +# % gui, FSCN2.stats.stat2, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-02, R=:STAT2:, DESC=Statistics +# % gui, FSCN2.stats.stat2, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:STAT2:, DESC=Statistics +# % gui, FSCN2.stats.stat2, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-02, R=:STAT2:, DESC=Statistics + + +# % gui, FSCN2.stats.stat2, groupHeading, Info +# % gui, FSCN2.stats.stat2, readback, Port name, S03SIM-EA-FSCN-02:STAT2:PortName_RBV +# % gui, FSCN2.stats.stat2, readback, Plugin type, S03SIM-EA-FSCN-02:STAT2:PluginType_RBV +# Input +# % gui, FSCN2.stats.stat2, demandString, Input, S03SIM-EA-FSCN-02:STAT2:NDArrayPort +# % gui, FSCN2.stats.stat2, readback, Input, S03SIM-EA-FSCN-02:STAT2:NDArrayPort_RBV + +# % gui, FSCN2.stats.stat2, groupHeading, Callback +# % gui, FSCN2.stats.stat2, enum, Callbacks, S03SIM-EA-FSCN-02:STAT2:EnableCallbacks +# % gui, FSCN2.stats.stat2, statusbits, Callbacks, S03SIM-EA-FSCN-02:STAT2:EnableCallbacks_RBV +# % gui, FSCN2.stats.stat2, demand, Min Callback Time, S03SIM-EA-FSCN-02:STAT2:MinCallbackTime +# % gui, FSCN2.stats.stat2, readback, Min Callback Time, S03SIM-EA-FSCN-02:STAT2:MinCallbackTime_RBV +# % gui, FSCN2.stats.stat2, enum, Block Callbacks, S03SIM-EA-FSCN-02:STAT2:BlockingCallbacks +# % gui, FSCN2.stats.stat2, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:STAT2:BlockingCallbacks_RBV + +# % gui, FSCN2.stats.stat2, groupHeading, Counters +# % gui, FSCN2.stats.stat2, demand, Array Counter, S03SIM-EA-FSCN-02:STAT2:ArrayCounter +# % gui, FSCN2.stats.stat2, readback, Array Counter, S03SIM-EA-FSCN-02:STAT2:ArrayCounter_RBV +# % gui, FSCN2.stats.stat2, readback, Array Rate (fps), S03SIM-EA-FSCN-02:STAT2:ArrayRate_RBV +# % gui, FSCN2.stats.stat2, readback, Queue Use, S03SIM-EA-FSCN-02:STAT2:QueueUse +# % gui, FSCN2.stats.stat2, readback, Queue Size, S03SIM-EA-FSCN-02:STAT2:QueueSize +# % gui, FSCN2.stats.stat2, demand, Dropped Arrays, S03SIM-EA-FSCN-02:STAT2:DroppedArrays +# % gui, FSCN2.stats.stat2, readback, Dropped Arrays, S03SIM-EA-FSCN-02:STAT2:DroppedArrays_RBV + +# % gui, FSCN2.stats.stat2, groupHeading, Array Settings +# % gui, FSCN2.stats.stat2, readback, Num Dimensions, S03SIM-EA-FSCN-02:STAT2:NDimensions_RBV +# % gui, FSCN2.stats.stat2, readback, Dim 0 Size, S03SIM-EA-FSCN-02:STAT2:ArraySize0_RBV +# % gui, FSCN2.stats.stat2, readback, Dim 1 Size, S03SIM-EA-FSCN-02:STAT2:ArraySize1_RBV +# % gui, FSCN2.stats.stat2, readback, Dim 2 Size, S03SIM-EA-FSCN-02:STAT2:ArraySize2_RBV +# % gui, FSCN2.stats.stat2, readback, Input Data Type, S03SIM-EA-FSCN-02:STAT2:DataType_RBV +# % gui, FSCN2.stats.stat2, readback, Colour Mode, S03SIM-EA-FSCN-02:STAT2:ColorMode_RBV +# % gui, FSCN2.stats.stat2, readback, Bayer Pattern, S03SIM-EA-FSCN-02:STAT2:BayerPattern_RBV +# % gui, FSCN2.stats.stat2, readback, Unique id, S03SIM-EA-FSCN-02:STAT2:UniqueId_RBV +# % gui, FSCN2.stats.stat2, readback, Timestamp, S03SIM-EA-FSCN-02:STAT2:TimeStamp_RBV + +# Output +# % gui, FSCN2.stats.stat2, groupHeading, Output +# % gui, FSCN2.stats.stat2, demand, Name, S03SIM-EA-FSCN-02:STAT2:Name +# % gui, FSCN2.stats.stat2, enum, Out data type, S03SIM-EA-FSCN-02:STAT2:DataTypeOut +# % gui, FSCN2.stats.stat2, readback, Out data type, S03SIM-EA-FSCN-02:STAT2:DataTypeOut_RBV +# % gui, FSCN2.stats.stat2, demand, Attributes file, S03SIM-EA-FSCN-02:STAT2:NDAttributesFile + +# Statistics +# % gui, FSCN2.stats.stat2, groupHeading, Statistics +# % gui, FSCN2.stats.stat2, enum, Compute Statistics, S03SIM-EA-FSCN-02:STAT2:ComputeStatistics +# % gui, FSCN2.stats.stat2, statusbits, Compute Statistics, S03SIM-EA-FSCN-02:STAT2:ComputeStatistics_RBV +# % gui, FSCN2.stats.stat2, demand, Background Width, S03SIM-EA-FSCN-02:STAT2:BgdWidth +# % gui, FSCN2.stats.stat2, readback, Background Width, S03SIM-EA-FSCN-02:STAT2:BgdWidth_RBV +# % gui, FSCN2.stats.stat2, readback, Minimum Value, S03SIM-EA-FSCN-02:STAT2:MinValue_RBV +# % gui, FSCN2.stats.stat2, readback, Minimum X, S03SIM-EA-FSCN-02:STAT2:MinX_RBV +# % gui, FSCN2.stats.stat2, readback, Minimum Y, S03SIM-EA-FSCN-02:STAT2:MinY_RBV +# % gui, FSCN2.stats.stat2, readback, Maximum Value, S03SIM-EA-FSCN-02:STAT2:MaxValue_RBV +# % gui, FSCN2.stats.stat2, readback, Maximum X, S03SIM-EA-FSCN-02:STAT2:MaxX_RBV +# % gui, FSCN2.stats.stat2, readback, Maximum Y, S03SIM-EA-FSCN-02:STAT2:MaxY_RBV +# % gui, FSCN2.stats.stat2, readback, Mean Value, S03SIM-EA-FSCN-02:STAT2:MeanValue_RBV +# % gui, FSCN2.stats.stat2, readback, Total, S03SIM-EA-FSCN-02:STAT2:Total_RBV +# % gui, FSCN2.stats.stat2, readback, Sigma, S03SIM-EA-FSCN-02:STAT2:Sigma_RBV +# % gui, FSCN2.stats.stat2, readback, Net, S03SIM-EA-FSCN-02:STAT2:Net_RBV +# Centroid +# % gui, FSCN2.stats.stat2, groupHeading, Centroid +# % gui, FSCN2.stats.stat2, enum, Compute Centroid, S03SIM-EA-FSCN-02:STAT2:ComputeCentroid +# % gui, FSCN2.stats.stat2, statusbits, Compute Centroid, S03SIM-EA-FSCN-02:STAT2:ComputeCentroid_RBV +# % gui, FSCN2.stats.stat2, demand, Threshold, S03SIM-EA-FSCN-02:STAT2:CentroidThreshold +# % gui, FSCN2.stats.stat2, readback, Threshold, S03SIM-EA-FSCN-02:STAT2:CentroidThreshold_RBV +# % gui, FSCN2.stats.stat2, readback, X, S03SIM-EA-FSCN-02:STAT2:CentroidX_RBV +# % gui, FSCN2.stats.stat2, readback, Sigma X, S03SIM-EA-FSCN-02:STAT2:SigmaX_RBV +# % gui, FSCN2.stats.stat2, readback, Y, S03SIM-EA-FSCN-02:STAT2:CentroidY_RBV +# % gui, FSCN2.stats.stat2, readback, Sigma Y, S03SIM-EA-FSCN-02:STAT2:SigmaY_RBV +# % gui, FSCN2.stats.stat2, readback, Sigma XY, S03SIM-EA-FSCN-02:STAT2:SigmaXY_RBV +# Histogram +# % gui, FSCN2.stats.stat2, groupHeading, Histogram +# % gui, FSCN2.stats.stat2, enum, Compute Histogram, S03SIM-EA-FSCN-02:STAT2:ComputeHistogram +# % gui, FSCN2.stats.stat2, statusbits, Compute Histogram, S03SIM-EA-FSCN-02:STAT2:ComputeHistogram_RBV +# % gui, FSCN2.stats.stat2, demand, Histogram Size, S03SIM-EA-FSCN-02:STAT2:HistSize +# % gui, FSCN2.stats.stat2, readback, Histogram Size, S03SIM-EA-FSCN-02:STAT2:HistSize_RBV +# % gui, FSCN2.stats.stat2, demand, Histogram Min, S03SIM-EA-FSCN-02:STAT2:HistMin +# % gui, FSCN2.stats.stat2, readback, Histogram Min, S03SIM-EA-FSCN-02:STAT2:HistMin_RBV +# % gui, FSCN2.stats.stat2, demand, Histogram Max, S03SIM-EA-FSCN-02:STAT2:HistMax +# % gui, FSCN2.stats.stat2, readback, Histogram Max, S03SIM-EA-FSCN-02:STAT2:HistMax_RBV +# % gui, FSCN2.stats.stat2, readback, Histogram Entropy, S03SIM-EA-FSCN-02:STAT2:HistEntropy_RBV +# Profiles +# % gui, FSCN2.stats.stat2, groupHeading, Profiles +# % gui, FSCN2.stats.stat2, enum, Compute Profiles, S03SIM-EA-FSCN-02:STAT2:ComputeProfiles +# % gui, FSCN2.stats.stat2, statusbits, Compute Profiles, S03SIM-EA-FSCN-02:STAT2:ComputeProfiles_RBV +# % gui, FSCN2.stats.stat2, demand, Cursor X, S03SIM-EA-FSCN-02:STAT2:CursorX +# % gui, FSCN2.stats.stat2, readback, Cursor X, S03SIM-EA-FSCN-02:STAT2:CursorX_RBV +# % gui, FSCN2.stats.stat2, demand, Cursor Y, S03SIM-EA-FSCN-02:STAT2:CursorY +# % gui, FSCN2.stats.stat2, readback, Cursor Y, S03SIM-EA-FSCN-02:STAT2:CursorY_RBV +# % gui, FSCN2.stats.stat2, readback, Size X, S03SIM-EA-FSCN-02:STAT2:ProfileSizeX_RBV +# % gui, FSCN2.stats.stat2, readback, Size Y, S03SIM-EA-FSCN-02:STAT2:ProfileSizeY_RBV +# Time series +# % gui, FSCN2.stats.stat2, groupHeading, Time Series +# % gui, FSCN2.stats.stat2, enum, Time Control, S03SIM-EA-FSCN-02:STAT2:TS:TSAcquire +# % gui, FSCN2.stats.stat2, statusbits, Acquiring, S03SIM-EA-FSCN-02:STAT2:TS:TSAcquiring +# % gui, FSCN2.stats.stat2, readback, Current Point, S03SIM-EA-FSCN-02:STAT2:TS:TSCurrentPoint +# % gui, FSCN2.stats.stat2, demand, Number of Points, S03SIM-EA-FSCN-02:STAT2:TS:TSNumPoints +# % gui, FSCN2.stats.stat2, enum, Update, S03SIM-EA-FSCN-02:STAT2:TS:TSRead.SCAN +# Memory +# % gui, FSCN2.stats.stat2, groupHeading, Memory +# % gui, FSCN2.stats.stat2, readback, Max memory, S03SIM-EA-FSCN-02:STAT2:PoolMaxMem +# % gui, FSCN2.stats.stat2, readback, Max buffers, S03SIM-EA-FSCN-02:STAT2:PoolMaxBuffers +# % gui, FSCN2.stats.stat2, readback, Used memory, S03SIM-EA-FSCN-02:STAT2:PoolUsedMem +# % gui, FSCN2.stats.stat2, readback, Allocated buffers, S03SIM-EA-FSCN-02:STAT2:PoolAllocBuffers +# % gui, FSCN2.stats.stat2, readback, Free buffers, S03SIM-EA-FSCN-02:STAT2:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT2:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT2:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT2:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT2:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT2:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT2:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT2:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT2:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:STAT2:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT2:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT2:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT2:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:STAT2:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT2:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT2:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:STAT2:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:STAT2:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:STAT2:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:STAT2:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:STAT2:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:STAT2:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:STAT2:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:STAT2:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:STAT2:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:STAT2:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:STAT2:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:STAT2:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:STAT2:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:STAT2:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT2:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:STAT2:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:STAT2:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT2:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT2:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:STAT2:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:STAT2:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:STAT2:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT2:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:STAT2:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:STAT2:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT2:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:STAT2:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.rois.roi1") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT2:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT2:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT2:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT2:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:STAT2:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT2:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT2:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:STAT2:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:STAT2:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT2:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:STAT2:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT2:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT2:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT2:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:STAT2:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT2:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT2:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:STAT2:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT2:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:STAT2:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:STAT2:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT2:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:STAT2:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:STAT2:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT2:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:STAT2:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:STAT2:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:STAT2:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT2:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:STAT2:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:STAT2:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT2:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT2:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:STAT2:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT2:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT2:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT2:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:STAT2:AsynIO") +{ + field(PORT, "FSCN2.stats.stat2") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records contain the basic statistics # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT2:ComputeStatistics") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)COMPUTE_STATISTICS") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT2:ComputeStatistics_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)COMPUTE_STATISTICS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT2:BgdWidth") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)BGD_WIDTH") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:BgdWidth_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)BGD_WIDTH") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:MinValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)MIN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:MinValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)MIN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:MaxValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)MAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:MaxValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)MAX_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:MeanValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)MEAN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:MeanValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)MEAN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:SigmaValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)SIGMA_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:Sigma_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)SIGMA_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:Total") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:Total_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:Net") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)NET") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:Net_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)NET") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:MinX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)MIN_X") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:MinX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:MinY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)MIN_Y") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:MinY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:MaxX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)MAX_X") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:MaxX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)MAX_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:MaxY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)MAX_Y") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:MaxY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)MAX_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether centroid statistics are computed # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT2:ComputeCentroid") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)COMPUTE_CENTROID") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT2:ComputeCentroid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)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, "S03SIM-EA-FSCN-02:STAT2:CentroidThreshold") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)CENTROID_THRESHOLD") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:CentroidThreshold_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)CENTROID_THRESHOLD") + field(VAL, "0") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:CentroidTotal") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)CENTROID_TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:CentroidTotal_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)CENTROID_TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:CentroidX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)CENTROIDX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:CentroidX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)CENTROIDX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:CentroidY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)CENTROIDY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:CentroidY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)CENTROIDY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:SigmaX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)SIGMAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:SigmaX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)SIGMAX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:SigmaY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)SIGMAY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:SigmaY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)SIGMAY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:SigmaXY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)SIGMAXY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:SigmaXY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)SIGMAXY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:SkewX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)SKEWX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:SkewX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)SKEWX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:SkewY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)SKEWY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:SkewY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)SKEWY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:KurtosisX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)KURTOSISX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:KurtosisX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)KURTOSISX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:KurtosisY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)KURTOSISY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:KurtosisY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)KURTOSISY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:Eccentricity") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)ECCENTRICITY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:Eccentricity_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)ECCENTRICITY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:Orientation") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)ORIENTATION_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:Orientation_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)ORIENTATION_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control time series # +################################################################### +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSMinValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,0,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSMinX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,1,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSMinY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,2,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSMaxValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,3,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSMaxX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,4,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSMaxY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,5,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSMeanValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,6,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSSigma") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,7,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,8,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSNet") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,9,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSCentroidTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,10,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSCentroidX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,11,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSCentroidY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,12,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSSigmaX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,13,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSSigmaY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,14,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSSigmaXY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,15,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSSkewX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,16,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSSkewY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,17,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSKurtosisX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,18,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSKurtosisY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,19,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSEccentricity") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,20,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSOrientation") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,21,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSTimestamp") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2_TS,22,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control profiles # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT2:ComputeProfiles") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)COMPUTE_PROFILES") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT2:ComputeProfiles_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)COMPUTE_PROFILES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ProfileSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)PROFILE_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:ProfileSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)PROFILE_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT2:CursorX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)CURSOR_X") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:CursorX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)CURSOR_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT2:CursorY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)CURSOR_Y") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:CursorY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)CURSOR_Y") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:CursorVal") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)CURSOR_VAL") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:ProfileAverageX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)PROFILE_AVERAGE_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:ProfileAverageY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)PROFILE_AVERAGE_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:ProfileThresholdX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)PROFILE_THRESHOLD_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:ProfileThresholdY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)PROFILE_THRESHOLD_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:ProfileCentroidX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)PROFILE_CENTROID_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:ProfileCentroidY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)PROFILE_CENTROID_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:ProfileCursorX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)PROFILE_CURSOR_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:ProfileCursorY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)PROFILE_CURSOR_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These are used to define the histogram # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT2:ComputeHistogram") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)COMPUTE_HISTOGRAM") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT2:ComputeHistogram_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)COMPUTE_HISTOGRAM") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT2:HistSize") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)HIST_SIZE") + field(VAL, "256") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:HistSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)HIST_SIZE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:HistMin") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)HIST_MIN") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:HistMin_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)HIST_MIN") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:HistMax") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)HIST_MAX") + field(VAL, "255") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:HistMax_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)HIST_MAX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT2:HistBelow") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)HIST_BELOW") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:HistBelow_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)HIST_BELOW") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT2:HistAbove") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)HIST_ABOVE") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:HistAbove_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)HIST_ABOVE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT2:HistEntropy") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat2,0,1)HIST_ENTROPY") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT2:HistEntropy_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)HIST_ENTROPY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:Histogram_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)HIST_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT2:HistogramX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat2,0,1)HIST_X_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + 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, "S03SIM-EA-FSCN-02:STAT2:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:ProfileSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:STAT2:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:STAT2:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:STAT2:CursorX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT2:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT2:ProfileSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:STAT2:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:STAT2:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:STAT2:CursorY.HOPR NPP") +} + +################################################################### +# These records reset the statistics # +################################################################### +record(sseq, "S03SIM-EA-FSCN-02:STAT2:Reset") +{ + field(LNK1, "S03SIM-EA-FSCN-02:STAT2:MinValue PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:STAT2:MaxValue PP MS") + field(LNK3, "S03SIM-EA-FSCN-02:STAT2:MeanValue PP MS") + field(LNK4, "S03SIM-EA-FSCN-02:STAT2:SigmaValue PP MS") + field(LNK5, "S03SIM-EA-FSCN-02:STAT2:Total PP MS") + field(LNK6, "S03SIM-EA-FSCN-02:STAT2:Net PP MS") + field(LNK7, "S03SIM-EA-FSCN-02:STAT2:MinX PP MS") + field(LNK8, "S03SIM-EA-FSCN-02:STAT2:MinY PP MS") + field(LNK9, "S03SIM-EA-FSCN-02:STAT2:MaxX PP MS") + field(LNKA, "S03SIM-EA-FSCN-02:STAT2:MaxY PP MS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Reset1") +} + +record(sseq, "S03SIM-EA-FSCN-02:STAT2:Reset1") +{ + field(LNK1, "S03SIM-EA-FSCN-02:STAT2:CentroidX PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:STAT2:CentroidY PP MS") + field(LNK3, "S03SIM-EA-FSCN-02:STAT2:SigmaX PP MS") + field(LNK4, "S03SIM-EA-FSCN-02:STAT2:SigmaY PP MS") + field(LNK5, "S03SIM-EA-FSCN-02:STAT2:SigmaXY PP MS") + field(LNK6, "S03SIM-EA-FSCN-02:STAT2:CentroidTotal PP MS") + field(LNK7, "S03SIM-EA-FSCN-02:STAT2:SkewX PP MS") + field(LNK8, "S03SIM-EA-FSCN-02:STAT2:SkewY PP MS") + field(LNK9, "S03SIM-EA-FSCN-02:STAT2:KurtosisX PP MS") + field(LNKA, "S03SIM-EA-FSCN-02:STAT2:KurtosisY PP MS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Reset2") +} + +record(sseq, "S03SIM-EA-FSCN-02:STAT2:Reset2") +{ + field(LNK1, "S03SIM-EA-FSCN-02:STAT2:Eccentricity PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:STAT2:Orientation PP MS") + field(LNK3, "S03SIM-EA-FSCN-02:STAT2:HistBelow PP MS") + field(LNK4, "S03SIM-EA-FSCN-02:STAT2:HistAbove PP MS") + field(LNK5, "S03SIM-EA-FSCN-02:STAT2:HistEntropy PP MS") +} + +#=================================================================# +# Template file: NDStats.template + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, NCHANS, Number of channels +# % macro, XSIZE, x size +# % macro, YSIZE, y size +# % macro, HIST_SIZE, hist size +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Timeout +# % macro, TS_PORT, TS port + +# This associates the template with an edm screen +# % gui, FSCN2.stats.stat3, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-02,R=:STAT3: + +# This associates a BOY screen with the template +# % gui, FSCN2.stats.stat3, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-02, R=:STAT3:, DESC=Statistics +# % gui, FSCN2.stats.stat3, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:STAT3:, DESC=Statistics +# % gui, FSCN2.stats.stat3, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-02, R=:STAT3:, DESC=Statistics + + +# % gui, FSCN2.stats.stat3, groupHeading, Info +# % gui, FSCN2.stats.stat3, readback, Port name, S03SIM-EA-FSCN-02:STAT3:PortName_RBV +# % gui, FSCN2.stats.stat3, readback, Plugin type, S03SIM-EA-FSCN-02:STAT3:PluginType_RBV +# Input +# % gui, FSCN2.stats.stat3, demandString, Input, S03SIM-EA-FSCN-02:STAT3:NDArrayPort +# % gui, FSCN2.stats.stat3, readback, Input, S03SIM-EA-FSCN-02:STAT3:NDArrayPort_RBV + +# % gui, FSCN2.stats.stat3, groupHeading, Callback +# % gui, FSCN2.stats.stat3, enum, Callbacks, S03SIM-EA-FSCN-02:STAT3:EnableCallbacks +# % gui, FSCN2.stats.stat3, statusbits, Callbacks, S03SIM-EA-FSCN-02:STAT3:EnableCallbacks_RBV +# % gui, FSCN2.stats.stat3, demand, Min Callback Time, S03SIM-EA-FSCN-02:STAT3:MinCallbackTime +# % gui, FSCN2.stats.stat3, readback, Min Callback Time, S03SIM-EA-FSCN-02:STAT3:MinCallbackTime_RBV +# % gui, FSCN2.stats.stat3, enum, Block Callbacks, S03SIM-EA-FSCN-02:STAT3:BlockingCallbacks +# % gui, FSCN2.stats.stat3, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:STAT3:BlockingCallbacks_RBV + +# % gui, FSCN2.stats.stat3, groupHeading, Counters +# % gui, FSCN2.stats.stat3, demand, Array Counter, S03SIM-EA-FSCN-02:STAT3:ArrayCounter +# % gui, FSCN2.stats.stat3, readback, Array Counter, S03SIM-EA-FSCN-02:STAT3:ArrayCounter_RBV +# % gui, FSCN2.stats.stat3, readback, Array Rate (fps), S03SIM-EA-FSCN-02:STAT3:ArrayRate_RBV +# % gui, FSCN2.stats.stat3, readback, Queue Use, S03SIM-EA-FSCN-02:STAT3:QueueUse +# % gui, FSCN2.stats.stat3, readback, Queue Size, S03SIM-EA-FSCN-02:STAT3:QueueSize +# % gui, FSCN2.stats.stat3, demand, Dropped Arrays, S03SIM-EA-FSCN-02:STAT3:DroppedArrays +# % gui, FSCN2.stats.stat3, readback, Dropped Arrays, S03SIM-EA-FSCN-02:STAT3:DroppedArrays_RBV + +# % gui, FSCN2.stats.stat3, groupHeading, Array Settings +# % gui, FSCN2.stats.stat3, readback, Num Dimensions, S03SIM-EA-FSCN-02:STAT3:NDimensions_RBV +# % gui, FSCN2.stats.stat3, readback, Dim 0 Size, S03SIM-EA-FSCN-02:STAT3:ArraySize0_RBV +# % gui, FSCN2.stats.stat3, readback, Dim 1 Size, S03SIM-EA-FSCN-02:STAT3:ArraySize1_RBV +# % gui, FSCN2.stats.stat3, readback, Dim 2 Size, S03SIM-EA-FSCN-02:STAT3:ArraySize2_RBV +# % gui, FSCN2.stats.stat3, readback, Input Data Type, S03SIM-EA-FSCN-02:STAT3:DataType_RBV +# % gui, FSCN2.stats.stat3, readback, Colour Mode, S03SIM-EA-FSCN-02:STAT3:ColorMode_RBV +# % gui, FSCN2.stats.stat3, readback, Bayer Pattern, S03SIM-EA-FSCN-02:STAT3:BayerPattern_RBV +# % gui, FSCN2.stats.stat3, readback, Unique id, S03SIM-EA-FSCN-02:STAT3:UniqueId_RBV +# % gui, FSCN2.stats.stat3, readback, Timestamp, S03SIM-EA-FSCN-02:STAT3:TimeStamp_RBV + +# Output +# % gui, FSCN2.stats.stat3, groupHeading, Output +# % gui, FSCN2.stats.stat3, demand, Name, S03SIM-EA-FSCN-02:STAT3:Name +# % gui, FSCN2.stats.stat3, enum, Out data type, S03SIM-EA-FSCN-02:STAT3:DataTypeOut +# % gui, FSCN2.stats.stat3, readback, Out data type, S03SIM-EA-FSCN-02:STAT3:DataTypeOut_RBV +# % gui, FSCN2.stats.stat3, demand, Attributes file, S03SIM-EA-FSCN-02:STAT3:NDAttributesFile + +# Statistics +# % gui, FSCN2.stats.stat3, groupHeading, Statistics +# % gui, FSCN2.stats.stat3, enum, Compute Statistics, S03SIM-EA-FSCN-02:STAT3:ComputeStatistics +# % gui, FSCN2.stats.stat3, statusbits, Compute Statistics, S03SIM-EA-FSCN-02:STAT3:ComputeStatistics_RBV +# % gui, FSCN2.stats.stat3, demand, Background Width, S03SIM-EA-FSCN-02:STAT3:BgdWidth +# % gui, FSCN2.stats.stat3, readback, Background Width, S03SIM-EA-FSCN-02:STAT3:BgdWidth_RBV +# % gui, FSCN2.stats.stat3, readback, Minimum Value, S03SIM-EA-FSCN-02:STAT3:MinValue_RBV +# % gui, FSCN2.stats.stat3, readback, Minimum X, S03SIM-EA-FSCN-02:STAT3:MinX_RBV +# % gui, FSCN2.stats.stat3, readback, Minimum Y, S03SIM-EA-FSCN-02:STAT3:MinY_RBV +# % gui, FSCN2.stats.stat3, readback, Maximum Value, S03SIM-EA-FSCN-02:STAT3:MaxValue_RBV +# % gui, FSCN2.stats.stat3, readback, Maximum X, S03SIM-EA-FSCN-02:STAT3:MaxX_RBV +# % gui, FSCN2.stats.stat3, readback, Maximum Y, S03SIM-EA-FSCN-02:STAT3:MaxY_RBV +# % gui, FSCN2.stats.stat3, readback, Mean Value, S03SIM-EA-FSCN-02:STAT3:MeanValue_RBV +# % gui, FSCN2.stats.stat3, readback, Total, S03SIM-EA-FSCN-02:STAT3:Total_RBV +# % gui, FSCN2.stats.stat3, readback, Sigma, S03SIM-EA-FSCN-02:STAT3:Sigma_RBV +# % gui, FSCN2.stats.stat3, readback, Net, S03SIM-EA-FSCN-02:STAT3:Net_RBV +# Centroid +# % gui, FSCN2.stats.stat3, groupHeading, Centroid +# % gui, FSCN2.stats.stat3, enum, Compute Centroid, S03SIM-EA-FSCN-02:STAT3:ComputeCentroid +# % gui, FSCN2.stats.stat3, statusbits, Compute Centroid, S03SIM-EA-FSCN-02:STAT3:ComputeCentroid_RBV +# % gui, FSCN2.stats.stat3, demand, Threshold, S03SIM-EA-FSCN-02:STAT3:CentroidThreshold +# % gui, FSCN2.stats.stat3, readback, Threshold, S03SIM-EA-FSCN-02:STAT3:CentroidThreshold_RBV +# % gui, FSCN2.stats.stat3, readback, X, S03SIM-EA-FSCN-02:STAT3:CentroidX_RBV +# % gui, FSCN2.stats.stat3, readback, Sigma X, S03SIM-EA-FSCN-02:STAT3:SigmaX_RBV +# % gui, FSCN2.stats.stat3, readback, Y, S03SIM-EA-FSCN-02:STAT3:CentroidY_RBV +# % gui, FSCN2.stats.stat3, readback, Sigma Y, S03SIM-EA-FSCN-02:STAT3:SigmaY_RBV +# % gui, FSCN2.stats.stat3, readback, Sigma XY, S03SIM-EA-FSCN-02:STAT3:SigmaXY_RBV +# Histogram +# % gui, FSCN2.stats.stat3, groupHeading, Histogram +# % gui, FSCN2.stats.stat3, enum, Compute Histogram, S03SIM-EA-FSCN-02:STAT3:ComputeHistogram +# % gui, FSCN2.stats.stat3, statusbits, Compute Histogram, S03SIM-EA-FSCN-02:STAT3:ComputeHistogram_RBV +# % gui, FSCN2.stats.stat3, demand, Histogram Size, S03SIM-EA-FSCN-02:STAT3:HistSize +# % gui, FSCN2.stats.stat3, readback, Histogram Size, S03SIM-EA-FSCN-02:STAT3:HistSize_RBV +# % gui, FSCN2.stats.stat3, demand, Histogram Min, S03SIM-EA-FSCN-02:STAT3:HistMin +# % gui, FSCN2.stats.stat3, readback, Histogram Min, S03SIM-EA-FSCN-02:STAT3:HistMin_RBV +# % gui, FSCN2.stats.stat3, demand, Histogram Max, S03SIM-EA-FSCN-02:STAT3:HistMax +# % gui, FSCN2.stats.stat3, readback, Histogram Max, S03SIM-EA-FSCN-02:STAT3:HistMax_RBV +# % gui, FSCN2.stats.stat3, readback, Histogram Entropy, S03SIM-EA-FSCN-02:STAT3:HistEntropy_RBV +# Profiles +# % gui, FSCN2.stats.stat3, groupHeading, Profiles +# % gui, FSCN2.stats.stat3, enum, Compute Profiles, S03SIM-EA-FSCN-02:STAT3:ComputeProfiles +# % gui, FSCN2.stats.stat3, statusbits, Compute Profiles, S03SIM-EA-FSCN-02:STAT3:ComputeProfiles_RBV +# % gui, FSCN2.stats.stat3, demand, Cursor X, S03SIM-EA-FSCN-02:STAT3:CursorX +# % gui, FSCN2.stats.stat3, readback, Cursor X, S03SIM-EA-FSCN-02:STAT3:CursorX_RBV +# % gui, FSCN2.stats.stat3, demand, Cursor Y, S03SIM-EA-FSCN-02:STAT3:CursorY +# % gui, FSCN2.stats.stat3, readback, Cursor Y, S03SIM-EA-FSCN-02:STAT3:CursorY_RBV +# % gui, FSCN2.stats.stat3, readback, Size X, S03SIM-EA-FSCN-02:STAT3:ProfileSizeX_RBV +# % gui, FSCN2.stats.stat3, readback, Size Y, S03SIM-EA-FSCN-02:STAT3:ProfileSizeY_RBV +# Time series +# % gui, FSCN2.stats.stat3, groupHeading, Time Series +# % gui, FSCN2.stats.stat3, enum, Time Control, S03SIM-EA-FSCN-02:STAT3:TS:TSAcquire +# % gui, FSCN2.stats.stat3, statusbits, Acquiring, S03SIM-EA-FSCN-02:STAT3:TS:TSAcquiring +# % gui, FSCN2.stats.stat3, readback, Current Point, S03SIM-EA-FSCN-02:STAT3:TS:TSCurrentPoint +# % gui, FSCN2.stats.stat3, demand, Number of Points, S03SIM-EA-FSCN-02:STAT3:TS:TSNumPoints +# % gui, FSCN2.stats.stat3, enum, Update, S03SIM-EA-FSCN-02:STAT3:TS:TSRead.SCAN +# Memory +# % gui, FSCN2.stats.stat3, groupHeading, Memory +# % gui, FSCN2.stats.stat3, readback, Max memory, S03SIM-EA-FSCN-02:STAT3:PoolMaxMem +# % gui, FSCN2.stats.stat3, readback, Max buffers, S03SIM-EA-FSCN-02:STAT3:PoolMaxBuffers +# % gui, FSCN2.stats.stat3, readback, Used memory, S03SIM-EA-FSCN-02:STAT3:PoolUsedMem +# % gui, FSCN2.stats.stat3, readback, Allocated buffers, S03SIM-EA-FSCN-02:STAT3:PoolAllocBuffers +# % gui, FSCN2.stats.stat3, readback, Free buffers, S03SIM-EA-FSCN-02:STAT3:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT3:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT3:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT3:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT3:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT3:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT3:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT3:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT3:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:STAT3:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT3:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT3:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT3:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:STAT3:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT3:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT3:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:STAT3:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:STAT3:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:STAT3:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:STAT3:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:STAT3:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:STAT3:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:STAT3:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:STAT3:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:STAT3:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:STAT3:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:STAT3:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:STAT3:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:STAT3:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:STAT3:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT3:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:STAT3:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:STAT3:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT3:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT3:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:STAT3:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:STAT3:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:STAT3:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT3:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:STAT3:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:STAT3:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT3:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:STAT3:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.rois.roi1") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT3:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT3:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT3:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT3:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:STAT3:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT3:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT3:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:STAT3:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:STAT3:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT3:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:STAT3:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT3:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT3:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT3:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:STAT3:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT3:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT3:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:STAT3:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT3:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:STAT3:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:STAT3:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT3:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:STAT3:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:STAT3:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT3:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:STAT3:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:STAT3:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:STAT3:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT3:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:STAT3:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:STAT3:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT3:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT3:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:STAT3:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT3:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT3:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT3:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:STAT3:AsynIO") +{ + field(PORT, "FSCN2.stats.stat3") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records contain the basic statistics # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT3:ComputeStatistics") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)COMPUTE_STATISTICS") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT3:ComputeStatistics_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)COMPUTE_STATISTICS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT3:BgdWidth") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)BGD_WIDTH") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:BgdWidth_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)BGD_WIDTH") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:MinValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)MIN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:MinValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)MIN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:MaxValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)MAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:MaxValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)MAX_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:MeanValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)MEAN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:MeanValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)MEAN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:SigmaValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)SIGMA_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:Sigma_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)SIGMA_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:Total") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:Total_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:Net") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)NET") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:Net_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)NET") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:MinX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)MIN_X") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:MinX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:MinY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)MIN_Y") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:MinY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:MaxX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)MAX_X") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:MaxX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)MAX_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:MaxY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)MAX_Y") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:MaxY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)MAX_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether centroid statistics are computed # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT3:ComputeCentroid") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)COMPUTE_CENTROID") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT3:ComputeCentroid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)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, "S03SIM-EA-FSCN-02:STAT3:CentroidThreshold") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)CENTROID_THRESHOLD") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:CentroidThreshold_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)CENTROID_THRESHOLD") + field(VAL, "0") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:CentroidTotal") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)CENTROID_TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:CentroidTotal_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)CENTROID_TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:CentroidX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)CENTROIDX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:CentroidX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)CENTROIDX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:CentroidY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)CENTROIDY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:CentroidY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)CENTROIDY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:SigmaX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)SIGMAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:SigmaX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)SIGMAX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:SigmaY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)SIGMAY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:SigmaY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)SIGMAY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:SigmaXY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)SIGMAXY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:SigmaXY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)SIGMAXY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:SkewX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)SKEWX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:SkewX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)SKEWX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:SkewY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)SKEWY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:SkewY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)SKEWY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:KurtosisX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)KURTOSISX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:KurtosisX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)KURTOSISX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:KurtosisY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)KURTOSISY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:KurtosisY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)KURTOSISY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:Eccentricity") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)ECCENTRICITY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:Eccentricity_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)ECCENTRICITY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:Orientation") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)ORIENTATION_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:Orientation_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)ORIENTATION_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control time series # +################################################################### +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSMinValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,0,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSMinX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,1,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSMinY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,2,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSMaxValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,3,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSMaxX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,4,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSMaxY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,5,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSMeanValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,6,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSSigma") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,7,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,8,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSNet") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,9,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSCentroidTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,10,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSCentroidX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,11,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSCentroidY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,12,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSSigmaX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,13,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSSigmaY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,14,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSSigmaXY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,15,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSSkewX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,16,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSSkewY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,17,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSKurtosisX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,18,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSKurtosisY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,19,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSEccentricity") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,20,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSOrientation") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,21,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSTimestamp") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3_TS,22,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control profiles # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT3:ComputeProfiles") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)COMPUTE_PROFILES") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT3:ComputeProfiles_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)COMPUTE_PROFILES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ProfileSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)PROFILE_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:ProfileSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)PROFILE_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT3:CursorX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)CURSOR_X") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:CursorX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)CURSOR_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT3:CursorY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)CURSOR_Y") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:CursorY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)CURSOR_Y") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:CursorVal") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)CURSOR_VAL") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:ProfileAverageX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)PROFILE_AVERAGE_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:ProfileAverageY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)PROFILE_AVERAGE_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:ProfileThresholdX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)PROFILE_THRESHOLD_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:ProfileThresholdY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)PROFILE_THRESHOLD_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:ProfileCentroidX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)PROFILE_CENTROID_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:ProfileCentroidY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)PROFILE_CENTROID_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:ProfileCursorX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)PROFILE_CURSOR_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:ProfileCursorY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)PROFILE_CURSOR_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These are used to define the histogram # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT3:ComputeHistogram") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)COMPUTE_HISTOGRAM") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT3:ComputeHistogram_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)COMPUTE_HISTOGRAM") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT3:HistSize") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)HIST_SIZE") + field(VAL, "256") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:HistSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)HIST_SIZE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:HistMin") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)HIST_MIN") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:HistMin_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)HIST_MIN") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:HistMax") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)HIST_MAX") + field(VAL, "255") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:HistMax_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)HIST_MAX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT3:HistBelow") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)HIST_BELOW") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:HistBelow_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)HIST_BELOW") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT3:HistAbove") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)HIST_ABOVE") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:HistAbove_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)HIST_ABOVE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT3:HistEntropy") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat3,0,1)HIST_ENTROPY") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT3:HistEntropy_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)HIST_ENTROPY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:Histogram_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)HIST_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT3:HistogramX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat3,0,1)HIST_X_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + 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, "S03SIM-EA-FSCN-02:STAT3:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:ProfileSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:STAT3:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:STAT3:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:STAT3:CursorX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT3:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT3:ProfileSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:STAT3:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:STAT3:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:STAT3:CursorY.HOPR NPP") +} + +################################################################### +# These records reset the statistics # +################################################################### +record(sseq, "S03SIM-EA-FSCN-02:STAT3:Reset") +{ + field(LNK1, "S03SIM-EA-FSCN-02:STAT3:MinValue PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:STAT3:MaxValue PP MS") + field(LNK3, "S03SIM-EA-FSCN-02:STAT3:MeanValue PP MS") + field(LNK4, "S03SIM-EA-FSCN-02:STAT3:SigmaValue PP MS") + field(LNK5, "S03SIM-EA-FSCN-02:STAT3:Total PP MS") + field(LNK6, "S03SIM-EA-FSCN-02:STAT3:Net PP MS") + field(LNK7, "S03SIM-EA-FSCN-02:STAT3:MinX PP MS") + field(LNK8, "S03SIM-EA-FSCN-02:STAT3:MinY PP MS") + field(LNK9, "S03SIM-EA-FSCN-02:STAT3:MaxX PP MS") + field(LNKA, "S03SIM-EA-FSCN-02:STAT3:MaxY PP MS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Reset1") +} + +record(sseq, "S03SIM-EA-FSCN-02:STAT3:Reset1") +{ + field(LNK1, "S03SIM-EA-FSCN-02:STAT3:CentroidX PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:STAT3:CentroidY PP MS") + field(LNK3, "S03SIM-EA-FSCN-02:STAT3:SigmaX PP MS") + field(LNK4, "S03SIM-EA-FSCN-02:STAT3:SigmaY PP MS") + field(LNK5, "S03SIM-EA-FSCN-02:STAT3:SigmaXY PP MS") + field(LNK6, "S03SIM-EA-FSCN-02:STAT3:CentroidTotal PP MS") + field(LNK7, "S03SIM-EA-FSCN-02:STAT3:SkewX PP MS") + field(LNK8, "S03SIM-EA-FSCN-02:STAT3:SkewY PP MS") + field(LNK9, "S03SIM-EA-FSCN-02:STAT3:KurtosisX PP MS") + field(LNKA, "S03SIM-EA-FSCN-02:STAT3:KurtosisY PP MS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Reset2") +} + +record(sseq, "S03SIM-EA-FSCN-02:STAT3:Reset2") +{ + field(LNK1, "S03SIM-EA-FSCN-02:STAT3:Eccentricity PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:STAT3:Orientation PP MS") + field(LNK3, "S03SIM-EA-FSCN-02:STAT3:HistBelow PP MS") + field(LNK4, "S03SIM-EA-FSCN-02:STAT3:HistAbove PP MS") + field(LNK5, "S03SIM-EA-FSCN-02:STAT3:HistEntropy PP MS") +} + +#=================================================================# +# Template file: NDStats.template + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, NCHANS, Number of channels +# % macro, XSIZE, x size +# % macro, YSIZE, y size +# % macro, HIST_SIZE, hist size +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Timeout +# % macro, TS_PORT, TS port + +# This associates the template with an edm screen +# % gui, FSCN2.stats.stat4, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-02,R=:STAT4: + +# This associates a BOY screen with the template +# % gui, FSCN2.stats.stat4, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-02, R=:STAT4:, DESC=Statistics +# % gui, FSCN2.stats.stat4, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:STAT4:, DESC=Statistics +# % gui, FSCN2.stats.stat4, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-02, R=:STAT4:, DESC=Statistics + + +# % gui, FSCN2.stats.stat4, groupHeading, Info +# % gui, FSCN2.stats.stat4, readback, Port name, S03SIM-EA-FSCN-02:STAT4:PortName_RBV +# % gui, FSCN2.stats.stat4, readback, Plugin type, S03SIM-EA-FSCN-02:STAT4:PluginType_RBV +# Input +# % gui, FSCN2.stats.stat4, demandString, Input, S03SIM-EA-FSCN-02:STAT4:NDArrayPort +# % gui, FSCN2.stats.stat4, readback, Input, S03SIM-EA-FSCN-02:STAT4:NDArrayPort_RBV + +# % gui, FSCN2.stats.stat4, groupHeading, Callback +# % gui, FSCN2.stats.stat4, enum, Callbacks, S03SIM-EA-FSCN-02:STAT4:EnableCallbacks +# % gui, FSCN2.stats.stat4, statusbits, Callbacks, S03SIM-EA-FSCN-02:STAT4:EnableCallbacks_RBV +# % gui, FSCN2.stats.stat4, demand, Min Callback Time, S03SIM-EA-FSCN-02:STAT4:MinCallbackTime +# % gui, FSCN2.stats.stat4, readback, Min Callback Time, S03SIM-EA-FSCN-02:STAT4:MinCallbackTime_RBV +# % gui, FSCN2.stats.stat4, enum, Block Callbacks, S03SIM-EA-FSCN-02:STAT4:BlockingCallbacks +# % gui, FSCN2.stats.stat4, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:STAT4:BlockingCallbacks_RBV + +# % gui, FSCN2.stats.stat4, groupHeading, Counters +# % gui, FSCN2.stats.stat4, demand, Array Counter, S03SIM-EA-FSCN-02:STAT4:ArrayCounter +# % gui, FSCN2.stats.stat4, readback, Array Counter, S03SIM-EA-FSCN-02:STAT4:ArrayCounter_RBV +# % gui, FSCN2.stats.stat4, readback, Array Rate (fps), S03SIM-EA-FSCN-02:STAT4:ArrayRate_RBV +# % gui, FSCN2.stats.stat4, readback, Queue Use, S03SIM-EA-FSCN-02:STAT4:QueueUse +# % gui, FSCN2.stats.stat4, readback, Queue Size, S03SIM-EA-FSCN-02:STAT4:QueueSize +# % gui, FSCN2.stats.stat4, demand, Dropped Arrays, S03SIM-EA-FSCN-02:STAT4:DroppedArrays +# % gui, FSCN2.stats.stat4, readback, Dropped Arrays, S03SIM-EA-FSCN-02:STAT4:DroppedArrays_RBV + +# % gui, FSCN2.stats.stat4, groupHeading, Array Settings +# % gui, FSCN2.stats.stat4, readback, Num Dimensions, S03SIM-EA-FSCN-02:STAT4:NDimensions_RBV +# % gui, FSCN2.stats.stat4, readback, Dim 0 Size, S03SIM-EA-FSCN-02:STAT4:ArraySize0_RBV +# % gui, FSCN2.stats.stat4, readback, Dim 1 Size, S03SIM-EA-FSCN-02:STAT4:ArraySize1_RBV +# % gui, FSCN2.stats.stat4, readback, Dim 2 Size, S03SIM-EA-FSCN-02:STAT4:ArraySize2_RBV +# % gui, FSCN2.stats.stat4, readback, Input Data Type, S03SIM-EA-FSCN-02:STAT4:DataType_RBV +# % gui, FSCN2.stats.stat4, readback, Colour Mode, S03SIM-EA-FSCN-02:STAT4:ColorMode_RBV +# % gui, FSCN2.stats.stat4, readback, Bayer Pattern, S03SIM-EA-FSCN-02:STAT4:BayerPattern_RBV +# % gui, FSCN2.stats.stat4, readback, Unique id, S03SIM-EA-FSCN-02:STAT4:UniqueId_RBV +# % gui, FSCN2.stats.stat4, readback, Timestamp, S03SIM-EA-FSCN-02:STAT4:TimeStamp_RBV + +# Output +# % gui, FSCN2.stats.stat4, groupHeading, Output +# % gui, FSCN2.stats.stat4, demand, Name, S03SIM-EA-FSCN-02:STAT4:Name +# % gui, FSCN2.stats.stat4, enum, Out data type, S03SIM-EA-FSCN-02:STAT4:DataTypeOut +# % gui, FSCN2.stats.stat4, readback, Out data type, S03SIM-EA-FSCN-02:STAT4:DataTypeOut_RBV +# % gui, FSCN2.stats.stat4, demand, Attributes file, S03SIM-EA-FSCN-02:STAT4:NDAttributesFile + +# Statistics +# % gui, FSCN2.stats.stat4, groupHeading, Statistics +# % gui, FSCN2.stats.stat4, enum, Compute Statistics, S03SIM-EA-FSCN-02:STAT4:ComputeStatistics +# % gui, FSCN2.stats.stat4, statusbits, Compute Statistics, S03SIM-EA-FSCN-02:STAT4:ComputeStatistics_RBV +# % gui, FSCN2.stats.stat4, demand, Background Width, S03SIM-EA-FSCN-02:STAT4:BgdWidth +# % gui, FSCN2.stats.stat4, readback, Background Width, S03SIM-EA-FSCN-02:STAT4:BgdWidth_RBV +# % gui, FSCN2.stats.stat4, readback, Minimum Value, S03SIM-EA-FSCN-02:STAT4:MinValue_RBV +# % gui, FSCN2.stats.stat4, readback, Minimum X, S03SIM-EA-FSCN-02:STAT4:MinX_RBV +# % gui, FSCN2.stats.stat4, readback, Minimum Y, S03SIM-EA-FSCN-02:STAT4:MinY_RBV +# % gui, FSCN2.stats.stat4, readback, Maximum Value, S03SIM-EA-FSCN-02:STAT4:MaxValue_RBV +# % gui, FSCN2.stats.stat4, readback, Maximum X, S03SIM-EA-FSCN-02:STAT4:MaxX_RBV +# % gui, FSCN2.stats.stat4, readback, Maximum Y, S03SIM-EA-FSCN-02:STAT4:MaxY_RBV +# % gui, FSCN2.stats.stat4, readback, Mean Value, S03SIM-EA-FSCN-02:STAT4:MeanValue_RBV +# % gui, FSCN2.stats.stat4, readback, Total, S03SIM-EA-FSCN-02:STAT4:Total_RBV +# % gui, FSCN2.stats.stat4, readback, Sigma, S03SIM-EA-FSCN-02:STAT4:Sigma_RBV +# % gui, FSCN2.stats.stat4, readback, Net, S03SIM-EA-FSCN-02:STAT4:Net_RBV +# Centroid +# % gui, FSCN2.stats.stat4, groupHeading, Centroid +# % gui, FSCN2.stats.stat4, enum, Compute Centroid, S03SIM-EA-FSCN-02:STAT4:ComputeCentroid +# % gui, FSCN2.stats.stat4, statusbits, Compute Centroid, S03SIM-EA-FSCN-02:STAT4:ComputeCentroid_RBV +# % gui, FSCN2.stats.stat4, demand, Threshold, S03SIM-EA-FSCN-02:STAT4:CentroidThreshold +# % gui, FSCN2.stats.stat4, readback, Threshold, S03SIM-EA-FSCN-02:STAT4:CentroidThreshold_RBV +# % gui, FSCN2.stats.stat4, readback, X, S03SIM-EA-FSCN-02:STAT4:CentroidX_RBV +# % gui, FSCN2.stats.stat4, readback, Sigma X, S03SIM-EA-FSCN-02:STAT4:SigmaX_RBV +# % gui, FSCN2.stats.stat4, readback, Y, S03SIM-EA-FSCN-02:STAT4:CentroidY_RBV +# % gui, FSCN2.stats.stat4, readback, Sigma Y, S03SIM-EA-FSCN-02:STAT4:SigmaY_RBV +# % gui, FSCN2.stats.stat4, readback, Sigma XY, S03SIM-EA-FSCN-02:STAT4:SigmaXY_RBV +# Histogram +# % gui, FSCN2.stats.stat4, groupHeading, Histogram +# % gui, FSCN2.stats.stat4, enum, Compute Histogram, S03SIM-EA-FSCN-02:STAT4:ComputeHistogram +# % gui, FSCN2.stats.stat4, statusbits, Compute Histogram, S03SIM-EA-FSCN-02:STAT4:ComputeHistogram_RBV +# % gui, FSCN2.stats.stat4, demand, Histogram Size, S03SIM-EA-FSCN-02:STAT4:HistSize +# % gui, FSCN2.stats.stat4, readback, Histogram Size, S03SIM-EA-FSCN-02:STAT4:HistSize_RBV +# % gui, FSCN2.stats.stat4, demand, Histogram Min, S03SIM-EA-FSCN-02:STAT4:HistMin +# % gui, FSCN2.stats.stat4, readback, Histogram Min, S03SIM-EA-FSCN-02:STAT4:HistMin_RBV +# % gui, FSCN2.stats.stat4, demand, Histogram Max, S03SIM-EA-FSCN-02:STAT4:HistMax +# % gui, FSCN2.stats.stat4, readback, Histogram Max, S03SIM-EA-FSCN-02:STAT4:HistMax_RBV +# % gui, FSCN2.stats.stat4, readback, Histogram Entropy, S03SIM-EA-FSCN-02:STAT4:HistEntropy_RBV +# Profiles +# % gui, FSCN2.stats.stat4, groupHeading, Profiles +# % gui, FSCN2.stats.stat4, enum, Compute Profiles, S03SIM-EA-FSCN-02:STAT4:ComputeProfiles +# % gui, FSCN2.stats.stat4, statusbits, Compute Profiles, S03SIM-EA-FSCN-02:STAT4:ComputeProfiles_RBV +# % gui, FSCN2.stats.stat4, demand, Cursor X, S03SIM-EA-FSCN-02:STAT4:CursorX +# % gui, FSCN2.stats.stat4, readback, Cursor X, S03SIM-EA-FSCN-02:STAT4:CursorX_RBV +# % gui, FSCN2.stats.stat4, demand, Cursor Y, S03SIM-EA-FSCN-02:STAT4:CursorY +# % gui, FSCN2.stats.stat4, readback, Cursor Y, S03SIM-EA-FSCN-02:STAT4:CursorY_RBV +# % gui, FSCN2.stats.stat4, readback, Size X, S03SIM-EA-FSCN-02:STAT4:ProfileSizeX_RBV +# % gui, FSCN2.stats.stat4, readback, Size Y, S03SIM-EA-FSCN-02:STAT4:ProfileSizeY_RBV +# Time series +# % gui, FSCN2.stats.stat4, groupHeading, Time Series +# % gui, FSCN2.stats.stat4, enum, Time Control, S03SIM-EA-FSCN-02:STAT4:TS:TSAcquire +# % gui, FSCN2.stats.stat4, statusbits, Acquiring, S03SIM-EA-FSCN-02:STAT4:TS:TSAcquiring +# % gui, FSCN2.stats.stat4, readback, Current Point, S03SIM-EA-FSCN-02:STAT4:TS:TSCurrentPoint +# % gui, FSCN2.stats.stat4, demand, Number of Points, S03SIM-EA-FSCN-02:STAT4:TS:TSNumPoints +# % gui, FSCN2.stats.stat4, enum, Update, S03SIM-EA-FSCN-02:STAT4:TS:TSRead.SCAN +# Memory +# % gui, FSCN2.stats.stat4, groupHeading, Memory +# % gui, FSCN2.stats.stat4, readback, Max memory, S03SIM-EA-FSCN-02:STAT4:PoolMaxMem +# % gui, FSCN2.stats.stat4, readback, Max buffers, S03SIM-EA-FSCN-02:STAT4:PoolMaxBuffers +# % gui, FSCN2.stats.stat4, readback, Used memory, S03SIM-EA-FSCN-02:STAT4:PoolUsedMem +# % gui, FSCN2.stats.stat4, readback, Allocated buffers, S03SIM-EA-FSCN-02:STAT4:PoolAllocBuffers +# % gui, FSCN2.stats.stat4, readback, Free buffers, S03SIM-EA-FSCN-02:STAT4:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT4:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT4:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT4:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT4:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT4:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT4:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT4:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT4:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:STAT4:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT4:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT4:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT4:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:STAT4:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT4:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT4:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:STAT4:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:STAT4:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:STAT4:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:STAT4:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:STAT4:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:STAT4:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:STAT4:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:STAT4:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:STAT4:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:STAT4:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:STAT4:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:STAT4:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:STAT4:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:STAT4:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT4:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:STAT4:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:STAT4:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT4:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT4:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:STAT4:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:STAT4:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:STAT4:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT4:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:STAT4:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:STAT4:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT4:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:STAT4:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.rois.roi1") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT4:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT4:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT4:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT4:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:STAT4:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT4:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT4:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:STAT4:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:STAT4:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT4:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:STAT4:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT4:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT4:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT4:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:STAT4:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT4:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT4:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:STAT4:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT4:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:STAT4:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:STAT4:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT4:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:STAT4:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:STAT4:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT4:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:STAT4:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:STAT4:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:STAT4:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT4:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:STAT4:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:STAT4:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT4:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT4:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:STAT4:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT4:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT4:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT4:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:STAT4:AsynIO") +{ + field(PORT, "FSCN2.stats.stat4") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records contain the basic statistics # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT4:ComputeStatistics") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)COMPUTE_STATISTICS") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT4:ComputeStatistics_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)COMPUTE_STATISTICS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT4:BgdWidth") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)BGD_WIDTH") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:BgdWidth_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)BGD_WIDTH") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:MinValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)MIN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:MinValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)MIN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:MaxValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)MAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:MaxValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)MAX_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:MeanValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)MEAN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:MeanValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)MEAN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:SigmaValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)SIGMA_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:Sigma_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)SIGMA_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:Total") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:Total_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:Net") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)NET") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:Net_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)NET") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:MinX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)MIN_X") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:MinX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:MinY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)MIN_Y") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:MinY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:MaxX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)MAX_X") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:MaxX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)MAX_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:MaxY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)MAX_Y") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:MaxY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)MAX_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether centroid statistics are computed # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT4:ComputeCentroid") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)COMPUTE_CENTROID") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT4:ComputeCentroid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)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, "S03SIM-EA-FSCN-02:STAT4:CentroidThreshold") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)CENTROID_THRESHOLD") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:CentroidThreshold_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)CENTROID_THRESHOLD") + field(VAL, "0") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:CentroidTotal") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)CENTROID_TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:CentroidTotal_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)CENTROID_TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:CentroidX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)CENTROIDX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:CentroidX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)CENTROIDX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:CentroidY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)CENTROIDY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:CentroidY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)CENTROIDY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:SigmaX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)SIGMAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:SigmaX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)SIGMAX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:SigmaY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)SIGMAY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:SigmaY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)SIGMAY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:SigmaXY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)SIGMAXY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:SigmaXY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)SIGMAXY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:SkewX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)SKEWX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:SkewX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)SKEWX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:SkewY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)SKEWY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:SkewY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)SKEWY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:KurtosisX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)KURTOSISX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:KurtosisX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)KURTOSISX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:KurtosisY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)KURTOSISY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:KurtosisY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)KURTOSISY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:Eccentricity") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)ECCENTRICITY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:Eccentricity_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)ECCENTRICITY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:Orientation") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)ORIENTATION_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:Orientation_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)ORIENTATION_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control time series # +################################################################### +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSMinValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,0,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSMinX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,1,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSMinY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,2,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSMaxValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,3,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSMaxX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,4,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSMaxY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,5,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSMeanValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,6,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSSigma") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,7,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,8,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSNet") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,9,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSCentroidTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,10,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSCentroidX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,11,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSCentroidY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,12,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSSigmaX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,13,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSSigmaY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,14,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSSigmaXY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,15,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSSkewX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,16,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSSkewY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,17,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSKurtosisX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,18,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSKurtosisY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,19,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSEccentricity") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,20,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSOrientation") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,21,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSTimestamp") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4_TS,22,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control profiles # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT4:ComputeProfiles") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)COMPUTE_PROFILES") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT4:ComputeProfiles_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)COMPUTE_PROFILES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ProfileSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)PROFILE_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:ProfileSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)PROFILE_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT4:CursorX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)CURSOR_X") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:CursorX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)CURSOR_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT4:CursorY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)CURSOR_Y") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:CursorY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)CURSOR_Y") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:CursorVal") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)CURSOR_VAL") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:ProfileAverageX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)PROFILE_AVERAGE_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:ProfileAverageY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)PROFILE_AVERAGE_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:ProfileThresholdX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)PROFILE_THRESHOLD_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:ProfileThresholdY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)PROFILE_THRESHOLD_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:ProfileCentroidX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)PROFILE_CENTROID_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:ProfileCentroidY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)PROFILE_CENTROID_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:ProfileCursorX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)PROFILE_CURSOR_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:ProfileCursorY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)PROFILE_CURSOR_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These are used to define the histogram # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT4:ComputeHistogram") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)COMPUTE_HISTOGRAM") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT4:ComputeHistogram_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)COMPUTE_HISTOGRAM") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT4:HistSize") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)HIST_SIZE") + field(VAL, "256") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:HistSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)HIST_SIZE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:HistMin") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)HIST_MIN") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:HistMin_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)HIST_MIN") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:HistMax") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)HIST_MAX") + field(VAL, "255") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:HistMax_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)HIST_MAX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT4:HistBelow") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)HIST_BELOW") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:HistBelow_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)HIST_BELOW") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT4:HistAbove") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)HIST_ABOVE") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:HistAbove_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)HIST_ABOVE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT4:HistEntropy") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat4,0,1)HIST_ENTROPY") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT4:HistEntropy_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)HIST_ENTROPY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:Histogram_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)HIST_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT4:HistogramX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat4,0,1)HIST_X_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + 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, "S03SIM-EA-FSCN-02:STAT4:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:ProfileSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:STAT4:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:STAT4:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:STAT4:CursorX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT4:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT4:ProfileSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:STAT4:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:STAT4:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:STAT4:CursorY.HOPR NPP") +} + +################################################################### +# These records reset the statistics # +################################################################### +record(sseq, "S03SIM-EA-FSCN-02:STAT4:Reset") +{ + field(LNK1, "S03SIM-EA-FSCN-02:STAT4:MinValue PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:STAT4:MaxValue PP MS") + field(LNK3, "S03SIM-EA-FSCN-02:STAT4:MeanValue PP MS") + field(LNK4, "S03SIM-EA-FSCN-02:STAT4:SigmaValue PP MS") + field(LNK5, "S03SIM-EA-FSCN-02:STAT4:Total PP MS") + field(LNK6, "S03SIM-EA-FSCN-02:STAT4:Net PP MS") + field(LNK7, "S03SIM-EA-FSCN-02:STAT4:MinX PP MS") + field(LNK8, "S03SIM-EA-FSCN-02:STAT4:MinY PP MS") + field(LNK9, "S03SIM-EA-FSCN-02:STAT4:MaxX PP MS") + field(LNKA, "S03SIM-EA-FSCN-02:STAT4:MaxY PP MS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Reset1") +} + +record(sseq, "S03SIM-EA-FSCN-02:STAT4:Reset1") +{ + field(LNK1, "S03SIM-EA-FSCN-02:STAT4:CentroidX PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:STAT4:CentroidY PP MS") + field(LNK3, "S03SIM-EA-FSCN-02:STAT4:SigmaX PP MS") + field(LNK4, "S03SIM-EA-FSCN-02:STAT4:SigmaY PP MS") + field(LNK5, "S03SIM-EA-FSCN-02:STAT4:SigmaXY PP MS") + field(LNK6, "S03SIM-EA-FSCN-02:STAT4:CentroidTotal PP MS") + field(LNK7, "S03SIM-EA-FSCN-02:STAT4:SkewX PP MS") + field(LNK8, "S03SIM-EA-FSCN-02:STAT4:SkewY PP MS") + field(LNK9, "S03SIM-EA-FSCN-02:STAT4:KurtosisX PP MS") + field(LNKA, "S03SIM-EA-FSCN-02:STAT4:KurtosisY PP MS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Reset2") +} + +record(sseq, "S03SIM-EA-FSCN-02:STAT4:Reset2") +{ + field(LNK1, "S03SIM-EA-FSCN-02:STAT4:Eccentricity PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:STAT4:Orientation PP MS") + field(LNK3, "S03SIM-EA-FSCN-02:STAT4:HistBelow PP MS") + field(LNK4, "S03SIM-EA-FSCN-02:STAT4:HistAbove PP MS") + field(LNK5, "S03SIM-EA-FSCN-02:STAT4:HistEntropy PP MS") +} + +#=================================================================# +# Template file: NDStats.template + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, NCHANS, Number of channels +# % macro, XSIZE, x size +# % macro, YSIZE, y size +# % macro, HIST_SIZE, hist size +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Timeout +# % macro, TS_PORT, TS port + +# This associates the template with an edm screen +# % gui, FSCN2.stats.stat5, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-02,R=:STAT5: + +# This associates a BOY screen with the template +# % gui, FSCN2.stats.stat5, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-02, R=:STAT5:, DESC=Statistics +# % gui, FSCN2.stats.stat5, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:STAT5:, DESC=Statistics +# % gui, FSCN2.stats.stat5, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-02, R=:STAT5:, DESC=Statistics + + +# % gui, FSCN2.stats.stat5, groupHeading, Info +# % gui, FSCN2.stats.stat5, readback, Port name, S03SIM-EA-FSCN-02:STAT5:PortName_RBV +# % gui, FSCN2.stats.stat5, readback, Plugin type, S03SIM-EA-FSCN-02:STAT5:PluginType_RBV +# Input +# % gui, FSCN2.stats.stat5, demandString, Input, S03SIM-EA-FSCN-02:STAT5:NDArrayPort +# % gui, FSCN2.stats.stat5, readback, Input, S03SIM-EA-FSCN-02:STAT5:NDArrayPort_RBV + +# % gui, FSCN2.stats.stat5, groupHeading, Callback +# % gui, FSCN2.stats.stat5, enum, Callbacks, S03SIM-EA-FSCN-02:STAT5:EnableCallbacks +# % gui, FSCN2.stats.stat5, statusbits, Callbacks, S03SIM-EA-FSCN-02:STAT5:EnableCallbacks_RBV +# % gui, FSCN2.stats.stat5, demand, Min Callback Time, S03SIM-EA-FSCN-02:STAT5:MinCallbackTime +# % gui, FSCN2.stats.stat5, readback, Min Callback Time, S03SIM-EA-FSCN-02:STAT5:MinCallbackTime_RBV +# % gui, FSCN2.stats.stat5, enum, Block Callbacks, S03SIM-EA-FSCN-02:STAT5:BlockingCallbacks +# % gui, FSCN2.stats.stat5, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:STAT5:BlockingCallbacks_RBV + +# % gui, FSCN2.stats.stat5, groupHeading, Counters +# % gui, FSCN2.stats.stat5, demand, Array Counter, S03SIM-EA-FSCN-02:STAT5:ArrayCounter +# % gui, FSCN2.stats.stat5, readback, Array Counter, S03SIM-EA-FSCN-02:STAT5:ArrayCounter_RBV +# % gui, FSCN2.stats.stat5, readback, Array Rate (fps), S03SIM-EA-FSCN-02:STAT5:ArrayRate_RBV +# % gui, FSCN2.stats.stat5, readback, Queue Use, S03SIM-EA-FSCN-02:STAT5:QueueUse +# % gui, FSCN2.stats.stat5, readback, Queue Size, S03SIM-EA-FSCN-02:STAT5:QueueSize +# % gui, FSCN2.stats.stat5, demand, Dropped Arrays, S03SIM-EA-FSCN-02:STAT5:DroppedArrays +# % gui, FSCN2.stats.stat5, readback, Dropped Arrays, S03SIM-EA-FSCN-02:STAT5:DroppedArrays_RBV + +# % gui, FSCN2.stats.stat5, groupHeading, Array Settings +# % gui, FSCN2.stats.stat5, readback, Num Dimensions, S03SIM-EA-FSCN-02:STAT5:NDimensions_RBV +# % gui, FSCN2.stats.stat5, readback, Dim 0 Size, S03SIM-EA-FSCN-02:STAT5:ArraySize0_RBV +# % gui, FSCN2.stats.stat5, readback, Dim 1 Size, S03SIM-EA-FSCN-02:STAT5:ArraySize1_RBV +# % gui, FSCN2.stats.stat5, readback, Dim 2 Size, S03SIM-EA-FSCN-02:STAT5:ArraySize2_RBV +# % gui, FSCN2.stats.stat5, readback, Input Data Type, S03SIM-EA-FSCN-02:STAT5:DataType_RBV +# % gui, FSCN2.stats.stat5, readback, Colour Mode, S03SIM-EA-FSCN-02:STAT5:ColorMode_RBV +# % gui, FSCN2.stats.stat5, readback, Bayer Pattern, S03SIM-EA-FSCN-02:STAT5:BayerPattern_RBV +# % gui, FSCN2.stats.stat5, readback, Unique id, S03SIM-EA-FSCN-02:STAT5:UniqueId_RBV +# % gui, FSCN2.stats.stat5, readback, Timestamp, S03SIM-EA-FSCN-02:STAT5:TimeStamp_RBV + +# Output +# % gui, FSCN2.stats.stat5, groupHeading, Output +# % gui, FSCN2.stats.stat5, demand, Name, S03SIM-EA-FSCN-02:STAT5:Name +# % gui, FSCN2.stats.stat5, enum, Out data type, S03SIM-EA-FSCN-02:STAT5:DataTypeOut +# % gui, FSCN2.stats.stat5, readback, Out data type, S03SIM-EA-FSCN-02:STAT5:DataTypeOut_RBV +# % gui, FSCN2.stats.stat5, demand, Attributes file, S03SIM-EA-FSCN-02:STAT5:NDAttributesFile + +# Statistics +# % gui, FSCN2.stats.stat5, groupHeading, Statistics +# % gui, FSCN2.stats.stat5, enum, Compute Statistics, S03SIM-EA-FSCN-02:STAT5:ComputeStatistics +# % gui, FSCN2.stats.stat5, statusbits, Compute Statistics, S03SIM-EA-FSCN-02:STAT5:ComputeStatistics_RBV +# % gui, FSCN2.stats.stat5, demand, Background Width, S03SIM-EA-FSCN-02:STAT5:BgdWidth +# % gui, FSCN2.stats.stat5, readback, Background Width, S03SIM-EA-FSCN-02:STAT5:BgdWidth_RBV +# % gui, FSCN2.stats.stat5, readback, Minimum Value, S03SIM-EA-FSCN-02:STAT5:MinValue_RBV +# % gui, FSCN2.stats.stat5, readback, Minimum X, S03SIM-EA-FSCN-02:STAT5:MinX_RBV +# % gui, FSCN2.stats.stat5, readback, Minimum Y, S03SIM-EA-FSCN-02:STAT5:MinY_RBV +# % gui, FSCN2.stats.stat5, readback, Maximum Value, S03SIM-EA-FSCN-02:STAT5:MaxValue_RBV +# % gui, FSCN2.stats.stat5, readback, Maximum X, S03SIM-EA-FSCN-02:STAT5:MaxX_RBV +# % gui, FSCN2.stats.stat5, readback, Maximum Y, S03SIM-EA-FSCN-02:STAT5:MaxY_RBV +# % gui, FSCN2.stats.stat5, readback, Mean Value, S03SIM-EA-FSCN-02:STAT5:MeanValue_RBV +# % gui, FSCN2.stats.stat5, readback, Total, S03SIM-EA-FSCN-02:STAT5:Total_RBV +# % gui, FSCN2.stats.stat5, readback, Sigma, S03SIM-EA-FSCN-02:STAT5:Sigma_RBV +# % gui, FSCN2.stats.stat5, readback, Net, S03SIM-EA-FSCN-02:STAT5:Net_RBV +# Centroid +# % gui, FSCN2.stats.stat5, groupHeading, Centroid +# % gui, FSCN2.stats.stat5, enum, Compute Centroid, S03SIM-EA-FSCN-02:STAT5:ComputeCentroid +# % gui, FSCN2.stats.stat5, statusbits, Compute Centroid, S03SIM-EA-FSCN-02:STAT5:ComputeCentroid_RBV +# % gui, FSCN2.stats.stat5, demand, Threshold, S03SIM-EA-FSCN-02:STAT5:CentroidThreshold +# % gui, FSCN2.stats.stat5, readback, Threshold, S03SIM-EA-FSCN-02:STAT5:CentroidThreshold_RBV +# % gui, FSCN2.stats.stat5, readback, X, S03SIM-EA-FSCN-02:STAT5:CentroidX_RBV +# % gui, FSCN2.stats.stat5, readback, Sigma X, S03SIM-EA-FSCN-02:STAT5:SigmaX_RBV +# % gui, FSCN2.stats.stat5, readback, Y, S03SIM-EA-FSCN-02:STAT5:CentroidY_RBV +# % gui, FSCN2.stats.stat5, readback, Sigma Y, S03SIM-EA-FSCN-02:STAT5:SigmaY_RBV +# % gui, FSCN2.stats.stat5, readback, Sigma XY, S03SIM-EA-FSCN-02:STAT5:SigmaXY_RBV +# Histogram +# % gui, FSCN2.stats.stat5, groupHeading, Histogram +# % gui, FSCN2.stats.stat5, enum, Compute Histogram, S03SIM-EA-FSCN-02:STAT5:ComputeHistogram +# % gui, FSCN2.stats.stat5, statusbits, Compute Histogram, S03SIM-EA-FSCN-02:STAT5:ComputeHistogram_RBV +# % gui, FSCN2.stats.stat5, demand, Histogram Size, S03SIM-EA-FSCN-02:STAT5:HistSize +# % gui, FSCN2.stats.stat5, readback, Histogram Size, S03SIM-EA-FSCN-02:STAT5:HistSize_RBV +# % gui, FSCN2.stats.stat5, demand, Histogram Min, S03SIM-EA-FSCN-02:STAT5:HistMin +# % gui, FSCN2.stats.stat5, readback, Histogram Min, S03SIM-EA-FSCN-02:STAT5:HistMin_RBV +# % gui, FSCN2.stats.stat5, demand, Histogram Max, S03SIM-EA-FSCN-02:STAT5:HistMax +# % gui, FSCN2.stats.stat5, readback, Histogram Max, S03SIM-EA-FSCN-02:STAT5:HistMax_RBV +# % gui, FSCN2.stats.stat5, readback, Histogram Entropy, S03SIM-EA-FSCN-02:STAT5:HistEntropy_RBV +# Profiles +# % gui, FSCN2.stats.stat5, groupHeading, Profiles +# % gui, FSCN2.stats.stat5, enum, Compute Profiles, S03SIM-EA-FSCN-02:STAT5:ComputeProfiles +# % gui, FSCN2.stats.stat5, statusbits, Compute Profiles, S03SIM-EA-FSCN-02:STAT5:ComputeProfiles_RBV +# % gui, FSCN2.stats.stat5, demand, Cursor X, S03SIM-EA-FSCN-02:STAT5:CursorX +# % gui, FSCN2.stats.stat5, readback, Cursor X, S03SIM-EA-FSCN-02:STAT5:CursorX_RBV +# % gui, FSCN2.stats.stat5, demand, Cursor Y, S03SIM-EA-FSCN-02:STAT5:CursorY +# % gui, FSCN2.stats.stat5, readback, Cursor Y, S03SIM-EA-FSCN-02:STAT5:CursorY_RBV +# % gui, FSCN2.stats.stat5, readback, Size X, S03SIM-EA-FSCN-02:STAT5:ProfileSizeX_RBV +# % gui, FSCN2.stats.stat5, readback, Size Y, S03SIM-EA-FSCN-02:STAT5:ProfileSizeY_RBV +# Time series +# % gui, FSCN2.stats.stat5, groupHeading, Time Series +# % gui, FSCN2.stats.stat5, enum, Time Control, S03SIM-EA-FSCN-02:STAT5:TS:TSAcquire +# % gui, FSCN2.stats.stat5, statusbits, Acquiring, S03SIM-EA-FSCN-02:STAT5:TS:TSAcquiring +# % gui, FSCN2.stats.stat5, readback, Current Point, S03SIM-EA-FSCN-02:STAT5:TS:TSCurrentPoint +# % gui, FSCN2.stats.stat5, demand, Number of Points, S03SIM-EA-FSCN-02:STAT5:TS:TSNumPoints +# % gui, FSCN2.stats.stat5, enum, Update, S03SIM-EA-FSCN-02:STAT5:TS:TSRead.SCAN +# Memory +# % gui, FSCN2.stats.stat5, groupHeading, Memory +# % gui, FSCN2.stats.stat5, readback, Max memory, S03SIM-EA-FSCN-02:STAT5:PoolMaxMem +# % gui, FSCN2.stats.stat5, readback, Max buffers, S03SIM-EA-FSCN-02:STAT5:PoolMaxBuffers +# % gui, FSCN2.stats.stat5, readback, Used memory, S03SIM-EA-FSCN-02:STAT5:PoolUsedMem +# % gui, FSCN2.stats.stat5, readback, Allocated buffers, S03SIM-EA-FSCN-02:STAT5:PoolAllocBuffers +# % gui, FSCN2.stats.stat5, readback, Free buffers, S03SIM-EA-FSCN-02:STAT5:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT5:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT5:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT5:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT5:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT5:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT5:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT5:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT5:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:STAT5:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT5:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT5:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT5:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:STAT5:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT5:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT5:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:STAT5:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:STAT5:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:STAT5:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:STAT5:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:STAT5:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:STAT5:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:STAT5:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:STAT5:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:STAT5:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:STAT5:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:STAT5:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:STAT5:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:STAT5:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:STAT5:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT5:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:STAT5:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:STAT5:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT5:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT5:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:STAT5:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:STAT5:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:STAT5:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT5:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:STAT5:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:STAT5:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT5:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:STAT5:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.rois.roi1") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT5:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT5:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT5:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT5:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:STAT5:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT5:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT5:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:STAT5:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:STAT5:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT5:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:STAT5:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT5:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT5:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT5:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:STAT5:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT5:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT5:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:STAT5:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT5:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:STAT5:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:STAT5:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT5:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:STAT5:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:STAT5:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT5:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:STAT5:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:STAT5:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:STAT5:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT5:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:STAT5:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:STAT5:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT5:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT5:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:STAT5:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT5:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT5:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT5:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:STAT5:AsynIO") +{ + field(PORT, "FSCN2.stats.stat5") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records contain the basic statistics # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT5:ComputeStatistics") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)COMPUTE_STATISTICS") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT5:ComputeStatistics_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)COMPUTE_STATISTICS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT5:BgdWidth") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)BGD_WIDTH") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:BgdWidth_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)BGD_WIDTH") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:MinValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)MIN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:MinValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)MIN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:MaxValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)MAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:MaxValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)MAX_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:MeanValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)MEAN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:MeanValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)MEAN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:SigmaValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)SIGMA_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:Sigma_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)SIGMA_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:Total") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:Total_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:Net") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)NET") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:Net_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)NET") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:MinX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)MIN_X") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:MinX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:MinY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)MIN_Y") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:MinY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:MaxX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)MAX_X") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:MaxX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)MAX_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:MaxY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)MAX_Y") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:MaxY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)MAX_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether centroid statistics are computed # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT5:ComputeCentroid") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)COMPUTE_CENTROID") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT5:ComputeCentroid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)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, "S03SIM-EA-FSCN-02:STAT5:CentroidThreshold") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)CENTROID_THRESHOLD") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:CentroidThreshold_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)CENTROID_THRESHOLD") + field(VAL, "0") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:CentroidTotal") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)CENTROID_TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:CentroidTotal_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)CENTROID_TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:CentroidX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)CENTROIDX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:CentroidX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)CENTROIDX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:CentroidY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)CENTROIDY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:CentroidY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)CENTROIDY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:SigmaX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)SIGMAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:SigmaX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)SIGMAX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:SigmaY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)SIGMAY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:SigmaY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)SIGMAY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:SigmaXY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)SIGMAXY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:SigmaXY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)SIGMAXY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:SkewX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)SKEWX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:SkewX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)SKEWX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:SkewY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)SKEWY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:SkewY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)SKEWY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:KurtosisX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)KURTOSISX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:KurtosisX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)KURTOSISX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:KurtosisY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)KURTOSISY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:KurtosisY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)KURTOSISY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:Eccentricity") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)ECCENTRICITY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:Eccentricity_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)ECCENTRICITY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:Orientation") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)ORIENTATION_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:Orientation_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)ORIENTATION_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control time series # +################################################################### +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSMinValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,0,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSMinX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,1,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSMinY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,2,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSMaxValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,3,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSMaxX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,4,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSMaxY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,5,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSMeanValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,6,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSSigma") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,7,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,8,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSNet") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,9,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSCentroidTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,10,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSCentroidX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,11,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSCentroidY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,12,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSSigmaX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,13,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSSigmaY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,14,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSSigmaXY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,15,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSSkewX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,16,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSSkewY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,17,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSKurtosisX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,18,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSKurtosisY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,19,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSEccentricity") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,20,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSOrientation") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,21,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSTimestamp") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5_TS,22,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control profiles # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT5:ComputeProfiles") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)COMPUTE_PROFILES") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT5:ComputeProfiles_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)COMPUTE_PROFILES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ProfileSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)PROFILE_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:ProfileSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)PROFILE_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT5:CursorX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)CURSOR_X") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:CursorX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)CURSOR_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT5:CursorY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)CURSOR_Y") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:CursorY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)CURSOR_Y") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:CursorVal") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)CURSOR_VAL") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:ProfileAverageX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)PROFILE_AVERAGE_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:ProfileAverageY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)PROFILE_AVERAGE_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:ProfileThresholdX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)PROFILE_THRESHOLD_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:ProfileThresholdY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)PROFILE_THRESHOLD_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:ProfileCentroidX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)PROFILE_CENTROID_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:ProfileCentroidY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)PROFILE_CENTROID_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:ProfileCursorX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)PROFILE_CURSOR_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:ProfileCursorY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)PROFILE_CURSOR_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These are used to define the histogram # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT5:ComputeHistogram") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)COMPUTE_HISTOGRAM") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT5:ComputeHistogram_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)COMPUTE_HISTOGRAM") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT5:HistSize") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)HIST_SIZE") + field(VAL, "256") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:HistSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)HIST_SIZE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:HistMin") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)HIST_MIN") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:HistMin_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)HIST_MIN") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:HistMax") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)HIST_MAX") + field(VAL, "255") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:HistMax_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)HIST_MAX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT5:HistBelow") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)HIST_BELOW") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:HistBelow_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)HIST_BELOW") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT5:HistAbove") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)HIST_ABOVE") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:HistAbove_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)HIST_ABOVE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT5:HistEntropy") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat5,0,1)HIST_ENTROPY") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT5:HistEntropy_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)HIST_ENTROPY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:Histogram_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)HIST_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT5:HistogramX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat5,0,1)HIST_X_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + 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, "S03SIM-EA-FSCN-02:STAT5:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:ProfileSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:STAT5:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:STAT5:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:STAT5:CursorX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT5:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT5:ProfileSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:STAT5:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:STAT5:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:STAT5:CursorY.HOPR NPP") +} + +################################################################### +# These records reset the statistics # +################################################################### +record(sseq, "S03SIM-EA-FSCN-02:STAT5:Reset") +{ + field(LNK1, "S03SIM-EA-FSCN-02:STAT5:MinValue PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:STAT5:MaxValue PP MS") + field(LNK3, "S03SIM-EA-FSCN-02:STAT5:MeanValue PP MS") + field(LNK4, "S03SIM-EA-FSCN-02:STAT5:SigmaValue PP MS") + field(LNK5, "S03SIM-EA-FSCN-02:STAT5:Total PP MS") + field(LNK6, "S03SIM-EA-FSCN-02:STAT5:Net PP MS") + field(LNK7, "S03SIM-EA-FSCN-02:STAT5:MinX PP MS") + field(LNK8, "S03SIM-EA-FSCN-02:STAT5:MinY PP MS") + field(LNK9, "S03SIM-EA-FSCN-02:STAT5:MaxX PP MS") + field(LNKA, "S03SIM-EA-FSCN-02:STAT5:MaxY PP MS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Reset1") +} + +record(sseq, "S03SIM-EA-FSCN-02:STAT5:Reset1") +{ + field(LNK1, "S03SIM-EA-FSCN-02:STAT5:CentroidX PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:STAT5:CentroidY PP MS") + field(LNK3, "S03SIM-EA-FSCN-02:STAT5:SigmaX PP MS") + field(LNK4, "S03SIM-EA-FSCN-02:STAT5:SigmaY PP MS") + field(LNK5, "S03SIM-EA-FSCN-02:STAT5:SigmaXY PP MS") + field(LNK6, "S03SIM-EA-FSCN-02:STAT5:CentroidTotal PP MS") + field(LNK7, "S03SIM-EA-FSCN-02:STAT5:SkewX PP MS") + field(LNK8, "S03SIM-EA-FSCN-02:STAT5:SkewY PP MS") + field(LNK9, "S03SIM-EA-FSCN-02:STAT5:KurtosisX PP MS") + field(LNKA, "S03SIM-EA-FSCN-02:STAT5:KurtosisY PP MS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Reset2") +} + +record(sseq, "S03SIM-EA-FSCN-02:STAT5:Reset2") +{ + field(LNK1, "S03SIM-EA-FSCN-02:STAT5:Eccentricity PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:STAT5:Orientation PP MS") + field(LNK3, "S03SIM-EA-FSCN-02:STAT5:HistBelow PP MS") + field(LNK4, "S03SIM-EA-FSCN-02:STAT5:HistAbove PP MS") + field(LNK5, "S03SIM-EA-FSCN-02:STAT5:HistEntropy PP MS") +} + +#=================================================================# +# Template file: NDStats.template + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, NCHANS, Number of channels +# % macro, XSIZE, x size +# % macro, YSIZE, y size +# % macro, HIST_SIZE, hist size +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Timeout +# % macro, TS_PORT, TS port + +# This associates the template with an edm screen +# % gui, FSCN2.stats.stat6, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-02,R=:STAT6: + +# This associates a BOY screen with the template +# % gui, FSCN2.stats.stat6, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-02, R=:STAT6:, DESC=Statistics +# % gui, FSCN2.stats.stat6, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:STAT6:, DESC=Statistics +# % gui, FSCN2.stats.stat6, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-02, R=:STAT6:, DESC=Statistics + + +# % gui, FSCN2.stats.stat6, groupHeading, Info +# % gui, FSCN2.stats.stat6, readback, Port name, S03SIM-EA-FSCN-02:STAT6:PortName_RBV +# % gui, FSCN2.stats.stat6, readback, Plugin type, S03SIM-EA-FSCN-02:STAT6:PluginType_RBV +# Input +# % gui, FSCN2.stats.stat6, demandString, Input, S03SIM-EA-FSCN-02:STAT6:NDArrayPort +# % gui, FSCN2.stats.stat6, readback, Input, S03SIM-EA-FSCN-02:STAT6:NDArrayPort_RBV + +# % gui, FSCN2.stats.stat6, groupHeading, Callback +# % gui, FSCN2.stats.stat6, enum, Callbacks, S03SIM-EA-FSCN-02:STAT6:EnableCallbacks +# % gui, FSCN2.stats.stat6, statusbits, Callbacks, S03SIM-EA-FSCN-02:STAT6:EnableCallbacks_RBV +# % gui, FSCN2.stats.stat6, demand, Min Callback Time, S03SIM-EA-FSCN-02:STAT6:MinCallbackTime +# % gui, FSCN2.stats.stat6, readback, Min Callback Time, S03SIM-EA-FSCN-02:STAT6:MinCallbackTime_RBV +# % gui, FSCN2.stats.stat6, enum, Block Callbacks, S03SIM-EA-FSCN-02:STAT6:BlockingCallbacks +# % gui, FSCN2.stats.stat6, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:STAT6:BlockingCallbacks_RBV + +# % gui, FSCN2.stats.stat6, groupHeading, Counters +# % gui, FSCN2.stats.stat6, demand, Array Counter, S03SIM-EA-FSCN-02:STAT6:ArrayCounter +# % gui, FSCN2.stats.stat6, readback, Array Counter, S03SIM-EA-FSCN-02:STAT6:ArrayCounter_RBV +# % gui, FSCN2.stats.stat6, readback, Array Rate (fps), S03SIM-EA-FSCN-02:STAT6:ArrayRate_RBV +# % gui, FSCN2.stats.stat6, readback, Queue Use, S03SIM-EA-FSCN-02:STAT6:QueueUse +# % gui, FSCN2.stats.stat6, readback, Queue Size, S03SIM-EA-FSCN-02:STAT6:QueueSize +# % gui, FSCN2.stats.stat6, demand, Dropped Arrays, S03SIM-EA-FSCN-02:STAT6:DroppedArrays +# % gui, FSCN2.stats.stat6, readback, Dropped Arrays, S03SIM-EA-FSCN-02:STAT6:DroppedArrays_RBV + +# % gui, FSCN2.stats.stat6, groupHeading, Array Settings +# % gui, FSCN2.stats.stat6, readback, Num Dimensions, S03SIM-EA-FSCN-02:STAT6:NDimensions_RBV +# % gui, FSCN2.stats.stat6, readback, Dim 0 Size, S03SIM-EA-FSCN-02:STAT6:ArraySize0_RBV +# % gui, FSCN2.stats.stat6, readback, Dim 1 Size, S03SIM-EA-FSCN-02:STAT6:ArraySize1_RBV +# % gui, FSCN2.stats.stat6, readback, Dim 2 Size, S03SIM-EA-FSCN-02:STAT6:ArraySize2_RBV +# % gui, FSCN2.stats.stat6, readback, Input Data Type, S03SIM-EA-FSCN-02:STAT6:DataType_RBV +# % gui, FSCN2.stats.stat6, readback, Colour Mode, S03SIM-EA-FSCN-02:STAT6:ColorMode_RBV +# % gui, FSCN2.stats.stat6, readback, Bayer Pattern, S03SIM-EA-FSCN-02:STAT6:BayerPattern_RBV +# % gui, FSCN2.stats.stat6, readback, Unique id, S03SIM-EA-FSCN-02:STAT6:UniqueId_RBV +# % gui, FSCN2.stats.stat6, readback, Timestamp, S03SIM-EA-FSCN-02:STAT6:TimeStamp_RBV + +# Output +# % gui, FSCN2.stats.stat6, groupHeading, Output +# % gui, FSCN2.stats.stat6, demand, Name, S03SIM-EA-FSCN-02:STAT6:Name +# % gui, FSCN2.stats.stat6, enum, Out data type, S03SIM-EA-FSCN-02:STAT6:DataTypeOut +# % gui, FSCN2.stats.stat6, readback, Out data type, S03SIM-EA-FSCN-02:STAT6:DataTypeOut_RBV +# % gui, FSCN2.stats.stat6, demand, Attributes file, S03SIM-EA-FSCN-02:STAT6:NDAttributesFile + +# Statistics +# % gui, FSCN2.stats.stat6, groupHeading, Statistics +# % gui, FSCN2.stats.stat6, enum, Compute Statistics, S03SIM-EA-FSCN-02:STAT6:ComputeStatistics +# % gui, FSCN2.stats.stat6, statusbits, Compute Statistics, S03SIM-EA-FSCN-02:STAT6:ComputeStatistics_RBV +# % gui, FSCN2.stats.stat6, demand, Background Width, S03SIM-EA-FSCN-02:STAT6:BgdWidth +# % gui, FSCN2.stats.stat6, readback, Background Width, S03SIM-EA-FSCN-02:STAT6:BgdWidth_RBV +# % gui, FSCN2.stats.stat6, readback, Minimum Value, S03SIM-EA-FSCN-02:STAT6:MinValue_RBV +# % gui, FSCN2.stats.stat6, readback, Minimum X, S03SIM-EA-FSCN-02:STAT6:MinX_RBV +# % gui, FSCN2.stats.stat6, readback, Minimum Y, S03SIM-EA-FSCN-02:STAT6:MinY_RBV +# % gui, FSCN2.stats.stat6, readback, Maximum Value, S03SIM-EA-FSCN-02:STAT6:MaxValue_RBV +# % gui, FSCN2.stats.stat6, readback, Maximum X, S03SIM-EA-FSCN-02:STAT6:MaxX_RBV +# % gui, FSCN2.stats.stat6, readback, Maximum Y, S03SIM-EA-FSCN-02:STAT6:MaxY_RBV +# % gui, FSCN2.stats.stat6, readback, Mean Value, S03SIM-EA-FSCN-02:STAT6:MeanValue_RBV +# % gui, FSCN2.stats.stat6, readback, Total, S03SIM-EA-FSCN-02:STAT6:Total_RBV +# % gui, FSCN2.stats.stat6, readback, Sigma, S03SIM-EA-FSCN-02:STAT6:Sigma_RBV +# % gui, FSCN2.stats.stat6, readback, Net, S03SIM-EA-FSCN-02:STAT6:Net_RBV +# Centroid +# % gui, FSCN2.stats.stat6, groupHeading, Centroid +# % gui, FSCN2.stats.stat6, enum, Compute Centroid, S03SIM-EA-FSCN-02:STAT6:ComputeCentroid +# % gui, FSCN2.stats.stat6, statusbits, Compute Centroid, S03SIM-EA-FSCN-02:STAT6:ComputeCentroid_RBV +# % gui, FSCN2.stats.stat6, demand, Threshold, S03SIM-EA-FSCN-02:STAT6:CentroidThreshold +# % gui, FSCN2.stats.stat6, readback, Threshold, S03SIM-EA-FSCN-02:STAT6:CentroidThreshold_RBV +# % gui, FSCN2.stats.stat6, readback, X, S03SIM-EA-FSCN-02:STAT6:CentroidX_RBV +# % gui, FSCN2.stats.stat6, readback, Sigma X, S03SIM-EA-FSCN-02:STAT6:SigmaX_RBV +# % gui, FSCN2.stats.stat6, readback, Y, S03SIM-EA-FSCN-02:STAT6:CentroidY_RBV +# % gui, FSCN2.stats.stat6, readback, Sigma Y, S03SIM-EA-FSCN-02:STAT6:SigmaY_RBV +# % gui, FSCN2.stats.stat6, readback, Sigma XY, S03SIM-EA-FSCN-02:STAT6:SigmaXY_RBV +# Histogram +# % gui, FSCN2.stats.stat6, groupHeading, Histogram +# % gui, FSCN2.stats.stat6, enum, Compute Histogram, S03SIM-EA-FSCN-02:STAT6:ComputeHistogram +# % gui, FSCN2.stats.stat6, statusbits, Compute Histogram, S03SIM-EA-FSCN-02:STAT6:ComputeHistogram_RBV +# % gui, FSCN2.stats.stat6, demand, Histogram Size, S03SIM-EA-FSCN-02:STAT6:HistSize +# % gui, FSCN2.stats.stat6, readback, Histogram Size, S03SIM-EA-FSCN-02:STAT6:HistSize_RBV +# % gui, FSCN2.stats.stat6, demand, Histogram Min, S03SIM-EA-FSCN-02:STAT6:HistMin +# % gui, FSCN2.stats.stat6, readback, Histogram Min, S03SIM-EA-FSCN-02:STAT6:HistMin_RBV +# % gui, FSCN2.stats.stat6, demand, Histogram Max, S03SIM-EA-FSCN-02:STAT6:HistMax +# % gui, FSCN2.stats.stat6, readback, Histogram Max, S03SIM-EA-FSCN-02:STAT6:HistMax_RBV +# % gui, FSCN2.stats.stat6, readback, Histogram Entropy, S03SIM-EA-FSCN-02:STAT6:HistEntropy_RBV +# Profiles +# % gui, FSCN2.stats.stat6, groupHeading, Profiles +# % gui, FSCN2.stats.stat6, enum, Compute Profiles, S03SIM-EA-FSCN-02:STAT6:ComputeProfiles +# % gui, FSCN2.stats.stat6, statusbits, Compute Profiles, S03SIM-EA-FSCN-02:STAT6:ComputeProfiles_RBV +# % gui, FSCN2.stats.stat6, demand, Cursor X, S03SIM-EA-FSCN-02:STAT6:CursorX +# % gui, FSCN2.stats.stat6, readback, Cursor X, S03SIM-EA-FSCN-02:STAT6:CursorX_RBV +# % gui, FSCN2.stats.stat6, demand, Cursor Y, S03SIM-EA-FSCN-02:STAT6:CursorY +# % gui, FSCN2.stats.stat6, readback, Cursor Y, S03SIM-EA-FSCN-02:STAT6:CursorY_RBV +# % gui, FSCN2.stats.stat6, readback, Size X, S03SIM-EA-FSCN-02:STAT6:ProfileSizeX_RBV +# % gui, FSCN2.stats.stat6, readback, Size Y, S03SIM-EA-FSCN-02:STAT6:ProfileSizeY_RBV +# Time series +# % gui, FSCN2.stats.stat6, groupHeading, Time Series +# % gui, FSCN2.stats.stat6, enum, Time Control, S03SIM-EA-FSCN-02:STAT6:TS:TSAcquire +# % gui, FSCN2.stats.stat6, statusbits, Acquiring, S03SIM-EA-FSCN-02:STAT6:TS:TSAcquiring +# % gui, FSCN2.stats.stat6, readback, Current Point, S03SIM-EA-FSCN-02:STAT6:TS:TSCurrentPoint +# % gui, FSCN2.stats.stat6, demand, Number of Points, S03SIM-EA-FSCN-02:STAT6:TS:TSNumPoints +# % gui, FSCN2.stats.stat6, enum, Update, S03SIM-EA-FSCN-02:STAT6:TS:TSRead.SCAN +# Memory +# % gui, FSCN2.stats.stat6, groupHeading, Memory +# % gui, FSCN2.stats.stat6, readback, Max memory, S03SIM-EA-FSCN-02:STAT6:PoolMaxMem +# % gui, FSCN2.stats.stat6, readback, Max buffers, S03SIM-EA-FSCN-02:STAT6:PoolMaxBuffers +# % gui, FSCN2.stats.stat6, readback, Used memory, S03SIM-EA-FSCN-02:STAT6:PoolUsedMem +# % gui, FSCN2.stats.stat6, readback, Allocated buffers, S03SIM-EA-FSCN-02:STAT6:PoolAllocBuffers +# % gui, FSCN2.stats.stat6, readback, Free buffers, S03SIM-EA-FSCN-02:STAT6:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT6:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT6:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT6:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT6:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT6:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT6:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT6:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT6:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:STAT6:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT6:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT6:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT6:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:STAT6:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT6:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT6:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:STAT6:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:STAT6:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:STAT6:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:STAT6:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:STAT6:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:STAT6:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:STAT6:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:STAT6:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:STAT6:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:STAT6:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:STAT6:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:STAT6:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:STAT6:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:STAT6:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT6:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:STAT6:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:STAT6:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT6:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT6:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:STAT6:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:STAT6:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:STAT6:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT6:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:STAT6:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:STAT6:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:STAT6:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:STAT6:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.rois.roi1") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:STAT6:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT6:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT6:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT6:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:STAT6:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT6:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT6:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:STAT6:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:STAT6:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:STAT6:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:STAT6:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT6:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT6:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT6:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:STAT6:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT6:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT6:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:STAT6:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT6:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:STAT6:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:STAT6:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT6:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:STAT6:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:STAT6:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT6:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:STAT6:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:STAT6:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:STAT6:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT6:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:STAT6:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:STAT6:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT6:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:STAT6:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:STAT6:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:STAT6:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT6:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT6:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:STAT6:AsynIO") +{ + field(PORT, "FSCN2.stats.stat6") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records contain the basic statistics # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT6:ComputeStatistics") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)COMPUTE_STATISTICS") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT6:ComputeStatistics_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)COMPUTE_STATISTICS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT6:BgdWidth") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)BGD_WIDTH") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:BgdWidth_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)BGD_WIDTH") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:MinValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)MIN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:MinValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)MIN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:MaxValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)MAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:MaxValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)MAX_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:MeanValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)MEAN_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:MeanValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)MEAN_VALUE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:SigmaValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)SIGMA_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:Sigma_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)SIGMA_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:Total") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:Total_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:Net") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)NET") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:Net_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)NET") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:MinX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)MIN_X") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:MinX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)MIN_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:MinY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)MIN_Y") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:MinY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)MIN_Y") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:MaxX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)MAX_X") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:MaxX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)MAX_X") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:MaxY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)MAX_Y") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:MaxY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)MAX_Y") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether centroid statistics are computed # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT6:ComputeCentroid") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)COMPUTE_CENTROID") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT6:ComputeCentroid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)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, "S03SIM-EA-FSCN-02:STAT6:CentroidThreshold") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)CENTROID_THRESHOLD") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:CentroidThreshold_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)CENTROID_THRESHOLD") + field(VAL, "0") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:CentroidTotal") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)CENTROID_TOTAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:CentroidTotal_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)CENTROID_TOTAL") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:CentroidX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)CENTROIDX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:CentroidX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)CENTROIDX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:CentroidY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)CENTROIDY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:CentroidY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)CENTROIDY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:SigmaX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)SIGMAX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:SigmaX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)SIGMAX_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:SigmaY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)SIGMAY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:SigmaY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)SIGMAY_VALUE") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:SigmaXY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)SIGMAXY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:SigmaXY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)SIGMAXY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:SkewX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)SKEWX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:SkewX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)SKEWX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:SkewY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)SKEWY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:SkewY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)SKEWY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:KurtosisX") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)KURTOSISX_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:KurtosisX_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)KURTOSISX_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:KurtosisY") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)KURTOSISY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:KurtosisY_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)KURTOSISY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:Eccentricity") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)ECCENTRICITY_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:Eccentricity_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)ECCENTRICITY_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:Orientation") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)ORIENTATION_VALUE") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:Orientation_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)ORIENTATION_VALUE") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control time series # +################################################################### +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSMinValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,0,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSMinX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,1,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSMinY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,2,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSMaxValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,3,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSMaxX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,4,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSMaxY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,5,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSMeanValue") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,6,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSSigma") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,7,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,8,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSNet") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,9,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSCentroidTotal") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,10,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSCentroidX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,11,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSCentroidY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,12,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSSigmaX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,13,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSSigmaY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,14,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSSigmaXY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,15,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSSkewX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,16,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSSkewY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,17,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSKurtosisX") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,18,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSKurtosisY") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,19,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSEccentricity") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,20,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSOrientation") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,21,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSTimestamp") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6_TS,22,1)TS_TIME_SERIES") + field(NELM, "1024") + field(FTVL, "DOUBLE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control profiles # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT6:ComputeProfiles") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)COMPUTE_PROFILES") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT6:ComputeProfiles_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)COMPUTE_PROFILES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ProfileSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)PROFILE_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:ProfileSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)PROFILE_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT6:CursorX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)CURSOR_X") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:CursorX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)CURSOR_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT6:CursorY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)CURSOR_Y") + field(VAL, "256") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ProcessPlugin") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:CursorY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)CURSOR_Y") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:CursorVal") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)CURSOR_VAL") + field(PREC, "1") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:ProfileAverageX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)PROFILE_AVERAGE_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:ProfileAverageY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)PROFILE_AVERAGE_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:ProfileThresholdX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)PROFILE_THRESHOLD_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:ProfileThresholdY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)PROFILE_THRESHOLD_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:ProfileCentroidX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)PROFILE_CENTROID_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:ProfileCentroidY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)PROFILE_CENTROID_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:ProfileCursorX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)PROFILE_CURSOR_X") + field(FTVL, "DOUBLE") + field(NELM, "1292") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:ProfileCursorY_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)PROFILE_CURSOR_Y") + field(FTVL, "DOUBLE") + field(NELM, "964") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These are used to define the histogram # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:STAT6:ComputeHistogram") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)COMPUTE_HISTOGRAM") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:STAT6:ComputeHistogram_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)COMPUTE_HISTOGRAM") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT6:HistSize") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)HIST_SIZE") + field(VAL, "256") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:HistSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)HIST_SIZE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:HistMin") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)HIST_MIN") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:HistMin_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)HIST_MIN") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:HistMax") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)HIST_MAX") + field(VAL, "255") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:HistMax_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)HIST_MAX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT6:HistBelow") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)HIST_BELOW") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:HistBelow_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)HIST_BELOW") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:STAT6:HistAbove") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)HIST_ABOVE") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:HistAbove_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)HIST_ABOVE") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:STAT6:HistEntropy") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.stats.stat6,0,1)HIST_ENTROPY") +} + +record(ai, "S03SIM-EA-FSCN-02:STAT6:HistEntropy_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)HIST_ENTROPY") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:Histogram_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)HIST_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:STAT6:HistogramX_RBV") +{ + field(DTYP, "asynFloat64ArrayIn") + field(INP, "@asyn(FSCN2.stats.stat6,0,1)HIST_X_ARRAY") + field(FTVL, "DOUBLE") + field(NELM, "256") + 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, "S03SIM-EA-FSCN-02:STAT6:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:ProfileSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:STAT6:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:STAT6:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:STAT6:CursorX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:STAT6:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-02:STAT6:ProfileSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:STAT6:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:STAT6:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:STAT6:CursorY.HOPR NPP") +} + +################################################################### +# These records reset the statistics # +################################################################### +record(sseq, "S03SIM-EA-FSCN-02:STAT6:Reset") +{ + field(LNK1, "S03SIM-EA-FSCN-02:STAT6:MinValue PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:STAT6:MaxValue PP MS") + field(LNK3, "S03SIM-EA-FSCN-02:STAT6:MeanValue PP MS") + field(LNK4, "S03SIM-EA-FSCN-02:STAT6:SigmaValue PP MS") + field(LNK5, "S03SIM-EA-FSCN-02:STAT6:Total PP MS") + field(LNK6, "S03SIM-EA-FSCN-02:STAT6:Net PP MS") + field(LNK7, "S03SIM-EA-FSCN-02:STAT6:MinX PP MS") + field(LNK8, "S03SIM-EA-FSCN-02:STAT6:MinY PP MS") + field(LNK9, "S03SIM-EA-FSCN-02:STAT6:MaxX PP MS") + field(LNKA, "S03SIM-EA-FSCN-02:STAT6:MaxY PP MS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Reset1") +} + +record(sseq, "S03SIM-EA-FSCN-02:STAT6:Reset1") +{ + field(LNK1, "S03SIM-EA-FSCN-02:STAT6:CentroidX PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:STAT6:CentroidY PP MS") + field(LNK3, "S03SIM-EA-FSCN-02:STAT6:SigmaX PP MS") + field(LNK4, "S03SIM-EA-FSCN-02:STAT6:SigmaY PP MS") + field(LNK5, "S03SIM-EA-FSCN-02:STAT6:SigmaXY PP MS") + field(LNK6, "S03SIM-EA-FSCN-02:STAT6:CentroidTotal PP MS") + field(LNK7, "S03SIM-EA-FSCN-02:STAT6:SkewX PP MS") + field(LNK8, "S03SIM-EA-FSCN-02:STAT6:SkewY PP MS") + field(LNK9, "S03SIM-EA-FSCN-02:STAT6:KurtosisX PP MS") + field(LNKA, "S03SIM-EA-FSCN-02:STAT6:KurtosisY PP MS") + field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Reset2") +} + +record(sseq, "S03SIM-EA-FSCN-02:STAT6:Reset2") +{ + field(LNK1, "S03SIM-EA-FSCN-02:STAT6:Eccentricity PP MS") + field(LNK2, "S03SIM-EA-FSCN-02:STAT6:Orientation PP MS") + field(LNK3, "S03SIM-EA-FSCN-02:STAT6:HistBelow PP MS") + field(LNK4, "S03SIM-EA-FSCN-02:STAT6:HistAbove PP MS") + field(LNK5, "S03SIM-EA-FSCN-02:STAT6:HistEntropy PP MS") +} + +#=================================================================# +# Template file: NDStdArrays.template +# Database for NDStdArrays asyn driver and standard asyn device support +# Mark Rivers +# April 14, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, TYPE, Asyn Type e.g. Int32 +# % macro, FTVL, Format, e.g. Int +# % macro, NELEMENTS, Number of elements + +# This associates the template with an edm screen +# % gui, OAV.arr, edmtab, NDStdArrays.edl, P=S03SIM-DI-OAV-01,R=:ARR: + +# This associates a BOY screen with the template +# % gui, OAV.arr, boydetail,ADApp_opi/dls/array_detail.opi, P=S03SIM-DI-OAV-01, R=:ARR:, DESC=Array +# % gui, OAV.arr, boyembed, ADApp_opi/dls/array_embed_box.opi, P=S03SIM-DI-OAV-01, R=:ARR:, DESC=Array +# % gui, OAV.arr, boyembed, ADApp_opi/dls/array_embed.opi, P=S03SIM-DI-OAV-01, R=:ARR:, DESC=Array + +# Info +# % gui, OAV.arr, groupHeading, Info +# % gui, OAV.arr, readback, Port name, S03SIM-DI-OAV-01:ARR:PortName_RBV +# % gui, OAV.arr, readback, Plugin type, S03SIM-DI-OAV-01:ARR:PluginType_RBV +# Input +# % gui, OAV.arr, demandString, Input, S03SIM-DI-OAV-01:ARR:NDArrayPort +# % gui, OAV.arr, readback, Input, S03SIM-DI-OAV-01:ARR:NDArrayPort_RBV + +# % gui, OAV.arr, groupHeading, Callback +# % gui, OAV.arr, enum, Callbacks, S03SIM-DI-OAV-01:ARR:EnableCallbacks +# % gui, OAV.arr, statusbits, Callbacks, S03SIM-DI-OAV-01:ARR:EnableCallbacks_RBV +# % gui, OAV.arr, demand, Min Callback Time, S03SIM-DI-OAV-01:ARR:MinCallbackTime +# % gui, OAV.arr, readback, Min Callback Time, S03SIM-DI-OAV-01:ARR:MinCallbackTime_RBV +# % gui, OAV.arr, enum, Block Callbacks, S03SIM-DI-OAV-01:ARR:BlockingCallbacks +# % gui, OAV.arr, statusbits, Block Callbacks, S03SIM-DI-OAV-01:ARR:BlockingCallbacks_RBV + +# % gui, OAV.arr, groupHeading, Counters +# % gui, OAV.arr, demand, Array Counter, S03SIM-DI-OAV-01:ARR:ArrayCounter +# % gui, OAV.arr, readback, Array Counter, S03SIM-DI-OAV-01:ARR:ArrayCounter_RBV +# % gui, OAV.arr, readback, Array Rate (fps), S03SIM-DI-OAV-01:ARR:ArrayRate_RBV +# % gui, OAV.arr, readback, Queue Use, S03SIM-DI-OAV-01:ARR:QueueUse +# % gui, OAV.arr, readback, Queue Size, S03SIM-DI-OAV-01:ARR:QueueSize +# % gui, OAV.arr, demand, Dropped Arrays, S03SIM-DI-OAV-01:ARR:DroppedArrays +# % gui, OAV.arr, readback, Dropped Arrays, S03SIM-DI-OAV-01:ARR:DroppedArrays_RBV + +# % gui, OAV.arr, groupHeading, Array Settings +# % gui, OAV.arr, readback, Num Dimensions, S03SIM-DI-OAV-01:ARR:NDimensions_RBV +# % gui, OAV.arr, readback, Dim 0 Size, S03SIM-DI-OAV-01:ARR:ArraySize0_RBV +# % gui, OAV.arr, readback, Dim 1 Size, S03SIM-DI-OAV-01:ARR:ArraySize1_RBV +# % gui, OAV.arr, readback, Dim 2 Size, S03SIM-DI-OAV-01:ARR:ArraySize2_RBV +# % gui, OAV.arr, readback, Input Data Type, S03SIM-DI-OAV-01:ARR:DataType_RBV +# % gui, OAV.arr, readback, Colour Mode, S03SIM-DI-OAV-01:ARR:ColorMode_RBV +# % gui, OAV.arr, readback, Bayer Pattern, S03SIM-DI-OAV-01:ARR:BayerPattern_RBV +# % gui, OAV.arr, readback, Unique id, S03SIM-DI-OAV-01:ARR:UniqueId_RBV +# % gui, OAV.arr, readback, Timestamp, S03SIM-DI-OAV-01:ARR:TimeStamp_RBV + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ARR:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.arr,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ARR:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.arr,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ARR:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.arr,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ARR:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.arr,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ARR:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.arr,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ARR:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.arr,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ARR:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.arr,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:ARR:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.arr,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:ARR:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.arr,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:ARR:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:ARR:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ARR:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:ARR:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:ARR:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:ARR:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:ARR:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ARR:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:ARR:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:ARR:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:ARR:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.arr,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:ARR:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.arr,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:ARR:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.arr,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ARR:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ARR:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ARR:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ARR:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ARR:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ARR:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ARR:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ARR:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ARR:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:ARR:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.arr,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:ARR:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ARR:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ARR:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ARR:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ARR:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ARR:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ARR:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ARR:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ARR:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:ARR:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:ARR:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:ARR:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:ARR:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.arr,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ARR:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.arr,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ARR:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:ARR:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.arr,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:ARR:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:ARR:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:ARR:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.arr,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:ARR:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.arr,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:ARR:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:ARR:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:ARR:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:ARR:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ARR:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.arr,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ARR:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:ARR:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.arr,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:ARR:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.arr,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:ARR:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:ARR:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.arr,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:ARR:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.arr,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:ARR:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:ARR:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:ARR:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:ARR:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:ARR:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:ARR:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:ARR:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.arr,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:ARR:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.arr,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:ARR:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.arr,0,1)NDARRAY_PORT") + field(VAL, "OAV.roi") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:ARR:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.arr,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ARR:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.arr,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ARR:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.arr,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ARR:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ARR:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.arr,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ARR:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.arr,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ARR:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:ARR:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:ARR:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:ARR:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:ARR:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:ARR:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:ARR:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:ARR:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.arr,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:ARR:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.arr,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:ARR:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.arr,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ARR:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.arr,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:ARR:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.arr,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:ARR:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:ARR:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.arr,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ARR:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.arr,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:ARR:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ARR:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:ARR:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ARR:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:ARR:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:ARR:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:ARR:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ARR:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:ARR:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:ARR:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:ARR:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:ARR:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:ARR:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:ARR:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:ARR:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:ARR:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.arr,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:ARR:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.arr,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:ARR:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:ARR:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.arr,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:ARR:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.arr,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ARR:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.arr,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:ARR:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:ARR:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:ARR:SortSize") + field(OUT, "S03SIM-DI-OAV-01:ARR:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:ARR:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.arr,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:ARR:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.arr,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:ARR:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.arr,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:ARR:AsynIO") +{ + field(PORT, "OAV.arr") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# This record is the array waveform data # +################################################################### +record(waveform, "S03SIM-DI-OAV-01:ARR:ArrayData") +{ + field(DTYP, "asynInt8ArrayIn") + field(INP, "@asyn(OAV.arr,0,1)STD_ARRAY_DATA") + field(FTVL, "UCHAR") + field(NELM, "786432") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDStdArrays.template +# Database for NDStdArrays asyn driver and standard asyn device support +# Mark Rivers +# April 14, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, TYPE, Asyn Type e.g. Int32 +# % macro, FTVL, Format, e.g. Int +# % macro, NELEMENTS, Number of elements + +# This associates the template with an edm screen +# % gui, FSCN1.arr, edmtab, NDStdArrays.edl, P=S03SIM-EA-FSCN-01,R=:ARR: + +# This associates a BOY screen with the template +# % gui, FSCN1.arr, boydetail,ADApp_opi/dls/array_detail.opi, P=S03SIM-EA-FSCN-01, R=:ARR:, DESC=Array +# % gui, FSCN1.arr, boyembed, ADApp_opi/dls/array_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:ARR:, DESC=Array +# % gui, FSCN1.arr, boyembed, ADApp_opi/dls/array_embed.opi, P=S03SIM-EA-FSCN-01, R=:ARR:, DESC=Array + +# Info +# % gui, FSCN1.arr, groupHeading, Info +# % gui, FSCN1.arr, readback, Port name, S03SIM-EA-FSCN-01:ARR:PortName_RBV +# % gui, FSCN1.arr, readback, Plugin type, S03SIM-EA-FSCN-01:ARR:PluginType_RBV +# Input +# % gui, FSCN1.arr, demandString, Input, S03SIM-EA-FSCN-01:ARR:NDArrayPort +# % gui, FSCN1.arr, readback, Input, S03SIM-EA-FSCN-01:ARR:NDArrayPort_RBV + +# % gui, FSCN1.arr, groupHeading, Callback +# % gui, FSCN1.arr, enum, Callbacks, S03SIM-EA-FSCN-01:ARR:EnableCallbacks +# % gui, FSCN1.arr, statusbits, Callbacks, S03SIM-EA-FSCN-01:ARR:EnableCallbacks_RBV +# % gui, FSCN1.arr, demand, Min Callback Time, S03SIM-EA-FSCN-01:ARR:MinCallbackTime +# % gui, FSCN1.arr, readback, Min Callback Time, S03SIM-EA-FSCN-01:ARR:MinCallbackTime_RBV +# % gui, FSCN1.arr, enum, Block Callbacks, S03SIM-EA-FSCN-01:ARR:BlockingCallbacks +# % gui, FSCN1.arr, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:ARR:BlockingCallbacks_RBV + +# % gui, FSCN1.arr, groupHeading, Counters +# % gui, FSCN1.arr, demand, Array Counter, S03SIM-EA-FSCN-01:ARR:ArrayCounter +# % gui, FSCN1.arr, readback, Array Counter, S03SIM-EA-FSCN-01:ARR:ArrayCounter_RBV +# % gui, FSCN1.arr, readback, Array Rate (fps), S03SIM-EA-FSCN-01:ARR:ArrayRate_RBV +# % gui, FSCN1.arr, readback, Queue Use, S03SIM-EA-FSCN-01:ARR:QueueUse +# % gui, FSCN1.arr, readback, Queue Size, S03SIM-EA-FSCN-01:ARR:QueueSize +# % gui, FSCN1.arr, demand, Dropped Arrays, S03SIM-EA-FSCN-01:ARR:DroppedArrays +# % gui, FSCN1.arr, readback, Dropped Arrays, S03SIM-EA-FSCN-01:ARR:DroppedArrays_RBV + +# % gui, FSCN1.arr, groupHeading, Array Settings +# % gui, FSCN1.arr, readback, Num Dimensions, S03SIM-EA-FSCN-01:ARR:NDimensions_RBV +# % gui, FSCN1.arr, readback, Dim 0 Size, S03SIM-EA-FSCN-01:ARR:ArraySize0_RBV +# % gui, FSCN1.arr, readback, Dim 1 Size, S03SIM-EA-FSCN-01:ARR:ArraySize1_RBV +# % gui, FSCN1.arr, readback, Dim 2 Size, S03SIM-EA-FSCN-01:ARR:ArraySize2_RBV +# % gui, FSCN1.arr, readback, Input Data Type, S03SIM-EA-FSCN-01:ARR:DataType_RBV +# % gui, FSCN1.arr, readback, Colour Mode, S03SIM-EA-FSCN-01:ARR:ColorMode_RBV +# % gui, FSCN1.arr, readback, Bayer Pattern, S03SIM-EA-FSCN-01:ARR:BayerPattern_RBV +# % gui, FSCN1.arr, readback, Unique id, S03SIM-EA-FSCN-01:ARR:UniqueId_RBV +# % gui, FSCN1.arr, readback, Timestamp, S03SIM-EA-FSCN-01:ARR:TimeStamp_RBV + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ARR:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.arr,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ARR:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.arr,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ARR:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.arr,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ARR:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.arr,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ARR:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.arr,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ARR:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.arr,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ARR:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.arr,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:ARR:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.arr,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:ARR:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.arr,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:ARR:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ARR:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:ARR:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:ARR:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:ARR:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:ARR:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ARR:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:ARR:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:ARR:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:ARR:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.arr,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:ARR:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.arr,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:ARR:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.arr,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.arr,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:ARR:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:ARR:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:ARR:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.arr,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ARR:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.arr,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ARR:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:ARR:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.arr,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ARR:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:ARR:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:ARR:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.arr,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:ARR:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.arr,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:ARR:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:ARR:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:ARR:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:ARR:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ARR:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.arr,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ARR:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:ARR:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.arr,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:ARR:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.arr,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:ARR:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:ARR:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.arr,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:ARR:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.arr,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:ARR:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:ARR:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:ARR:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:ARR:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.arr,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:ARR:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.arr,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:ARR:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.arr,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.roi") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:ARR:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.arr,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ARR:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.arr,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ARR:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.arr,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ARR:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ARR:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.arr,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ARR:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.arr,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ARR:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:ARR:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:ARR:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:ARR:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:ARR:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:ARR:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:ARR:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:ARR:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.arr,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:ARR:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.arr,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:ARR:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.arr,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ARR:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.arr,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:ARR:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.arr,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:ARR:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:ARR:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.arr,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ARR:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.arr,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ARR:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:ARR:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ARR:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:ARR:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:ARR:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ARR:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:ARR:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:ARR:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:ARR:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:ARR:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:ARR:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:ARR:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:ARR:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.arr,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:ARR:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.arr,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:ARR:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:ARR:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.arr,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:ARR:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.arr,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ARR:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.arr,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:ARR:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:ARR:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:ARR:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:ARR:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:ARR:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.arr,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:ARR:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.arr,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:ARR:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.arr,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:ARR:AsynIO") +{ + field(PORT, "FSCN1.arr") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# This record is the array waveform data # +################################################################### +record(waveform, "S03SIM-EA-FSCN-01:ARR:ArrayData") +{ + field(DTYP, "asynInt8ArrayIn") + field(INP, "@asyn(FSCN1.arr,0,1)STD_ARRAY_DATA") + field(FTVL, "UCHAR") + field(NELM, "786432") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDStdArrays.template +# Database for NDStdArrays asyn driver and standard asyn device support +# Mark Rivers +# April 14, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, TYPE, Asyn Type e.g. Int32 +# % macro, FTVL, Format, e.g. Int +# % macro, NELEMENTS, Number of elements + +# This associates the template with an edm screen +# % gui, FSCN2.arr, edmtab, NDStdArrays.edl, P=S03SIM-EA-FSCN-02,R=:ARR: + +# This associates a BOY screen with the template +# % gui, FSCN2.arr, boydetail,ADApp_opi/dls/array_detail.opi, P=S03SIM-EA-FSCN-02, R=:ARR:, DESC=Array +# % gui, FSCN2.arr, boyembed, ADApp_opi/dls/array_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:ARR:, DESC=Array +# % gui, FSCN2.arr, boyembed, ADApp_opi/dls/array_embed.opi, P=S03SIM-EA-FSCN-02, R=:ARR:, DESC=Array + +# Info +# % gui, FSCN2.arr, groupHeading, Info +# % gui, FSCN2.arr, readback, Port name, S03SIM-EA-FSCN-02:ARR:PortName_RBV +# % gui, FSCN2.arr, readback, Plugin type, S03SIM-EA-FSCN-02:ARR:PluginType_RBV +# Input +# % gui, FSCN2.arr, demandString, Input, S03SIM-EA-FSCN-02:ARR:NDArrayPort +# % gui, FSCN2.arr, readback, Input, S03SIM-EA-FSCN-02:ARR:NDArrayPort_RBV + +# % gui, FSCN2.arr, groupHeading, Callback +# % gui, FSCN2.arr, enum, Callbacks, S03SIM-EA-FSCN-02:ARR:EnableCallbacks +# % gui, FSCN2.arr, statusbits, Callbacks, S03SIM-EA-FSCN-02:ARR:EnableCallbacks_RBV +# % gui, FSCN2.arr, demand, Min Callback Time, S03SIM-EA-FSCN-02:ARR:MinCallbackTime +# % gui, FSCN2.arr, readback, Min Callback Time, S03SIM-EA-FSCN-02:ARR:MinCallbackTime_RBV +# % gui, FSCN2.arr, enum, Block Callbacks, S03SIM-EA-FSCN-02:ARR:BlockingCallbacks +# % gui, FSCN2.arr, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:ARR:BlockingCallbacks_RBV + +# % gui, FSCN2.arr, groupHeading, Counters +# % gui, FSCN2.arr, demand, Array Counter, S03SIM-EA-FSCN-02:ARR:ArrayCounter +# % gui, FSCN2.arr, readback, Array Counter, S03SIM-EA-FSCN-02:ARR:ArrayCounter_RBV +# % gui, FSCN2.arr, readback, Array Rate (fps), S03SIM-EA-FSCN-02:ARR:ArrayRate_RBV +# % gui, FSCN2.arr, readback, Queue Use, S03SIM-EA-FSCN-02:ARR:QueueUse +# % gui, FSCN2.arr, readback, Queue Size, S03SIM-EA-FSCN-02:ARR:QueueSize +# % gui, FSCN2.arr, demand, Dropped Arrays, S03SIM-EA-FSCN-02:ARR:DroppedArrays +# % gui, FSCN2.arr, readback, Dropped Arrays, S03SIM-EA-FSCN-02:ARR:DroppedArrays_RBV + +# % gui, FSCN2.arr, groupHeading, Array Settings +# % gui, FSCN2.arr, readback, Num Dimensions, S03SIM-EA-FSCN-02:ARR:NDimensions_RBV +# % gui, FSCN2.arr, readback, Dim 0 Size, S03SIM-EA-FSCN-02:ARR:ArraySize0_RBV +# % gui, FSCN2.arr, readback, Dim 1 Size, S03SIM-EA-FSCN-02:ARR:ArraySize1_RBV +# % gui, FSCN2.arr, readback, Dim 2 Size, S03SIM-EA-FSCN-02:ARR:ArraySize2_RBV +# % gui, FSCN2.arr, readback, Input Data Type, S03SIM-EA-FSCN-02:ARR:DataType_RBV +# % gui, FSCN2.arr, readback, Colour Mode, S03SIM-EA-FSCN-02:ARR:ColorMode_RBV +# % gui, FSCN2.arr, readback, Bayer Pattern, S03SIM-EA-FSCN-02:ARR:BayerPattern_RBV +# % gui, FSCN2.arr, readback, Unique id, S03SIM-EA-FSCN-02:ARR:UniqueId_RBV +# % gui, FSCN2.arr, readback, Timestamp, S03SIM-EA-FSCN-02:ARR:TimeStamp_RBV + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ARR:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.arr,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ARR:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.arr,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ARR:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.arr,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ARR:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.arr,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ARR:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.arr,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ARR:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.arr,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ARR:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.arr,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:ARR:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.arr,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:ARR:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.arr,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:ARR:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ARR:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:ARR:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:ARR:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:ARR:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:ARR:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ARR:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:ARR:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:ARR:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:ARR:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.arr,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:ARR:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.arr,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:ARR:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.arr,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.arr,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:ARR:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:ARR:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:ARR:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.arr,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ARR:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.arr,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ARR:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:ARR:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.arr,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ARR:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:ARR:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:ARR:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.arr,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:ARR:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.arr,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:ARR:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:ARR:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:ARR:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:ARR:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ARR:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.arr,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ARR:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:ARR:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.arr,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:ARR:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.arr,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:ARR:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:ARR:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.arr,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:ARR:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.arr,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:ARR:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:ARR:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:ARR:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:ARR:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.arr,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:ARR:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.arr,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:ARR:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.arr,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.roi") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:ARR:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.arr,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ARR:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.arr,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ARR:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.arr,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ARR:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ARR:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.arr,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ARR:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.arr,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ARR:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:ARR:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:ARR:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:ARR:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:ARR:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:ARR:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:ARR:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:ARR:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.arr,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:ARR:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.arr,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:ARR:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.arr,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ARR:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.arr,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:ARR:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.arr,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:ARR:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:ARR:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.arr,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ARR:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.arr,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ARR:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:ARR:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ARR:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:ARR:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:ARR:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ARR:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:ARR:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:ARR:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:ARR:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:ARR:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:ARR:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:ARR:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:ARR:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.arr,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:ARR:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.arr,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:ARR:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:ARR:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.arr,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:ARR:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.arr,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ARR:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.arr,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:ARR:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:ARR:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:ARR:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:ARR:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:ARR:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.arr,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:ARR:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.arr,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:ARR:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.arr,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:ARR:AsynIO") +{ + field(PORT, "FSCN2.arr") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# This record is the array waveform data # +################################################################### +record(waveform, "S03SIM-EA-FSCN-02:ARR:ArrayData") +{ + field(DTYP, "asynInt8ArrayIn") + field(INP, "@asyn(FSCN2.arr,0,1)STD_ARRAY_DATA") + field(FTVL, "UCHAR") + field(NELM, "786432") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDProcess.template +# Database for ND PluginProcess +# Mark Rivers +# March 14, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, OAV.proc, edmtab, NDProcess.edl, P=S03SIM-DI-OAV-01,R=:PROC: + +# This associates a BOY screen with the template +# % gui, OAV.proc, boydetail,ADApp_opi/dls/proc_detail.opi, P=S03SIM-DI-OAV-01, R=:PROC:, DESC=Process +# % gui, OAV.proc, boyembed, ADApp_opi/dls/proc_embed_box.opi, P=S03SIM-DI-OAV-01, R=:PROC:, DESC=Process +# % gui, OAV.proc, boyembed, ADApp_opi/dls/proc_embed.opi, P=S03SIM-DI-OAV-01, R=:PROC:, DESC=Process + +# % gui, OAV.proc, groupHeading, Info +# % gui, OAV.proc, readback, Port name, S03SIM-DI-OAV-01:PROC:PortName_RBV +# % gui, OAV.proc, readback, Plugin type, S03SIM-DI-OAV-01:PROC:PluginType_RBV +# Input +# % gui, OAV.proc, demandString, Input, S03SIM-DI-OAV-01:PROC:NDArrayPort +# % gui, OAV.proc, readback, Input, S03SIM-DI-OAV-01:PROC:NDArrayPort_RBV + +# % gui, OAV.proc, groupHeading, Callback +# % gui, OAV.proc, enum, Callbacks, S03SIM-DI-OAV-01:PROC:EnableCallbacks +# % gui, OAV.proc, statusbits, Callbacks, S03SIM-DI-OAV-01:PROC:EnableCallbacks_RBV +# % gui, OAV.proc, demand, Min Callback Time, S03SIM-DI-OAV-01:PROC:MinCallbackTime +# % gui, OAV.proc, readback, Min Callback Time, S03SIM-DI-OAV-01:PROC:MinCallbackTime_RBV +# % gui, OAV.proc, enum, Block Callbacks, S03SIM-DI-OAV-01:PROC:BlockingCallbacks +# % gui, OAV.proc, statusbits, Block Callbacks, S03SIM-DI-OAV-01:PROC:BlockingCallbacks_RBV + +# % gui, OAV.proc, groupHeading, Counters +# % gui, OAV.proc, demand, Array Counter, S03SIM-DI-OAV-01:PROC:ArrayCounter +# % gui, OAV.proc, readback, Array Counter, S03SIM-DI-OAV-01:PROC:ArrayCounter_RBV +# % gui, OAV.proc, readback, Array Rate (fps), S03SIM-DI-OAV-01:PROC:ArrayRate_RBV +# % gui, OAV.proc, readback, Queue Use, S03SIM-DI-OAV-01:PROC:QueueUse +# % gui, OAV.proc, readback, Queue Size, S03SIM-DI-OAV-01:PROC:QueueSize +# % gui, OAV.proc, demand, Dropped Arrays, S03SIM-DI-OAV-01:PROC:DroppedArrays +# % gui, OAV.proc, readback, Dropped Arrays, S03SIM-DI-OAV-01:PROC:DroppedArrays_RBV + +# % gui, OAV.proc, groupHeading, Array Settings +# % gui, OAV.proc, readback, Num Dimensions, S03SIM-DI-OAV-01:PROC:NDimensions_RBV +# % gui, OAV.proc, readback, Dim 0 Size, S03SIM-DI-OAV-01:PROC:ArraySize0_RBV +# % gui, OAV.proc, readback, Dim 1 Size, S03SIM-DI-OAV-01:PROC:ArraySize1_RBV +# % gui, OAV.proc, readback, Dim 2 Size, S03SIM-DI-OAV-01:PROC:ArraySize2_RBV +# % gui, OAV.proc, readback, Input Data Type, S03SIM-DI-OAV-01:PROC:DataType_RBV +# % gui, OAV.proc, readback, Colour Mode, S03SIM-DI-OAV-01:PROC:ColorMode_RBV +# % gui, OAV.proc, readback, Bayer Pattern, S03SIM-DI-OAV-01:PROC:BayerPattern_RBV +# % gui, OAV.proc, readback, Unique id, S03SIM-DI-OAV-01:PROC:UniqueId_RBV +# % gui, OAV.proc, readback, Timestamp, S03SIM-DI-OAV-01:PROC:TimeStamp_RBV + +# Output +# % gui, OAV.proc, groupHeading, Output +# % gui, OAV.proc, demand, Name, S03SIM-DI-OAV-01:PROC:Name +# % gui, OAV.proc, enum, Out data type, S03SIM-DI-OAV-01:PROC:DataTypeOut +# % gui, OAV.proc, readback, Out data type, S03SIM-DI-OAV-01:PROC:DataTypeOut_RBV +# % gui, OAV.proc, demand, Attributes file, S03SIM-DI-OAV-01:PROC:NDAttributesFile + +# Background subtraction +# % gui, OAV.proc, groupHeading, Background Subtraction +# % gui, OAV.proc, enum, Enable Subtraction, S03SIM-DI-OAV-01:PROC:EnableBackground +# % gui, OAV.proc, readback, Enable Subtraction, S03SIM-DI-OAV-01:PROC:EnableBackground_RBV +# % gui, OAV.proc, command, Save Background, S03SIM-DI-OAV-01:PROC:SaveBackground +# % gui, OAV.proc, readback, Save Background, S03SIM-DI-OAV-01:PROC:SaveBackground_RBV +# Flat field +# % gui, OAV.proc, groupHeading, Flat Field +# % gui, OAV.proc, enum, Enable Flat Field, S03SIM-DI-OAV-01:PROC:EnableFlatField +# % gui, OAV.proc, readback, Enable Flat Field, S03SIM-DI-OAV-01:PROC:EnableFlatField_RBV +# % gui, OAV.proc, command, Save Flat Field, S03SIM-DI-OAV-01:PROC:SaveFlatField +# % gui, OAV.proc, readback, Save Flat Field, S03SIM-DI-OAV-01:PROC:SaveFlatField_RBV +# % gui, OAV.proc, demand, Scale Flat Field, S03SIM-DI-OAV-01:PROC:ScaleFlatField +# % gui, OAV.proc, readback, Scale Flat Field, S03SIM-DI-OAV-01:PROC:ScaleFlatField_RBV +# Scale and offset +# % gui, OAV.proc, groupHeading, Scale and Offset +# % gui, OAV.proc, enum, Enable Scale and Offset, S03SIM-DI-OAV-01:PROC:EnableOffsetScale +# % gui, OAV.proc, readback, Enable Scale and Offset, S03SIM-DI-OAV-01:PROC:EnableOffsetScale_RBV +# % gui, OAV.proc, demand, Offset, S03SIM-DI-OAV-01:PROC:Offset +# % gui, OAV.proc, readback, Offset, S03SIM-DI-OAV-01:PROC:Offset_RBV +# % gui, OAV.proc, demand, Scale, S03SIM-DI-OAV-01:PROC:Scale +# % gui, OAV.proc, readback, Scale, S03SIM-DI-OAV-01:PROC:Scale_RBV +# % gui, OAV.proc, enum, Enable Low Clip, S03SIM-DI-OAV-01:PROC:EnableLowClip +# % gui, OAV.proc, readback, Enable Low Clip, S03SIM-DI-OAV-01:PROC:EnableLowClip_RBV +# % gui, OAV.proc, demand, Low Clip, S03SIM-DI-OAV-01:PROC:LowClip +# % gui, OAV.proc, readback, Low Clip, S03SIM-DI-OAV-01:PROC:LowClip_RBV +# % gui, OAV.proc, enum, Enable High Clip, S03SIM-DI-OAV-01:PROC:EnableHighClip +# % gui, OAV.proc, readback, Enable High Clip, S03SIM-DI-OAV-01:PROC:EnableHighClip_RBV +# % gui, OAV.proc, demand, High Clip, S03SIM-DI-OAV-01:PROC:HighClip +# % gui, OAV.proc, readback, High Clip, S03SIM-DI-OAV-01:PROC:HighClip_RBV +# Recursive filter +# % gui, OAV.proc, groupHeading, Recursive Filter +# % gui, OAV.proc, enum, Enable Filter, S03SIM-DI-OAV-01:PROC:EnableFilter +# % gui, OAV.proc, readback, Enable Filter, S03SIM-DI-OAV-01:PROC:EnableFilter_RBV +# % gui, OAV.proc, enum, Filter Type, S03SIM-DI-OAV-01:PROC:FilterType +# % gui, OAV.proc, demand, N Filter, S03SIM-DI-OAV-01:PROC:NumFilter +# % gui, OAV.proc, readback, N Filter, S03SIM-DI-OAV-01:PROC:NumFilter_RBV +# % gui, OAV.proc, readback, N Filtered, S03SIM-DI-OAV-01:PROC:NumFiltered_RBV +# % gui, OAV.proc, enum, Filter Callbacks, S03SIM-DI-OAV-01:PROC:FilterCallbacks +# % gui, OAV.proc, readback, Filter Callbacks, S03SIM-DI-OAV-01:PROC:FilterCallbacks_RBV +# % gui, OAV.proc, command, Reset, S03SIM-DI-OAV-01:PROC:ResetFilter +# % gui, OAV.proc, readback, Reset, S03SIM-DI-OAV-01:PROC:ResetFilter +# % gui, OAV.proc, enum, Auto Reset, S03SIM-DI-OAV-01:PROC:AutoResetFilter +# % gui, OAV.proc, readback, Auto Reset, S03SIM-DI-OAV-01:PROC:AutoResetFilter_RBV +# % gui, OAV.proc, demand, Output Scale, S03SIM-DI-OAV-01:PROC:OScale +# % gui, OAV.proc, readback, Output Scale, S03SIM-DI-OAV-01:PROC:OScale_RBV +# % gui, OAV.proc, demand, Output Offset, S03SIM-DI-OAV-01:PROC:OOffset +# % gui, OAV.proc, readback, Output Offset, S03SIM-DI-OAV-01:PROC:OOffset_RBV +# % gui, OAV.proc, demand, Filter Scale, S03SIM-DI-OAV-01:PROC:FScale +# % gui, OAV.proc, readback, Filter Scale, S03SIM-DI-OAV-01:PROC:FScale_RBV +# % gui, OAV.proc, demand, Filter Offset, S03SIM-DI-OAV-01:PROC:FOffset +# % gui, OAV.proc, readback, Filter Offset, S03SIM-DI-OAV-01:PROC:FOffset_RBV +# Memory +# % gui, OAV.proc, groupHeading, Memory +# % gui, OAV.proc, readback, Max memory, S03SIM-DI-OAV-01:PROC:PoolMaxMem +# % gui, OAV.proc, readback, Max buffers, S03SIM-DI-OAV-01:PROC:PoolMaxBuffers +# % gui, OAV.proc, readback, Used memory, S03SIM-DI-OAV-01:PROC:PoolUsedMem +# % gui, OAV.proc, readback, Allocated buffers, S03SIM-DI-OAV-01:PROC:PoolAllocBuffers +# % gui, OAV.proc, readback, Free buffers, S03SIM-DI-OAV-01:PROC:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:PROC:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.proc,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:PROC:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.proc,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:PROC:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.proc,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:PROC:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.proc,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:PROC:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.proc,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:PROC:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.proc,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:PROC:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.proc,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:PROC:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.proc,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:PROC:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:PROC:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:PROC:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:PROC:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:PROC:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:PROC:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:PROC:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:PROC:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:PROC:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:PROC:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:PROC:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:PROC:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:PROC:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:PROC:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.proc,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:PROC:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:PROC:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:PROC:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:PROC:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:PROC:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:PROC:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:PROC:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:PROC:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:PROC:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:PROC:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.proc,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:PROC:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:PROC:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:PROC:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:PROC:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:PROC:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:PROC:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:PROC:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:PROC:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:PROC:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:PROC:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PROC:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:PROC:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:PROC:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.proc,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:PROC:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:PROC:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:PROC:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:PROC:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:PROC:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:PROC:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:PROC:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:PROC:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:PROC:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:PROC:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:PROC:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:PROC:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:PROC:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:PROC:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.proc,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:PROC:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.proc,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:PROC:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:PROC:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:PROC:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:PROC:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:PROC:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:PROC:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:PROC:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:PROC:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:PROC:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:PROC:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:PROC:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.proc,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:PROC:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.proc,0,1)NDARRAY_PORT") + field(VAL, "OAV.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:PROC:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.proc,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:PROC:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:PROC:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:PROC:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:PROC:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:PROC:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:PROC:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:PROC:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:PROC:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:PROC:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:PROC:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:PROC:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:PROC:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:PROC:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:PROC:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:PROC:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:PROC:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:PROC:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:PROC:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:PROC:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:PROC:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:PROC:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:PROC:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:PROC:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:PROC:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:PROC:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:PROC:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:PROC:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:PROC:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:PROC:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:PROC:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:PROC:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:PROC:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:PROC:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:PROC:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:PROC:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:PROC:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:PROC:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:PROC:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:PROC:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:PROC:SortSize") + field(OUT, "S03SIM-DI-OAV-01:PROC:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:PROC:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:PROC:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:PROC:AsynIO") +{ + field(PORT, "OAV.proc") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:PROC:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)PROCESS_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:PROC:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)PROCESS_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the background array processing # +################################################################### +record(bo, "S03SIM-DI-OAV-01:PROC:SaveBackground") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)SAVE_BACKGROUND") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +record(bi, "S03SIM-DI-OAV-01:PROC:SaveBackground_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)SAVE_BACKGROUND") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:PROC:EnableBackground") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)ENABLE_BACKGROUND") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:PROC:EnableBackground_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)ENABLE_BACKGROUND") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-DI-OAV-01:PROC:ValidBackground_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)VALID_BACKGROUND") + field(ZNAM, "Invalid") + field(ONAM, "Valid") + field(SCAN, "I/O Intr") +} + +record(sseq, "S03SIM-DI-OAV-01:PROC:ReadBackgroundTIFFSeq") +{ + # Make a backup copy of the NDArrayPort field + field(DOL1, "S03SIM-DI-OAV-01:PROC:NDArrayPort") + field(LNK1, "S03SIM-DI-OAV-01:PROC:PortBackup PP MS") + # Set the NDArrayPort field to the TIFF plugin + field(DOL2, "S03SIM-DI-OAV-01:PROC:TIFF:PortName_RBV") + field(LNK2, "S03SIM-DI-OAV-01:PROC:NDArrayPort PP MS") + # Enable array callbacks in the TIFF plugin + field(STR3, "Enable") + field(LNK3, "S03SIM-DI-OAV-01:PROC:TIFF:ArrayCallbacks PP MS") + # Read the TIFF file + field(DLY4, "0.1") + field(DO4, "1") + field(LNK4, "S03SIM-DI-OAV-01:PROC:TIFF:ReadFile PP MS") + # Save background TIFF + field(DLY5, "0.5") + field(DO5, "1") + field(LNK5, "S03SIM-DI-OAV-01:PROC:SaveBackground PP MS") + # Restore the NDArrayPort field + field(DOL6, "S03SIM-DI-OAV-01:PROC:PortBackup") + field(LNK6, "S03SIM-DI-OAV-01:PROC:NDArrayPort PP MS") +} + +record(stringout, "S03SIM-DI-OAV-01:PROC:PortBackup") +{ +} + +################################################################### +# These records control the flat field array processing # +################################################################### +record(bo, "S03SIM-DI-OAV-01:PROC:SaveFlatField") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)SAVE_FLAT_FIELD") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +record(bi, "S03SIM-DI-OAV-01:PROC:SaveFlatField_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)SAVE_FLAT_FIELD") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:PROC:EnableFlatField") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)ENABLE_FLAT_FIELD") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:PROC:EnableFlatField_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)ENABLE_FLAT_FIELD") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-DI-OAV-01:PROC:ValidFlatField_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)VALID_FLAT_FIELD") + field(ZNAM, "Invalid") + field(ONAM, "Valid") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:ScaleFlatField") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)SCALE_FLAT_FIELD") + field(VAL, "255.") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:PROC:ScaleFlatField_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)SCALE_FLAT_FIELD") + field(SCAN, "I/O Intr") +} + +record(sseq, "S03SIM-DI-OAV-01:PROC:ReadFlatFieldTIFFSeq") +{ + # Make a backup copy of the NDArrayPort field + field(DOL1, "S03SIM-DI-OAV-01:PROC:NDArrayPort") + field(LNK1, "S03SIM-DI-OAV-01:PROC:PortBackup PP MS") + # Set the NDArrayPort field to the TIFF plugin + field(DOL2, "S03SIM-DI-OAV-01:PROC:TIFF:PortName_RBV") + field(LNK2, "S03SIM-DI-OAV-01:PROC:NDArrayPort PP MS") + # Enable array callbacks in the TIFF plugin + field(STR3, "Enable") + field(LNK3, "S03SIM-DI-OAV-01:PROC:TIFF:ArrayCallbacks PP MS") + # Read the TIFF file + field(DLY4, "0.1") + field(DO4, "1") + field(LNK4, "S03SIM-DI-OAV-01:PROC:TIFF:ReadFile PP MS") + # Save background TIFF + field(DLY5, "0.5") + field(DO5, "1") + field(LNK5, "S03SIM-DI-OAV-01:PROC:SaveFlatField PP MS") + # Restore the NDArrayPort field + field(DOL6, "S03SIM-DI-OAV-01:PROC:PortBackup") + field(LNK6, "S03SIM-DI-OAV-01:PROC:NDArrayPort PP MS") +} + +################################################################### +# These records control the offset and scale # +################################################################### +record(bo, "S03SIM-DI-OAV-01:PROC:EnableOffsetScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)ENABLE_OFFSET_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +# Oneshot record for calculating scale and offset +record(ai, "S03SIM-DI-OAV-01:PROC:AutoOffsetScale") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)AUTO_OFFSET_SCALE") + field(ZNAM, "Done") + field(ONAM, "Calculating") +} + +record(bi, "S03SIM-DI-OAV-01:PROC:EnableOffsetScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)ENABLE_OFFSET_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:Offset") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)OFFSET") + field(PREC, "2") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:PROC:Offset_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)OFFSET") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)SCALE") + field(PREC, "2") + field(VAL, "1.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:PROC:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)SCALE") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the high and low clipping # +################################################################### +record(bo, "S03SIM-DI-OAV-01:PROC:EnableLowClip") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)ENABLE_LOW_CLIP") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:PROC:EnableLowClip_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)ENABLE_LOW_CLIP") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:LowClip") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)LOW_CLIP") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:PROC:LowClip_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)LOW_CLIP") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:PROC:EnableHighClip") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)ENABLE_HIGH_CLIP") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:PROC:EnableHighClip_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)ENABLE_HIGH_CLIP") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:HighClip") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)HIGH_CLIP") + field(VAL, "100.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:PROC:HighClip_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)HIGH_CLIP") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control frame filtering # +################################################################### +record(bo, "S03SIM-DI-OAV-01:PROC:EnableFilter") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)ENABLE_FILTER") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:PROC:EnableFilter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)ENABLE_FILTER") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:PROC:ResetFilter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)RESET_FILTER") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +record(bi, "S03SIM-DI-OAV-01:PROC:ResetFilter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)RESET_FILTER") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:PROC:AutoResetFilter") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)AUTO_RESET_FILTER") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:PROC:AutoResetFilter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)AUTO_RESET_FILTER") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:PROC:FilterCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)FILTER_CALLBACKS") + field(ZNAM, "Every array") + field(ONAM, "Array N only") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:PROC:FilterCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)FILTER_CALLBACKS") + field(ZNAM, "Every array") + field(ONAM, "Array N only") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:PROC:NumFilter") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.proc,0,1)NUM_FILTER") + field(VAL, "1") + field(FLNK, "S03SIM-DI-OAV-01:PROC:NumFilterRecip.PROC PP") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:NumFilter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)NUM_FILTER") + field(SCAN, "I/O Intr") +} + +# This is 1/NumFilter, used in RecursiveSum filter +# If this value changes we need to process FilterType to make it update filter coefficients +record(calc, "S03SIM-DI-OAV-01:PROC:NumFilterRecip") +{ + field(INPA, "S03SIM-DI-OAV-01:PROC:NumFilter.VAL NPP") + field(CALC, "1./A") + field(FLNK, "S03SIM-DI-OAV-01:PROC:FilterType.PROC PP") +} + +record(longin, "S03SIM-DI-OAV-01:PROC:NumFiltered_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.proc,0,1)NUM_FILTERED") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:OOffset") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)FILTER_OOFFSET") + field(VAL, "0.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-DI-OAV-01:PROC:OOffset_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)FILTER_OOFFSET") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:OScale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)FILTER_OSCALE") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-DI-OAV-01:PROC:OScale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)FILTER_OSCALE") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:OC1") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)FILTER_OC1") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-DI-OAV-01:PROC:OC1_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)FILTER_OC1") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:OC2") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)FILTER_OC2") + field(VAL, "-1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-DI-OAV-01:PROC:OC2_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)FILTER_OC2") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:OC3") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)FILTER_OC3") + field(VAL, "0.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-DI-OAV-01:PROC:OC3_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)FILTER_OC3") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:OC4") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)FILTER_OC4") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-DI-OAV-01:PROC:OC4_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)FILTER_OC4") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:FOffset") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)FILTER_FOFFSET") + field(VAL, "0.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-DI-OAV-01:PROC:FOffset_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)FILTER_FOFFSET") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:FScale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)FILTER_FSCALE") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-DI-OAV-01:PROC:FScale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)FILTER_FSCALE") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:FC1") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)FILTER_FC1") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-DI-OAV-01:PROC:FC1_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)FILTER_FC1") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:FC2") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)FILTER_FC2") + field(VAL, "-1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-DI-OAV-01:PROC:FC2_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)FILTER_FC2") + field(PREC, "2") + field(SCAN, "I/O Intr") +} +record(ao, "S03SIM-DI-OAV-01:PROC:FC3") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)FILTER_FC3") + field(VAL, "0.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-DI-OAV-01:PROC:FC3_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)FILTER_FC3") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:FC4") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)FILTER_FC4") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-DI-OAV-01:PROC:FC4_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)FILTER_FC4") + field(PREC, "2") + field(SCAN, "I/O Intr") +} +record(ao, "S03SIM-DI-OAV-01:PROC:ROffset") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)FILTER_ROFFSET") + field(VAL, "0.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-DI-OAV-01:PROC:ROffset_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)FILTER_ROFFSET") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:RC1") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)FILTER_RC1") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-DI-OAV-01:PROC:RC1_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)FILTER_RC1") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PROC:RC2") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.proc,0,1)FILTER_RC2") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-DI-OAV-01:PROC:RC2_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.proc,0,1)FILTER_RC2") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +# We don't see PINI=YES for FilterType because we want to restore the actual coefficients +# We do restore this record, but we don't process it +record(mbbo, "S03SIM-DI-OAV-01:PROC:FilterType") +{ + field(ZRST, "RecursiveAve") + field(ZRVL, "1") + field(ONST, "Average") + field(ONVL, "2") + field(TWST, "Sum") + field(TWVL, "3") + field(THST, "Difference") + field(THVL, "4") + field(FRST, "RecursiveAveDiff") + field(FRVL, "5") + field(FVST, "CopyToFilter") + field(FVVL, "6") + field(FLNK, "S03SIM-DI-OAV-01:PROC:FilterTypeSeq PP MS") + info(autosaveFields, "VAL") +} + +record(seq, "S03SIM-DI-OAV-01:PROC:FilterTypeSeq") +{ + field(SELL, "S03SIM-DI-OAV-01:PROC:FilterType.RVAL NPP") + field(SELM, "Specified") + field(DOL1, "1") + field(LNK1, "S03SIM-DI-OAV-01:PROC:RecursiveAveSeq.PROC PP MS") + field(DOL2, "1") + field(LNK2, "S03SIM-DI-OAV-01:PROC:AverageSeq.PROC PP MS") + field(DOL3, "1") + field(LNK3, "S03SIM-DI-OAV-01:PROC:SumSeq.PROC PP MS") + field(DOL4, "1") + field(LNK4, "S03SIM-DI-OAV-01:PROC:DifferenceSeq.PROC PP MS") + field(DOL5, "1") + field(LNK5, "S03SIM-DI-OAV-01:PROC:RecursiveAveDiffSeq.PROC PP MS") + field(DOL6, "1") + field(LNK6, "S03SIM-DI-OAV-01:PROC:CopyToFilterSeq.PROC PP MS") +} + +record(seq, "S03SIM-DI-OAV-01:PROC:RecursiveAveSeq") +{ + field(DOL1, "1") + field(LNK1, "S03SIM-DI-OAV-01:PROC:OC1 PP MS") + field(DOL2, "-1") + field(LNK2, "S03SIM-DI-OAV-01:PROC:OC2 PP MS") + field(DOL3, "0") + field(LNK3, "S03SIM-DI-OAV-01:PROC:OC3 PP MS") + field(DOL4, "1") + field(LNK4, "S03SIM-DI-OAV-01:PROC:OC4 PP MS") + field(DOL5, "1") + field(LNK5, "S03SIM-DI-OAV-01:PROC:FC1 PP MS") + field(DOL6, "-1") + field(LNK6, "S03SIM-DI-OAV-01:PROC:FC2 PP MS") + field(DOL7, "0") + field(LNK7, "S03SIM-DI-OAV-01:PROC:FC3 PP MS") + field(DOL8, "1") + field(LNK8, "S03SIM-DI-OAV-01:PROC:FC4 PP MS") + field(DOL9, "0") + field(LNK9, "S03SIM-DI-OAV-01:PROC:RC1 PP MS") + field(DOLA, "1") + field(LNKA, "S03SIM-DI-OAV-01:PROC:RC2 PP MS") +} + +record(seq, "S03SIM-DI-OAV-01:PROC:AverageSeq") +{ + field(DOL1, "1") + field(LNK1, "S03SIM-DI-OAV-01:PROC:OC1 PP MS") + field(DOL2, "0") + field(LNK2, "S03SIM-DI-OAV-01:PROC:OC2 PP MS") + field(DOL3, "S03SIM-DI-OAV-01:PROC:NumFilterRecip NPP") + field(LNK3, "S03SIM-DI-OAV-01:PROC:OC3 PP MS") + field(DOL4, "0") + field(LNK4, "S03SIM-DI-OAV-01:PROC:OC4 PP MS") + field(DOL5, "1") + field(LNK5, "S03SIM-DI-OAV-01:PROC:FC1 PP MS") + field(DOL6, "0") + field(LNK6, "S03SIM-DI-OAV-01:PROC:FC2 PP MS") + field(DOL7, "S03SIM-DI-OAV-01:PROC:NumFilterRecip NPP") + field(LNK7, "S03SIM-DI-OAV-01:PROC:FC3 PP MS") + field(DOL8, "0") + field(LNK8, "S03SIM-DI-OAV-01:PROC:FC4 PP MS") + field(DOL9, "0") + field(LNK9, "S03SIM-DI-OAV-01:PROC:RC1 PP MS") + field(DOLA, "0") + field(LNKA, "S03SIM-DI-OAV-01:PROC:RC2 PP MS") +} + +record(seq, "S03SIM-DI-OAV-01:PROC:SumSeq") +{ + field(DOL1, "1") + field(LNK1, "S03SIM-DI-OAV-01:PROC:OC1 PP MS") + field(DOL2, "0") + field(LNK2, "S03SIM-DI-OAV-01:PROC:OC2 PP MS") + field(DOL3, "1") + field(LNK3, "S03SIM-DI-OAV-01:PROC:OC3 PP MS") + field(DOL4, "0") + field(LNK4, "S03SIM-DI-OAV-01:PROC:OC4 PP MS") + field(DOL5, "1") + field(LNK5, "S03SIM-DI-OAV-01:PROC:FC1 PP MS") + field(DOL6, "0") + field(LNK6, "S03SIM-DI-OAV-01:PROC:FC2 PP MS") + field(DOL7, "1") + field(LNK7, "S03SIM-DI-OAV-01:PROC:FC3 PP MS") + field(DOL8, "0") + field(LNK8, "S03SIM-DI-OAV-01:PROC:FC4 PP MS") + field(DOL9, "0") + field(LNK9, "S03SIM-DI-OAV-01:PROC:RC1 PP MS") + field(DOLA, "0") + field(LNKA, "S03SIM-DI-OAV-01:PROC:RC2 PP MS") +} + +record(seq, "S03SIM-DI-OAV-01:PROC:DifferenceSeq") +{ + field(DOL1, "-1") + field(LNK1, "S03SIM-DI-OAV-01:PROC:OC1 PP MS") + field(DOL2, "0") + field(LNK2, "S03SIM-DI-OAV-01:PROC:OC2 PP MS") + field(DOL3, "1") + field(LNK3, "S03SIM-DI-OAV-01:PROC:OC3 PP MS") + field(DOL4, "0") + field(LNK4, "S03SIM-DI-OAV-01:PROC:OC4 PP MS") + field(DOL5, "0") + field(LNK5, "S03SIM-DI-OAV-01:PROC:FC1 PP MS") + field(DOL6, "0") + field(LNK6, "S03SIM-DI-OAV-01:PROC:FC2 PP MS") + field(DOL7, "1") + field(LNK7, "S03SIM-DI-OAV-01:PROC:FC3 PP MS") + field(DOL8, "0") + field(LNK8, "S03SIM-DI-OAV-01:PROC:FC4 PP MS") + field(DOL9, "0") + field(LNK9, "S03SIM-DI-OAV-01:PROC:RC1 PP MS") + field(DOLA, "1") + field(LNKA, "S03SIM-DI-OAV-01:PROC:RC2 PP MS") +} + +record(seq, "S03SIM-DI-OAV-01:PROC:RecursiveAveDiffSeq") +{ + field(DOL1, "-1") + field(LNK1, "S03SIM-DI-OAV-01:PROC:OC1 PP MS") + field(DOL2, "0") + field(LNK2, "S03SIM-DI-OAV-01:PROC:OC2 PP MS") + field(DOL3, "1") + field(LNK3, "S03SIM-DI-OAV-01:PROC:OC3 PP MS") + field(DOL4, "0") + field(LNK4, "S03SIM-DI-OAV-01:PROC:OC4 PP MS") + field(DOL5, "1") + field(LNK5, "S03SIM-DI-OAV-01:PROC:FC1 PP MS") + field(DOL6, "-1") + field(LNK6, "S03SIM-DI-OAV-01:PROC:FC2 PP MS") + field(DOL7, "0") + field(LNK7, "S03SIM-DI-OAV-01:PROC:FC3 PP MS") + field(DOL8, "1") + field(LNK8, "S03SIM-DI-OAV-01:PROC:FC4 PP MS") + field(DOL9, "0") + field(LNK9, "S03SIM-DI-OAV-01:PROC:RC1 PP MS") + field(DOLA, "1") + field(LNKA, "S03SIM-DI-OAV-01:PROC:RC2 PP MS") +} + +record(seq, "S03SIM-DI-OAV-01:PROC:CopyToFilterSeq") +{ + field(DOL1, "0") + field(LNK1, "S03SIM-DI-OAV-01:PROC:OC1 PP MS") + field(DOL2, "0") + field(LNK2, "S03SIM-DI-OAV-01:PROC:OC2 PP MS") + field(DOL3, "1") + field(LNK3, "S03SIM-DI-OAV-01:PROC:OC3 PP MS") + field(DOL4, "0") + field(LNK4, "S03SIM-DI-OAV-01:PROC:OC4 PP MS") + field(DOL5, "0") + field(LNK5, "S03SIM-DI-OAV-01:PROC:FC1 PP MS") + field(DOL6, "0") + field(LNK6, "S03SIM-DI-OAV-01:PROC:FC2 PP MS") + field(DOL7, "1") + field(LNK7, "S03SIM-DI-OAV-01:PROC:FC3 PP MS") + field(DOL8, "0") + field(LNK8, "S03SIM-DI-OAV-01:PROC:FC4 PP MS") + field(DOL9, "0") + field(LNK9, "S03SIM-DI-OAV-01:PROC:RC1 PP MS") + field(DOLA, "1") + field(LNKA, "S03SIM-DI-OAV-01:PROC:RC2 PP MS") +} +#=================================================================# +# Template file: NDProcess.template +# Database for ND PluginProcess +# Mark Rivers +# March 14, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, FSCN1.proc, edmtab, NDProcess.edl, P=S03SIM-EA-FSCN-01,R=:PROC: + +# This associates a BOY screen with the template +# % gui, FSCN1.proc, boydetail,ADApp_opi/dls/proc_detail.opi, P=S03SIM-EA-FSCN-01, R=:PROC:, DESC=Process +# % gui, FSCN1.proc, boyembed, ADApp_opi/dls/proc_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:PROC:, DESC=Process +# % gui, FSCN1.proc, boyembed, ADApp_opi/dls/proc_embed.opi, P=S03SIM-EA-FSCN-01, R=:PROC:, DESC=Process + +# % gui, FSCN1.proc, groupHeading, Info +# % gui, FSCN1.proc, readback, Port name, S03SIM-EA-FSCN-01:PROC:PortName_RBV +# % gui, FSCN1.proc, readback, Plugin type, S03SIM-EA-FSCN-01:PROC:PluginType_RBV +# Input +# % gui, FSCN1.proc, demandString, Input, S03SIM-EA-FSCN-01:PROC:NDArrayPort +# % gui, FSCN1.proc, readback, Input, S03SIM-EA-FSCN-01:PROC:NDArrayPort_RBV + +# % gui, FSCN1.proc, groupHeading, Callback +# % gui, FSCN1.proc, enum, Callbacks, S03SIM-EA-FSCN-01:PROC:EnableCallbacks +# % gui, FSCN1.proc, statusbits, Callbacks, S03SIM-EA-FSCN-01:PROC:EnableCallbacks_RBV +# % gui, FSCN1.proc, demand, Min Callback Time, S03SIM-EA-FSCN-01:PROC:MinCallbackTime +# % gui, FSCN1.proc, readback, Min Callback Time, S03SIM-EA-FSCN-01:PROC:MinCallbackTime_RBV +# % gui, FSCN1.proc, enum, Block Callbacks, S03SIM-EA-FSCN-01:PROC:BlockingCallbacks +# % gui, FSCN1.proc, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:PROC:BlockingCallbacks_RBV + +# % gui, FSCN1.proc, groupHeading, Counters +# % gui, FSCN1.proc, demand, Array Counter, S03SIM-EA-FSCN-01:PROC:ArrayCounter +# % gui, FSCN1.proc, readback, Array Counter, S03SIM-EA-FSCN-01:PROC:ArrayCounter_RBV +# % gui, FSCN1.proc, readback, Array Rate (fps), S03SIM-EA-FSCN-01:PROC:ArrayRate_RBV +# % gui, FSCN1.proc, readback, Queue Use, S03SIM-EA-FSCN-01:PROC:QueueUse +# % gui, FSCN1.proc, readback, Queue Size, S03SIM-EA-FSCN-01:PROC:QueueSize +# % gui, FSCN1.proc, demand, Dropped Arrays, S03SIM-EA-FSCN-01:PROC:DroppedArrays +# % gui, FSCN1.proc, readback, Dropped Arrays, S03SIM-EA-FSCN-01:PROC:DroppedArrays_RBV + +# % gui, FSCN1.proc, groupHeading, Array Settings +# % gui, FSCN1.proc, readback, Num Dimensions, S03SIM-EA-FSCN-01:PROC:NDimensions_RBV +# % gui, FSCN1.proc, readback, Dim 0 Size, S03SIM-EA-FSCN-01:PROC:ArraySize0_RBV +# % gui, FSCN1.proc, readback, Dim 1 Size, S03SIM-EA-FSCN-01:PROC:ArraySize1_RBV +# % gui, FSCN1.proc, readback, Dim 2 Size, S03SIM-EA-FSCN-01:PROC:ArraySize2_RBV +# % gui, FSCN1.proc, readback, Input Data Type, S03SIM-EA-FSCN-01:PROC:DataType_RBV +# % gui, FSCN1.proc, readback, Colour Mode, S03SIM-EA-FSCN-01:PROC:ColorMode_RBV +# % gui, FSCN1.proc, readback, Bayer Pattern, S03SIM-EA-FSCN-01:PROC:BayerPattern_RBV +# % gui, FSCN1.proc, readback, Unique id, S03SIM-EA-FSCN-01:PROC:UniqueId_RBV +# % gui, FSCN1.proc, readback, Timestamp, S03SIM-EA-FSCN-01:PROC:TimeStamp_RBV + +# Output +# % gui, FSCN1.proc, groupHeading, Output +# % gui, FSCN1.proc, demand, Name, S03SIM-EA-FSCN-01:PROC:Name +# % gui, FSCN1.proc, enum, Out data type, S03SIM-EA-FSCN-01:PROC:DataTypeOut +# % gui, FSCN1.proc, readback, Out data type, S03SIM-EA-FSCN-01:PROC:DataTypeOut_RBV +# % gui, FSCN1.proc, demand, Attributes file, S03SIM-EA-FSCN-01:PROC:NDAttributesFile + +# Background subtraction +# % gui, FSCN1.proc, groupHeading, Background Subtraction +# % gui, FSCN1.proc, enum, Enable Subtraction, S03SIM-EA-FSCN-01:PROC:EnableBackground +# % gui, FSCN1.proc, readback, Enable Subtraction, S03SIM-EA-FSCN-01:PROC:EnableBackground_RBV +# % gui, FSCN1.proc, command, Save Background, S03SIM-EA-FSCN-01:PROC:SaveBackground +# % gui, FSCN1.proc, readback, Save Background, S03SIM-EA-FSCN-01:PROC:SaveBackground_RBV +# Flat field +# % gui, FSCN1.proc, groupHeading, Flat Field +# % gui, FSCN1.proc, enum, Enable Flat Field, S03SIM-EA-FSCN-01:PROC:EnableFlatField +# % gui, FSCN1.proc, readback, Enable Flat Field, S03SIM-EA-FSCN-01:PROC:EnableFlatField_RBV +# % gui, FSCN1.proc, command, Save Flat Field, S03SIM-EA-FSCN-01:PROC:SaveFlatField +# % gui, FSCN1.proc, readback, Save Flat Field, S03SIM-EA-FSCN-01:PROC:SaveFlatField_RBV +# % gui, FSCN1.proc, demand, Scale Flat Field, S03SIM-EA-FSCN-01:PROC:ScaleFlatField +# % gui, FSCN1.proc, readback, Scale Flat Field, S03SIM-EA-FSCN-01:PROC:ScaleFlatField_RBV +# Scale and offset +# % gui, FSCN1.proc, groupHeading, Scale and Offset +# % gui, FSCN1.proc, enum, Enable Scale and Offset, S03SIM-EA-FSCN-01:PROC:EnableOffsetScale +# % gui, FSCN1.proc, readback, Enable Scale and Offset, S03SIM-EA-FSCN-01:PROC:EnableOffsetScale_RBV +# % gui, FSCN1.proc, demand, Offset, S03SIM-EA-FSCN-01:PROC:Offset +# % gui, FSCN1.proc, readback, Offset, S03SIM-EA-FSCN-01:PROC:Offset_RBV +# % gui, FSCN1.proc, demand, Scale, S03SIM-EA-FSCN-01:PROC:Scale +# % gui, FSCN1.proc, readback, Scale, S03SIM-EA-FSCN-01:PROC:Scale_RBV +# % gui, FSCN1.proc, enum, Enable Low Clip, S03SIM-EA-FSCN-01:PROC:EnableLowClip +# % gui, FSCN1.proc, readback, Enable Low Clip, S03SIM-EA-FSCN-01:PROC:EnableLowClip_RBV +# % gui, FSCN1.proc, demand, Low Clip, S03SIM-EA-FSCN-01:PROC:LowClip +# % gui, FSCN1.proc, readback, Low Clip, S03SIM-EA-FSCN-01:PROC:LowClip_RBV +# % gui, FSCN1.proc, enum, Enable High Clip, S03SIM-EA-FSCN-01:PROC:EnableHighClip +# % gui, FSCN1.proc, readback, Enable High Clip, S03SIM-EA-FSCN-01:PROC:EnableHighClip_RBV +# % gui, FSCN1.proc, demand, High Clip, S03SIM-EA-FSCN-01:PROC:HighClip +# % gui, FSCN1.proc, readback, High Clip, S03SIM-EA-FSCN-01:PROC:HighClip_RBV +# Recursive filter +# % gui, FSCN1.proc, groupHeading, Recursive Filter +# % gui, FSCN1.proc, enum, Enable Filter, S03SIM-EA-FSCN-01:PROC:EnableFilter +# % gui, FSCN1.proc, readback, Enable Filter, S03SIM-EA-FSCN-01:PROC:EnableFilter_RBV +# % gui, FSCN1.proc, enum, Filter Type, S03SIM-EA-FSCN-01:PROC:FilterType +# % gui, FSCN1.proc, demand, N Filter, S03SIM-EA-FSCN-01:PROC:NumFilter +# % gui, FSCN1.proc, readback, N Filter, S03SIM-EA-FSCN-01:PROC:NumFilter_RBV +# % gui, FSCN1.proc, readback, N Filtered, S03SIM-EA-FSCN-01:PROC:NumFiltered_RBV +# % gui, FSCN1.proc, enum, Filter Callbacks, S03SIM-EA-FSCN-01:PROC:FilterCallbacks +# % gui, FSCN1.proc, readback, Filter Callbacks, S03SIM-EA-FSCN-01:PROC:FilterCallbacks_RBV +# % gui, FSCN1.proc, command, Reset, S03SIM-EA-FSCN-01:PROC:ResetFilter +# % gui, FSCN1.proc, readback, Reset, S03SIM-EA-FSCN-01:PROC:ResetFilter +# % gui, FSCN1.proc, enum, Auto Reset, S03SIM-EA-FSCN-01:PROC:AutoResetFilter +# % gui, FSCN1.proc, readback, Auto Reset, S03SIM-EA-FSCN-01:PROC:AutoResetFilter_RBV +# % gui, FSCN1.proc, demand, Output Scale, S03SIM-EA-FSCN-01:PROC:OScale +# % gui, FSCN1.proc, readback, Output Scale, S03SIM-EA-FSCN-01:PROC:OScale_RBV +# % gui, FSCN1.proc, demand, Output Offset, S03SIM-EA-FSCN-01:PROC:OOffset +# % gui, FSCN1.proc, readback, Output Offset, S03SIM-EA-FSCN-01:PROC:OOffset_RBV +# % gui, FSCN1.proc, demand, Filter Scale, S03SIM-EA-FSCN-01:PROC:FScale +# % gui, FSCN1.proc, readback, Filter Scale, S03SIM-EA-FSCN-01:PROC:FScale_RBV +# % gui, FSCN1.proc, demand, Filter Offset, S03SIM-EA-FSCN-01:PROC:FOffset +# % gui, FSCN1.proc, readback, Filter Offset, S03SIM-EA-FSCN-01:PROC:FOffset_RBV +# Memory +# % gui, FSCN1.proc, groupHeading, Memory +# % gui, FSCN1.proc, readback, Max memory, S03SIM-EA-FSCN-01:PROC:PoolMaxMem +# % gui, FSCN1.proc, readback, Max buffers, S03SIM-EA-FSCN-01:PROC:PoolMaxBuffers +# % gui, FSCN1.proc, readback, Used memory, S03SIM-EA-FSCN-01:PROC:PoolUsedMem +# % gui, FSCN1.proc, readback, Allocated buffers, S03SIM-EA-FSCN-01:PROC:PoolAllocBuffers +# % gui, FSCN1.proc, readback, Free buffers, S03SIM-EA-FSCN-01:PROC:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:PROC:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.proc,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:PROC:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.proc,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:PROC:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.proc,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:PROC:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.proc,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:PROC:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.proc,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:PROC:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.proc,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:PROC:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.proc,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:PROC:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.proc,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:PROC:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:PROC:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:PROC:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:PROC:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:PROC:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:PROC:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:PROC:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:PROC:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:PROC:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:PROC:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:PROC:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:PROC:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:PROC:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.proc,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.proc,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PROC:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:PROC:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:PROC:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.proc,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:PROC:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:PROC:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:PROC:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:PROC:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:PROC:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:PROC:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:PROC:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:PROC:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:PROC:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:PROC:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:PROC:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:PROC:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:PROC:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:PROC:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.proc,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:PROC:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.proc,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:PROC:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:PROC:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:PROC:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:PROC:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:PROC:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:PROC:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:PROC:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:PROC:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.proc,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:PROC:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.proc,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:PROC:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.proc,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:PROC:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:PROC:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:PROC:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:PROC:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:PROC:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:PROC:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:PROC:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:PROC:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:PROC:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:PROC:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:PROC:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:PROC:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:PROC:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:PROC:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:PROC:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:PROC:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:PROC:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:PROC:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:PROC:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:PROC:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:PROC:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:PROC:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:PROC:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:PROC:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:PROC:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:PROC:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:PROC:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:PROC:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:PROC:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:PROC:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:PROC:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:PROC:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:PROC:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:PROC:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:PROC:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:PROC:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:PROC:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:PROC:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:PROC:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:PROC:AsynIO") +{ + field(PORT, "FSCN1.proc") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:PROC:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)PROCESS_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:PROC:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)PROCESS_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the background array processing # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:PROC:SaveBackground") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)SAVE_BACKGROUND") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +record(bi, "S03SIM-EA-FSCN-01:PROC:SaveBackground_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)SAVE_BACKGROUND") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:PROC:EnableBackground") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)ENABLE_BACKGROUND") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:PROC:EnableBackground_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)ENABLE_BACKGROUND") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-01:PROC:ValidBackground_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)VALID_BACKGROUND") + field(ZNAM, "Invalid") + field(ONAM, "Valid") + field(SCAN, "I/O Intr") +} + +record(sseq, "S03SIM-EA-FSCN-01:PROC:ReadBackgroundTIFFSeq") +{ + # Make a backup copy of the NDArrayPort field + field(DOL1, "S03SIM-EA-FSCN-01:PROC:NDArrayPort") + field(LNK1, "S03SIM-EA-FSCN-01:PROC:PortBackup PP MS") + # Set the NDArrayPort field to the TIFF plugin + field(DOL2, "S03SIM-EA-FSCN-01:PROC:TIFF:PortName_RBV") + field(LNK2, "S03SIM-EA-FSCN-01:PROC:NDArrayPort PP MS") + # Enable array callbacks in the TIFF plugin + field(STR3, "Enable") + field(LNK3, "S03SIM-EA-FSCN-01:PROC:TIFF:ArrayCallbacks PP MS") + # Read the TIFF file + field(DLY4, "0.1") + field(DO4, "1") + field(LNK4, "S03SIM-EA-FSCN-01:PROC:TIFF:ReadFile PP MS") + # Save background TIFF + field(DLY5, "0.5") + field(DO5, "1") + field(LNK5, "S03SIM-EA-FSCN-01:PROC:SaveBackground PP MS") + # Restore the NDArrayPort field + field(DOL6, "S03SIM-EA-FSCN-01:PROC:PortBackup") + field(LNK6, "S03SIM-EA-FSCN-01:PROC:NDArrayPort PP MS") +} + +record(stringout, "S03SIM-EA-FSCN-01:PROC:PortBackup") +{ +} + +################################################################### +# These records control the flat field array processing # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:PROC:SaveFlatField") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)SAVE_FLAT_FIELD") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +record(bi, "S03SIM-EA-FSCN-01:PROC:SaveFlatField_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)SAVE_FLAT_FIELD") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:PROC:EnableFlatField") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)ENABLE_FLAT_FIELD") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:PROC:EnableFlatField_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)ENABLE_FLAT_FIELD") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-01:PROC:ValidFlatField_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)VALID_FLAT_FIELD") + field(ZNAM, "Invalid") + field(ONAM, "Valid") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:ScaleFlatField") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)SCALE_FLAT_FIELD") + field(VAL, "255.") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:PROC:ScaleFlatField_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)SCALE_FLAT_FIELD") + field(SCAN, "I/O Intr") +} + +record(sseq, "S03SIM-EA-FSCN-01:PROC:ReadFlatFieldTIFFSeq") +{ + # Make a backup copy of the NDArrayPort field + field(DOL1, "S03SIM-EA-FSCN-01:PROC:NDArrayPort") + field(LNK1, "S03SIM-EA-FSCN-01:PROC:PortBackup PP MS") + # Set the NDArrayPort field to the TIFF plugin + field(DOL2, "S03SIM-EA-FSCN-01:PROC:TIFF:PortName_RBV") + field(LNK2, "S03SIM-EA-FSCN-01:PROC:NDArrayPort PP MS") + # Enable array callbacks in the TIFF plugin + field(STR3, "Enable") + field(LNK3, "S03SIM-EA-FSCN-01:PROC:TIFF:ArrayCallbacks PP MS") + # Read the TIFF file + field(DLY4, "0.1") + field(DO4, "1") + field(LNK4, "S03SIM-EA-FSCN-01:PROC:TIFF:ReadFile PP MS") + # Save background TIFF + field(DLY5, "0.5") + field(DO5, "1") + field(LNK5, "S03SIM-EA-FSCN-01:PROC:SaveFlatField PP MS") + # Restore the NDArrayPort field + field(DOL6, "S03SIM-EA-FSCN-01:PROC:PortBackup") + field(LNK6, "S03SIM-EA-FSCN-01:PROC:NDArrayPort PP MS") +} + +################################################################### +# These records control the offset and scale # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:PROC:EnableOffsetScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)ENABLE_OFFSET_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +# Oneshot record for calculating scale and offset +record(ai, "S03SIM-EA-FSCN-01:PROC:AutoOffsetScale") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)AUTO_OFFSET_SCALE") + field(ZNAM, "Done") + field(ONAM, "Calculating") +} + +record(bi, "S03SIM-EA-FSCN-01:PROC:EnableOffsetScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)ENABLE_OFFSET_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:Offset") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)OFFSET") + field(PREC, "2") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:PROC:Offset_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)OFFSET") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)SCALE") + field(PREC, "2") + field(VAL, "1.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:PROC:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)SCALE") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the high and low clipping # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:PROC:EnableLowClip") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)ENABLE_LOW_CLIP") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:PROC:EnableLowClip_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)ENABLE_LOW_CLIP") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:LowClip") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)LOW_CLIP") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:PROC:LowClip_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)LOW_CLIP") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:PROC:EnableHighClip") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)ENABLE_HIGH_CLIP") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:PROC:EnableHighClip_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)ENABLE_HIGH_CLIP") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:HighClip") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)HIGH_CLIP") + field(VAL, "100.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:PROC:HighClip_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)HIGH_CLIP") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control frame filtering # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:PROC:EnableFilter") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)ENABLE_FILTER") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:PROC:EnableFilter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)ENABLE_FILTER") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:PROC:ResetFilter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)RESET_FILTER") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +record(bi, "S03SIM-EA-FSCN-01:PROC:ResetFilter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)RESET_FILTER") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:PROC:AutoResetFilter") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)AUTO_RESET_FILTER") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:PROC:AutoResetFilter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)AUTO_RESET_FILTER") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:PROC:FilterCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_CALLBACKS") + field(ZNAM, "Every array") + field(ONAM, "Array N only") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:PROC:FilterCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)FILTER_CALLBACKS") + field(ZNAM, "Every array") + field(ONAM, "Array N only") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:PROC:NumFilter") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.proc,0,1)NUM_FILTER") + field(VAL, "1") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:NumFilterRecip.PROC PP") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:NumFilter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)NUM_FILTER") + field(SCAN, "I/O Intr") +} + +# This is 1/NumFilter, used in RecursiveSum filter +# If this value changes we need to process FilterType to make it update filter coefficients +record(calc, "S03SIM-EA-FSCN-01:PROC:NumFilterRecip") +{ + field(INPA, "S03SIM-EA-FSCN-01:PROC:NumFilter.VAL NPP") + field(CALC, "1./A") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:FilterType.PROC PP") +} + +record(longin, "S03SIM-EA-FSCN-01:PROC:NumFiltered_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.proc,0,1)NUM_FILTERED") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:OOffset") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_OOFFSET") + field(VAL, "0.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-01:PROC:OOffset_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)FILTER_OOFFSET") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:OScale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_OSCALE") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-01:PROC:OScale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)FILTER_OSCALE") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:OC1") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_OC1") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-01:PROC:OC1_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)FILTER_OC1") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:OC2") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_OC2") + field(VAL, "-1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-01:PROC:OC2_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)FILTER_OC2") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:OC3") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_OC3") + field(VAL, "0.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-01:PROC:OC3_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)FILTER_OC3") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:OC4") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_OC4") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-01:PROC:OC4_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)FILTER_OC4") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:FOffset") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_FOFFSET") + field(VAL, "0.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-01:PROC:FOffset_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)FILTER_FOFFSET") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:FScale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_FSCALE") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-01:PROC:FScale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)FILTER_FSCALE") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:FC1") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_FC1") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-01:PROC:FC1_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)FILTER_FC1") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:FC2") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_FC2") + field(VAL, "-1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-01:PROC:FC2_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)FILTER_FC2") + field(PREC, "2") + field(SCAN, "I/O Intr") +} +record(ao, "S03SIM-EA-FSCN-01:PROC:FC3") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_FC3") + field(VAL, "0.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-01:PROC:FC3_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)FILTER_FC3") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:FC4") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_FC4") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-01:PROC:FC4_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)FILTER_FC4") + field(PREC, "2") + field(SCAN, "I/O Intr") +} +record(ao, "S03SIM-EA-FSCN-01:PROC:ROffset") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_ROFFSET") + field(VAL, "0.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-01:PROC:ROffset_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)FILTER_ROFFSET") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:RC1") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_RC1") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-01:PROC:RC1_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)FILTER_RC1") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PROC:RC2") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_RC2") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-01:PROC:RC2_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.proc,0,1)FILTER_RC2") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +# We don't see PINI=YES for FilterType because we want to restore the actual coefficients +# We do restore this record, but we don't process it +record(mbbo, "S03SIM-EA-FSCN-01:PROC:FilterType") +{ + field(ZRST, "RecursiveAve") + field(ZRVL, "1") + field(ONST, "Average") + field(ONVL, "2") + field(TWST, "Sum") + field(TWVL, "3") + field(THST, "Difference") + field(THVL, "4") + field(FRST, "RecursiveAveDiff") + field(FRVL, "5") + field(FVST, "CopyToFilter") + field(FVVL, "6") + field(FLNK, "S03SIM-EA-FSCN-01:PROC:FilterTypeSeq PP MS") + info(autosaveFields, "VAL") +} + +record(seq, "S03SIM-EA-FSCN-01:PROC:FilterTypeSeq") +{ + field(SELL, "S03SIM-EA-FSCN-01:PROC:FilterType.RVAL NPP") + field(SELM, "Specified") + field(DOL1, "1") + field(LNK1, "S03SIM-EA-FSCN-01:PROC:RecursiveAveSeq.PROC PP MS") + field(DOL2, "1") + field(LNK2, "S03SIM-EA-FSCN-01:PROC:AverageSeq.PROC PP MS") + field(DOL3, "1") + field(LNK3, "S03SIM-EA-FSCN-01:PROC:SumSeq.PROC PP MS") + field(DOL4, "1") + field(LNK4, "S03SIM-EA-FSCN-01:PROC:DifferenceSeq.PROC PP MS") + field(DOL5, "1") + field(LNK5, "S03SIM-EA-FSCN-01:PROC:RecursiveAveDiffSeq.PROC PP MS") + field(DOL6, "1") + field(LNK6, "S03SIM-EA-FSCN-01:PROC:CopyToFilterSeq.PROC PP MS") +} + +record(seq, "S03SIM-EA-FSCN-01:PROC:RecursiveAveSeq") +{ + field(DOL1, "1") + field(LNK1, "S03SIM-EA-FSCN-01:PROC:OC1 PP MS") + field(DOL2, "-1") + field(LNK2, "S03SIM-EA-FSCN-01:PROC:OC2 PP MS") + field(DOL3, "0") + field(LNK3, "S03SIM-EA-FSCN-01:PROC:OC3 PP MS") + field(DOL4, "1") + field(LNK4, "S03SIM-EA-FSCN-01:PROC:OC4 PP MS") + field(DOL5, "1") + field(LNK5, "S03SIM-EA-FSCN-01:PROC:FC1 PP MS") + field(DOL6, "-1") + field(LNK6, "S03SIM-EA-FSCN-01:PROC:FC2 PP MS") + field(DOL7, "0") + field(LNK7, "S03SIM-EA-FSCN-01:PROC:FC3 PP MS") + field(DOL8, "1") + field(LNK8, "S03SIM-EA-FSCN-01:PROC:FC4 PP MS") + field(DOL9, "0") + field(LNK9, "S03SIM-EA-FSCN-01:PROC:RC1 PP MS") + field(DOLA, "1") + field(LNKA, "S03SIM-EA-FSCN-01:PROC:RC2 PP MS") +} + +record(seq, "S03SIM-EA-FSCN-01:PROC:AverageSeq") +{ + field(DOL1, "1") + field(LNK1, "S03SIM-EA-FSCN-01:PROC:OC1 PP MS") + field(DOL2, "0") + field(LNK2, "S03SIM-EA-FSCN-01:PROC:OC2 PP MS") + field(DOL3, "S03SIM-EA-FSCN-01:PROC:NumFilterRecip NPP") + field(LNK3, "S03SIM-EA-FSCN-01:PROC:OC3 PP MS") + field(DOL4, "0") + field(LNK4, "S03SIM-EA-FSCN-01:PROC:OC4 PP MS") + field(DOL5, "1") + field(LNK5, "S03SIM-EA-FSCN-01:PROC:FC1 PP MS") + field(DOL6, "0") + field(LNK6, "S03SIM-EA-FSCN-01:PROC:FC2 PP MS") + field(DOL7, "S03SIM-EA-FSCN-01:PROC:NumFilterRecip NPP") + field(LNK7, "S03SIM-EA-FSCN-01:PROC:FC3 PP MS") + field(DOL8, "0") + field(LNK8, "S03SIM-EA-FSCN-01:PROC:FC4 PP MS") + field(DOL9, "0") + field(LNK9, "S03SIM-EA-FSCN-01:PROC:RC1 PP MS") + field(DOLA, "0") + field(LNKA, "S03SIM-EA-FSCN-01:PROC:RC2 PP MS") +} + +record(seq, "S03SIM-EA-FSCN-01:PROC:SumSeq") +{ + field(DOL1, "1") + field(LNK1, "S03SIM-EA-FSCN-01:PROC:OC1 PP MS") + field(DOL2, "0") + field(LNK2, "S03SIM-EA-FSCN-01:PROC:OC2 PP MS") + field(DOL3, "1") + field(LNK3, "S03SIM-EA-FSCN-01:PROC:OC3 PP MS") + field(DOL4, "0") + field(LNK4, "S03SIM-EA-FSCN-01:PROC:OC4 PP MS") + field(DOL5, "1") + field(LNK5, "S03SIM-EA-FSCN-01:PROC:FC1 PP MS") + field(DOL6, "0") + field(LNK6, "S03SIM-EA-FSCN-01:PROC:FC2 PP MS") + field(DOL7, "1") + field(LNK7, "S03SIM-EA-FSCN-01:PROC:FC3 PP MS") + field(DOL8, "0") + field(LNK8, "S03SIM-EA-FSCN-01:PROC:FC4 PP MS") + field(DOL9, "0") + field(LNK9, "S03SIM-EA-FSCN-01:PROC:RC1 PP MS") + field(DOLA, "0") + field(LNKA, "S03SIM-EA-FSCN-01:PROC:RC2 PP MS") +} + +record(seq, "S03SIM-EA-FSCN-01:PROC:DifferenceSeq") +{ + field(DOL1, "-1") + field(LNK1, "S03SIM-EA-FSCN-01:PROC:OC1 PP MS") + field(DOL2, "0") + field(LNK2, "S03SIM-EA-FSCN-01:PROC:OC2 PP MS") + field(DOL3, "1") + field(LNK3, "S03SIM-EA-FSCN-01:PROC:OC3 PP MS") + field(DOL4, "0") + field(LNK4, "S03SIM-EA-FSCN-01:PROC:OC4 PP MS") + field(DOL5, "0") + field(LNK5, "S03SIM-EA-FSCN-01:PROC:FC1 PP MS") + field(DOL6, "0") + field(LNK6, "S03SIM-EA-FSCN-01:PROC:FC2 PP MS") + field(DOL7, "1") + field(LNK7, "S03SIM-EA-FSCN-01:PROC:FC3 PP MS") + field(DOL8, "0") + field(LNK8, "S03SIM-EA-FSCN-01:PROC:FC4 PP MS") + field(DOL9, "0") + field(LNK9, "S03SIM-EA-FSCN-01:PROC:RC1 PP MS") + field(DOLA, "1") + field(LNKA, "S03SIM-EA-FSCN-01:PROC:RC2 PP MS") +} + +record(seq, "S03SIM-EA-FSCN-01:PROC:RecursiveAveDiffSeq") +{ + field(DOL1, "-1") + field(LNK1, "S03SIM-EA-FSCN-01:PROC:OC1 PP MS") + field(DOL2, "0") + field(LNK2, "S03SIM-EA-FSCN-01:PROC:OC2 PP MS") + field(DOL3, "1") + field(LNK3, "S03SIM-EA-FSCN-01:PROC:OC3 PP MS") + field(DOL4, "0") + field(LNK4, "S03SIM-EA-FSCN-01:PROC:OC4 PP MS") + field(DOL5, "1") + field(LNK5, "S03SIM-EA-FSCN-01:PROC:FC1 PP MS") + field(DOL6, "-1") + field(LNK6, "S03SIM-EA-FSCN-01:PROC:FC2 PP MS") + field(DOL7, "0") + field(LNK7, "S03SIM-EA-FSCN-01:PROC:FC3 PP MS") + field(DOL8, "1") + field(LNK8, "S03SIM-EA-FSCN-01:PROC:FC4 PP MS") + field(DOL9, "0") + field(LNK9, "S03SIM-EA-FSCN-01:PROC:RC1 PP MS") + field(DOLA, "1") + field(LNKA, "S03SIM-EA-FSCN-01:PROC:RC2 PP MS") +} + +record(seq, "S03SIM-EA-FSCN-01:PROC:CopyToFilterSeq") +{ + field(DOL1, "0") + field(LNK1, "S03SIM-EA-FSCN-01:PROC:OC1 PP MS") + field(DOL2, "0") + field(LNK2, "S03SIM-EA-FSCN-01:PROC:OC2 PP MS") + field(DOL3, "1") + field(LNK3, "S03SIM-EA-FSCN-01:PROC:OC3 PP MS") + field(DOL4, "0") + field(LNK4, "S03SIM-EA-FSCN-01:PROC:OC4 PP MS") + field(DOL5, "0") + field(LNK5, "S03SIM-EA-FSCN-01:PROC:FC1 PP MS") + field(DOL6, "0") + field(LNK6, "S03SIM-EA-FSCN-01:PROC:FC2 PP MS") + field(DOL7, "1") + field(LNK7, "S03SIM-EA-FSCN-01:PROC:FC3 PP MS") + field(DOL8, "0") + field(LNK8, "S03SIM-EA-FSCN-01:PROC:FC4 PP MS") + field(DOL9, "0") + field(LNK9, "S03SIM-EA-FSCN-01:PROC:RC1 PP MS") + field(DOLA, "1") + field(LNKA, "S03SIM-EA-FSCN-01:PROC:RC2 PP MS") +} +#=================================================================# +# Template file: NDProcess.template +# Database for ND PluginProcess +# Mark Rivers +# March 14, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, FSCN2.proc, edmtab, NDProcess.edl, P=S03SIM-EA-FSCN-02,R=:PROC: + +# This associates a BOY screen with the template +# % gui, FSCN2.proc, boydetail,ADApp_opi/dls/proc_detail.opi, P=S03SIM-EA-FSCN-02, R=:PROC:, DESC=Process +# % gui, FSCN2.proc, boyembed, ADApp_opi/dls/proc_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:PROC:, DESC=Process +# % gui, FSCN2.proc, boyembed, ADApp_opi/dls/proc_embed.opi, P=S03SIM-EA-FSCN-02, R=:PROC:, DESC=Process + +# % gui, FSCN2.proc, groupHeading, Info +# % gui, FSCN2.proc, readback, Port name, S03SIM-EA-FSCN-02:PROC:PortName_RBV +# % gui, FSCN2.proc, readback, Plugin type, S03SIM-EA-FSCN-02:PROC:PluginType_RBV +# Input +# % gui, FSCN2.proc, demandString, Input, S03SIM-EA-FSCN-02:PROC:NDArrayPort +# % gui, FSCN2.proc, readback, Input, S03SIM-EA-FSCN-02:PROC:NDArrayPort_RBV + +# % gui, FSCN2.proc, groupHeading, Callback +# % gui, FSCN2.proc, enum, Callbacks, S03SIM-EA-FSCN-02:PROC:EnableCallbacks +# % gui, FSCN2.proc, statusbits, Callbacks, S03SIM-EA-FSCN-02:PROC:EnableCallbacks_RBV +# % gui, FSCN2.proc, demand, Min Callback Time, S03SIM-EA-FSCN-02:PROC:MinCallbackTime +# % gui, FSCN2.proc, readback, Min Callback Time, S03SIM-EA-FSCN-02:PROC:MinCallbackTime_RBV +# % gui, FSCN2.proc, enum, Block Callbacks, S03SIM-EA-FSCN-02:PROC:BlockingCallbacks +# % gui, FSCN2.proc, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:PROC:BlockingCallbacks_RBV + +# % gui, FSCN2.proc, groupHeading, Counters +# % gui, FSCN2.proc, demand, Array Counter, S03SIM-EA-FSCN-02:PROC:ArrayCounter +# % gui, FSCN2.proc, readback, Array Counter, S03SIM-EA-FSCN-02:PROC:ArrayCounter_RBV +# % gui, FSCN2.proc, readback, Array Rate (fps), S03SIM-EA-FSCN-02:PROC:ArrayRate_RBV +# % gui, FSCN2.proc, readback, Queue Use, S03SIM-EA-FSCN-02:PROC:QueueUse +# % gui, FSCN2.proc, readback, Queue Size, S03SIM-EA-FSCN-02:PROC:QueueSize +# % gui, FSCN2.proc, demand, Dropped Arrays, S03SIM-EA-FSCN-02:PROC:DroppedArrays +# % gui, FSCN2.proc, readback, Dropped Arrays, S03SIM-EA-FSCN-02:PROC:DroppedArrays_RBV + +# % gui, FSCN2.proc, groupHeading, Array Settings +# % gui, FSCN2.proc, readback, Num Dimensions, S03SIM-EA-FSCN-02:PROC:NDimensions_RBV +# % gui, FSCN2.proc, readback, Dim 0 Size, S03SIM-EA-FSCN-02:PROC:ArraySize0_RBV +# % gui, FSCN2.proc, readback, Dim 1 Size, S03SIM-EA-FSCN-02:PROC:ArraySize1_RBV +# % gui, FSCN2.proc, readback, Dim 2 Size, S03SIM-EA-FSCN-02:PROC:ArraySize2_RBV +# % gui, FSCN2.proc, readback, Input Data Type, S03SIM-EA-FSCN-02:PROC:DataType_RBV +# % gui, FSCN2.proc, readback, Colour Mode, S03SIM-EA-FSCN-02:PROC:ColorMode_RBV +# % gui, FSCN2.proc, readback, Bayer Pattern, S03SIM-EA-FSCN-02:PROC:BayerPattern_RBV +# % gui, FSCN2.proc, readback, Unique id, S03SIM-EA-FSCN-02:PROC:UniqueId_RBV +# % gui, FSCN2.proc, readback, Timestamp, S03SIM-EA-FSCN-02:PROC:TimeStamp_RBV + +# Output +# % gui, FSCN2.proc, groupHeading, Output +# % gui, FSCN2.proc, demand, Name, S03SIM-EA-FSCN-02:PROC:Name +# % gui, FSCN2.proc, enum, Out data type, S03SIM-EA-FSCN-02:PROC:DataTypeOut +# % gui, FSCN2.proc, readback, Out data type, S03SIM-EA-FSCN-02:PROC:DataTypeOut_RBV +# % gui, FSCN2.proc, demand, Attributes file, S03SIM-EA-FSCN-02:PROC:NDAttributesFile + +# Background subtraction +# % gui, FSCN2.proc, groupHeading, Background Subtraction +# % gui, FSCN2.proc, enum, Enable Subtraction, S03SIM-EA-FSCN-02:PROC:EnableBackground +# % gui, FSCN2.proc, readback, Enable Subtraction, S03SIM-EA-FSCN-02:PROC:EnableBackground_RBV +# % gui, FSCN2.proc, command, Save Background, S03SIM-EA-FSCN-02:PROC:SaveBackground +# % gui, FSCN2.proc, readback, Save Background, S03SIM-EA-FSCN-02:PROC:SaveBackground_RBV +# Flat field +# % gui, FSCN2.proc, groupHeading, Flat Field +# % gui, FSCN2.proc, enum, Enable Flat Field, S03SIM-EA-FSCN-02:PROC:EnableFlatField +# % gui, FSCN2.proc, readback, Enable Flat Field, S03SIM-EA-FSCN-02:PROC:EnableFlatField_RBV +# % gui, FSCN2.proc, command, Save Flat Field, S03SIM-EA-FSCN-02:PROC:SaveFlatField +# % gui, FSCN2.proc, readback, Save Flat Field, S03SIM-EA-FSCN-02:PROC:SaveFlatField_RBV +# % gui, FSCN2.proc, demand, Scale Flat Field, S03SIM-EA-FSCN-02:PROC:ScaleFlatField +# % gui, FSCN2.proc, readback, Scale Flat Field, S03SIM-EA-FSCN-02:PROC:ScaleFlatField_RBV +# Scale and offset +# % gui, FSCN2.proc, groupHeading, Scale and Offset +# % gui, FSCN2.proc, enum, Enable Scale and Offset, S03SIM-EA-FSCN-02:PROC:EnableOffsetScale +# % gui, FSCN2.proc, readback, Enable Scale and Offset, S03SIM-EA-FSCN-02:PROC:EnableOffsetScale_RBV +# % gui, FSCN2.proc, demand, Offset, S03SIM-EA-FSCN-02:PROC:Offset +# % gui, FSCN2.proc, readback, Offset, S03SIM-EA-FSCN-02:PROC:Offset_RBV +# % gui, FSCN2.proc, demand, Scale, S03SIM-EA-FSCN-02:PROC:Scale +# % gui, FSCN2.proc, readback, Scale, S03SIM-EA-FSCN-02:PROC:Scale_RBV +# % gui, FSCN2.proc, enum, Enable Low Clip, S03SIM-EA-FSCN-02:PROC:EnableLowClip +# % gui, FSCN2.proc, readback, Enable Low Clip, S03SIM-EA-FSCN-02:PROC:EnableLowClip_RBV +# % gui, FSCN2.proc, demand, Low Clip, S03SIM-EA-FSCN-02:PROC:LowClip +# % gui, FSCN2.proc, readback, Low Clip, S03SIM-EA-FSCN-02:PROC:LowClip_RBV +# % gui, FSCN2.proc, enum, Enable High Clip, S03SIM-EA-FSCN-02:PROC:EnableHighClip +# % gui, FSCN2.proc, readback, Enable High Clip, S03SIM-EA-FSCN-02:PROC:EnableHighClip_RBV +# % gui, FSCN2.proc, demand, High Clip, S03SIM-EA-FSCN-02:PROC:HighClip +# % gui, FSCN2.proc, readback, High Clip, S03SIM-EA-FSCN-02:PROC:HighClip_RBV +# Recursive filter +# % gui, FSCN2.proc, groupHeading, Recursive Filter +# % gui, FSCN2.proc, enum, Enable Filter, S03SIM-EA-FSCN-02:PROC:EnableFilter +# % gui, FSCN2.proc, readback, Enable Filter, S03SIM-EA-FSCN-02:PROC:EnableFilter_RBV +# % gui, FSCN2.proc, enum, Filter Type, S03SIM-EA-FSCN-02:PROC:FilterType +# % gui, FSCN2.proc, demand, N Filter, S03SIM-EA-FSCN-02:PROC:NumFilter +# % gui, FSCN2.proc, readback, N Filter, S03SIM-EA-FSCN-02:PROC:NumFilter_RBV +# % gui, FSCN2.proc, readback, N Filtered, S03SIM-EA-FSCN-02:PROC:NumFiltered_RBV +# % gui, FSCN2.proc, enum, Filter Callbacks, S03SIM-EA-FSCN-02:PROC:FilterCallbacks +# % gui, FSCN2.proc, readback, Filter Callbacks, S03SIM-EA-FSCN-02:PROC:FilterCallbacks_RBV +# % gui, FSCN2.proc, command, Reset, S03SIM-EA-FSCN-02:PROC:ResetFilter +# % gui, FSCN2.proc, readback, Reset, S03SIM-EA-FSCN-02:PROC:ResetFilter +# % gui, FSCN2.proc, enum, Auto Reset, S03SIM-EA-FSCN-02:PROC:AutoResetFilter +# % gui, FSCN2.proc, readback, Auto Reset, S03SIM-EA-FSCN-02:PROC:AutoResetFilter_RBV +# % gui, FSCN2.proc, demand, Output Scale, S03SIM-EA-FSCN-02:PROC:OScale +# % gui, FSCN2.proc, readback, Output Scale, S03SIM-EA-FSCN-02:PROC:OScale_RBV +# % gui, FSCN2.proc, demand, Output Offset, S03SIM-EA-FSCN-02:PROC:OOffset +# % gui, FSCN2.proc, readback, Output Offset, S03SIM-EA-FSCN-02:PROC:OOffset_RBV +# % gui, FSCN2.proc, demand, Filter Scale, S03SIM-EA-FSCN-02:PROC:FScale +# % gui, FSCN2.proc, readback, Filter Scale, S03SIM-EA-FSCN-02:PROC:FScale_RBV +# % gui, FSCN2.proc, demand, Filter Offset, S03SIM-EA-FSCN-02:PROC:FOffset +# % gui, FSCN2.proc, readback, Filter Offset, S03SIM-EA-FSCN-02:PROC:FOffset_RBV +# Memory +# % gui, FSCN2.proc, groupHeading, Memory +# % gui, FSCN2.proc, readback, Max memory, S03SIM-EA-FSCN-02:PROC:PoolMaxMem +# % gui, FSCN2.proc, readback, Max buffers, S03SIM-EA-FSCN-02:PROC:PoolMaxBuffers +# % gui, FSCN2.proc, readback, Used memory, S03SIM-EA-FSCN-02:PROC:PoolUsedMem +# % gui, FSCN2.proc, readback, Allocated buffers, S03SIM-EA-FSCN-02:PROC:PoolAllocBuffers +# % gui, FSCN2.proc, readback, Free buffers, S03SIM-EA-FSCN-02:PROC:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:PROC:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.proc,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:PROC:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.proc,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:PROC:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.proc,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:PROC:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.proc,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:PROC:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.proc,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:PROC:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.proc,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:PROC:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.proc,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:PROC:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.proc,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:PROC:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:PROC:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:PROC:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:PROC:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:PROC:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:PROC:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:PROC:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:PROC:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:PROC:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:PROC:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:PROC:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:PROC:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:PROC:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.proc,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.proc,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PROC:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:PROC:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:PROC:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.proc,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:PROC:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:PROC:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:PROC:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:PROC:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:PROC:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:PROC:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:PROC:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:PROC:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:PROC:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:PROC:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:PROC:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:PROC:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:PROC:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:PROC:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.proc,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:PROC:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.proc,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:PROC:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:PROC:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:PROC:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:PROC:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:PROC:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:PROC:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:PROC:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:PROC:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.proc,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:PROC:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.proc,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:PROC:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.proc,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:PROC:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:PROC:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:PROC:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:PROC:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:PROC:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:PROC:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:PROC:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:PROC:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:PROC:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:PROC:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:PROC:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:PROC:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:PROC:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:PROC:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:PROC:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:PROC:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:PROC:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:PROC:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:PROC:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:PROC:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:PROC:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:PROC:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:PROC:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:PROC:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:PROC:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:PROC:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:PROC:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:PROC:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:PROC:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:PROC:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:PROC:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:PROC:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:PROC:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:PROC:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:PROC:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:PROC:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:PROC:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:PROC:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:PROC:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:PROC:AsynIO") +{ + field(PORT, "FSCN2.proc") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +################################################################### +# These records control the data type of the array data # +# The last entry is "Automatic" meaning preserve the data type # +# of the input array. # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:PROC:DataTypeOut") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)PROCESS_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(VAL, "10") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:PROC:DataTypeOut_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)PROCESS_DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(TEST, "Automatic") + field(TEVL, "-1") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the background array processing # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:PROC:SaveBackground") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)SAVE_BACKGROUND") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +record(bi, "S03SIM-EA-FSCN-02:PROC:SaveBackground_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)SAVE_BACKGROUND") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:PROC:EnableBackground") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)ENABLE_BACKGROUND") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:PROC:EnableBackground_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)ENABLE_BACKGROUND") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-02:PROC:ValidBackground_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)VALID_BACKGROUND") + field(ZNAM, "Invalid") + field(ONAM, "Valid") + field(SCAN, "I/O Intr") +} + +record(sseq, "S03SIM-EA-FSCN-02:PROC:ReadBackgroundTIFFSeq") +{ + # Make a backup copy of the NDArrayPort field + field(DOL1, "S03SIM-EA-FSCN-02:PROC:NDArrayPort") + field(LNK1, "S03SIM-EA-FSCN-02:PROC:PortBackup PP MS") + # Set the NDArrayPort field to the TIFF plugin + field(DOL2, "S03SIM-EA-FSCN-02:PROC:TIFF:PortName_RBV") + field(LNK2, "S03SIM-EA-FSCN-02:PROC:NDArrayPort PP MS") + # Enable array callbacks in the TIFF plugin + field(STR3, "Enable") + field(LNK3, "S03SIM-EA-FSCN-02:PROC:TIFF:ArrayCallbacks PP MS") + # Read the TIFF file + field(DLY4, "0.1") + field(DO4, "1") + field(LNK4, "S03SIM-EA-FSCN-02:PROC:TIFF:ReadFile PP MS") + # Save background TIFF + field(DLY5, "0.5") + field(DO5, "1") + field(LNK5, "S03SIM-EA-FSCN-02:PROC:SaveBackground PP MS") + # Restore the NDArrayPort field + field(DOL6, "S03SIM-EA-FSCN-02:PROC:PortBackup") + field(LNK6, "S03SIM-EA-FSCN-02:PROC:NDArrayPort PP MS") +} + +record(stringout, "S03SIM-EA-FSCN-02:PROC:PortBackup") +{ +} + +################################################################### +# These records control the flat field array processing # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:PROC:SaveFlatField") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)SAVE_FLAT_FIELD") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +record(bi, "S03SIM-EA-FSCN-02:PROC:SaveFlatField_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)SAVE_FLAT_FIELD") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:PROC:EnableFlatField") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)ENABLE_FLAT_FIELD") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:PROC:EnableFlatField_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)ENABLE_FLAT_FIELD") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-02:PROC:ValidFlatField_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)VALID_FLAT_FIELD") + field(ZNAM, "Invalid") + field(ONAM, "Valid") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:ScaleFlatField") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)SCALE_FLAT_FIELD") + field(VAL, "255.") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:PROC:ScaleFlatField_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)SCALE_FLAT_FIELD") + field(SCAN, "I/O Intr") +} + +record(sseq, "S03SIM-EA-FSCN-02:PROC:ReadFlatFieldTIFFSeq") +{ + # Make a backup copy of the NDArrayPort field + field(DOL1, "S03SIM-EA-FSCN-02:PROC:NDArrayPort") + field(LNK1, "S03SIM-EA-FSCN-02:PROC:PortBackup PP MS") + # Set the NDArrayPort field to the TIFF plugin + field(DOL2, "S03SIM-EA-FSCN-02:PROC:TIFF:PortName_RBV") + field(LNK2, "S03SIM-EA-FSCN-02:PROC:NDArrayPort PP MS") + # Enable array callbacks in the TIFF plugin + field(STR3, "Enable") + field(LNK3, "S03SIM-EA-FSCN-02:PROC:TIFF:ArrayCallbacks PP MS") + # Read the TIFF file + field(DLY4, "0.1") + field(DO4, "1") + field(LNK4, "S03SIM-EA-FSCN-02:PROC:TIFF:ReadFile PP MS") + # Save background TIFF + field(DLY5, "0.5") + field(DO5, "1") + field(LNK5, "S03SIM-EA-FSCN-02:PROC:SaveFlatField PP MS") + # Restore the NDArrayPort field + field(DOL6, "S03SIM-EA-FSCN-02:PROC:PortBackup") + field(LNK6, "S03SIM-EA-FSCN-02:PROC:NDArrayPort PP MS") +} + +################################################################### +# These records control the offset and scale # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:PROC:EnableOffsetScale") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)ENABLE_OFFSET_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +# Oneshot record for calculating scale and offset +record(ai, "S03SIM-EA-FSCN-02:PROC:AutoOffsetScale") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)AUTO_OFFSET_SCALE") + field(ZNAM, "Done") + field(ONAM, "Calculating") +} + +record(bi, "S03SIM-EA-FSCN-02:PROC:EnableOffsetScale_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)ENABLE_OFFSET_SCALE") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:Offset") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)OFFSET") + field(PREC, "2") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:PROC:Offset_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)OFFSET") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:Scale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)SCALE") + field(PREC, "2") + field(VAL, "1.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:PROC:Scale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)SCALE") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the high and low clipping # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:PROC:EnableLowClip") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)ENABLE_LOW_CLIP") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:PROC:EnableLowClip_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)ENABLE_LOW_CLIP") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:LowClip") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)LOW_CLIP") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:PROC:LowClip_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)LOW_CLIP") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:PROC:EnableHighClip") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)ENABLE_HIGH_CLIP") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:PROC:EnableHighClip_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)ENABLE_HIGH_CLIP") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:HighClip") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)HIGH_CLIP") + field(VAL, "100.0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:PROC:HighClip_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)HIGH_CLIP") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control frame filtering # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:PROC:EnableFilter") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)ENABLE_FILTER") + field(ZNAM, "Disable") + field(ONAM, "Enable") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:PROC:EnableFilter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)ENABLE_FILTER") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:PROC:ResetFilter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)RESET_FILTER") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +record(bi, "S03SIM-EA-FSCN-02:PROC:ResetFilter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)RESET_FILTER") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:PROC:AutoResetFilter") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)AUTO_RESET_FILTER") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:PROC:AutoResetFilter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)AUTO_RESET_FILTER") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:PROC:FilterCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_CALLBACKS") + field(ZNAM, "Every array") + field(ONAM, "Array N only") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:PROC:FilterCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)FILTER_CALLBACKS") + field(ZNAM, "Every array") + field(ONAM, "Array N only") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:PROC:NumFilter") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.proc,0,1)NUM_FILTER") + field(VAL, "1") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:NumFilterRecip.PROC PP") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:NumFilter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)NUM_FILTER") + field(SCAN, "I/O Intr") +} + +# This is 1/NumFilter, used in RecursiveSum filter +# If this value changes we need to process FilterType to make it update filter coefficients +record(calc, "S03SIM-EA-FSCN-02:PROC:NumFilterRecip") +{ + field(INPA, "S03SIM-EA-FSCN-02:PROC:NumFilter.VAL NPP") + field(CALC, "1./A") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:FilterType.PROC PP") +} + +record(longin, "S03SIM-EA-FSCN-02:PROC:NumFiltered_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.proc,0,1)NUM_FILTERED") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:OOffset") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_OOFFSET") + field(VAL, "0.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-02:PROC:OOffset_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)FILTER_OOFFSET") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:OScale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_OSCALE") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-02:PROC:OScale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)FILTER_OSCALE") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:OC1") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_OC1") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-02:PROC:OC1_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)FILTER_OC1") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:OC2") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_OC2") + field(VAL, "-1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-02:PROC:OC2_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)FILTER_OC2") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:OC3") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_OC3") + field(VAL, "0.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-02:PROC:OC3_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)FILTER_OC3") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:OC4") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_OC4") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-02:PROC:OC4_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)FILTER_OC4") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:FOffset") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_FOFFSET") + field(VAL, "0.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-02:PROC:FOffset_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)FILTER_FOFFSET") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:FScale") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_FSCALE") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-02:PROC:FScale_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)FILTER_FSCALE") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:FC1") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_FC1") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-02:PROC:FC1_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)FILTER_FC1") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:FC2") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_FC2") + field(VAL, "-1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-02:PROC:FC2_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)FILTER_FC2") + field(PREC, "2") + field(SCAN, "I/O Intr") +} +record(ao, "S03SIM-EA-FSCN-02:PROC:FC3") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_FC3") + field(VAL, "0.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-02:PROC:FC3_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)FILTER_FC3") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:FC4") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_FC4") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-02:PROC:FC4_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)FILTER_FC4") + field(PREC, "2") + field(SCAN, "I/O Intr") +} +record(ao, "S03SIM-EA-FSCN-02:PROC:ROffset") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_ROFFSET") + field(VAL, "0.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-02:PROC:ROffset_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)FILTER_ROFFSET") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:RC1") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_RC1") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-02:PROC:RC1_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)FILTER_RC1") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PROC:RC2") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_RC2") + field(VAL, "1.0") + field(PREC, "2") + info(autosaveFields, "VAL") +} +record(ai, "S03SIM-EA-FSCN-02:PROC:RC2_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.proc,0,1)FILTER_RC2") + field(PREC, "2") + field(SCAN, "I/O Intr") +} + +# We don't see PINI=YES for FilterType because we want to restore the actual coefficients +# We do restore this record, but we don't process it +record(mbbo, "S03SIM-EA-FSCN-02:PROC:FilterType") +{ + field(ZRST, "RecursiveAve") + field(ZRVL, "1") + field(ONST, "Average") + field(ONVL, "2") + field(TWST, "Sum") + field(TWVL, "3") + field(THST, "Difference") + field(THVL, "4") + field(FRST, "RecursiveAveDiff") + field(FRVL, "5") + field(FVST, "CopyToFilter") + field(FVVL, "6") + field(FLNK, "S03SIM-EA-FSCN-02:PROC:FilterTypeSeq PP MS") + info(autosaveFields, "VAL") +} + +record(seq, "S03SIM-EA-FSCN-02:PROC:FilterTypeSeq") +{ + field(SELL, "S03SIM-EA-FSCN-02:PROC:FilterType.RVAL NPP") + field(SELM, "Specified") + field(DOL1, "1") + field(LNK1, "S03SIM-EA-FSCN-02:PROC:RecursiveAveSeq.PROC PP MS") + field(DOL2, "1") + field(LNK2, "S03SIM-EA-FSCN-02:PROC:AverageSeq.PROC PP MS") + field(DOL3, "1") + field(LNK3, "S03SIM-EA-FSCN-02:PROC:SumSeq.PROC PP MS") + field(DOL4, "1") + field(LNK4, "S03SIM-EA-FSCN-02:PROC:DifferenceSeq.PROC PP MS") + field(DOL5, "1") + field(LNK5, "S03SIM-EA-FSCN-02:PROC:RecursiveAveDiffSeq.PROC PP MS") + field(DOL6, "1") + field(LNK6, "S03SIM-EA-FSCN-02:PROC:CopyToFilterSeq.PROC PP MS") +} + +record(seq, "S03SIM-EA-FSCN-02:PROC:RecursiveAveSeq") +{ + field(DOL1, "1") + field(LNK1, "S03SIM-EA-FSCN-02:PROC:OC1 PP MS") + field(DOL2, "-1") + field(LNK2, "S03SIM-EA-FSCN-02:PROC:OC2 PP MS") + field(DOL3, "0") + field(LNK3, "S03SIM-EA-FSCN-02:PROC:OC3 PP MS") + field(DOL4, "1") + field(LNK4, "S03SIM-EA-FSCN-02:PROC:OC4 PP MS") + field(DOL5, "1") + field(LNK5, "S03SIM-EA-FSCN-02:PROC:FC1 PP MS") + field(DOL6, "-1") + field(LNK6, "S03SIM-EA-FSCN-02:PROC:FC2 PP MS") + field(DOL7, "0") + field(LNK7, "S03SIM-EA-FSCN-02:PROC:FC3 PP MS") + field(DOL8, "1") + field(LNK8, "S03SIM-EA-FSCN-02:PROC:FC4 PP MS") + field(DOL9, "0") + field(LNK9, "S03SIM-EA-FSCN-02:PROC:RC1 PP MS") + field(DOLA, "1") + field(LNKA, "S03SIM-EA-FSCN-02:PROC:RC2 PP MS") +} + +record(seq, "S03SIM-EA-FSCN-02:PROC:AverageSeq") +{ + field(DOL1, "1") + field(LNK1, "S03SIM-EA-FSCN-02:PROC:OC1 PP MS") + field(DOL2, "0") + field(LNK2, "S03SIM-EA-FSCN-02:PROC:OC2 PP MS") + field(DOL3, "S03SIM-EA-FSCN-02:PROC:NumFilterRecip NPP") + field(LNK3, "S03SIM-EA-FSCN-02:PROC:OC3 PP MS") + field(DOL4, "0") + field(LNK4, "S03SIM-EA-FSCN-02:PROC:OC4 PP MS") + field(DOL5, "1") + field(LNK5, "S03SIM-EA-FSCN-02:PROC:FC1 PP MS") + field(DOL6, "0") + field(LNK6, "S03SIM-EA-FSCN-02:PROC:FC2 PP MS") + field(DOL7, "S03SIM-EA-FSCN-02:PROC:NumFilterRecip NPP") + field(LNK7, "S03SIM-EA-FSCN-02:PROC:FC3 PP MS") + field(DOL8, "0") + field(LNK8, "S03SIM-EA-FSCN-02:PROC:FC4 PP MS") + field(DOL9, "0") + field(LNK9, "S03SIM-EA-FSCN-02:PROC:RC1 PP MS") + field(DOLA, "0") + field(LNKA, "S03SIM-EA-FSCN-02:PROC:RC2 PP MS") +} + +record(seq, "S03SIM-EA-FSCN-02:PROC:SumSeq") +{ + field(DOL1, "1") + field(LNK1, "S03SIM-EA-FSCN-02:PROC:OC1 PP MS") + field(DOL2, "0") + field(LNK2, "S03SIM-EA-FSCN-02:PROC:OC2 PP MS") + field(DOL3, "1") + field(LNK3, "S03SIM-EA-FSCN-02:PROC:OC3 PP MS") + field(DOL4, "0") + field(LNK4, "S03SIM-EA-FSCN-02:PROC:OC4 PP MS") + field(DOL5, "1") + field(LNK5, "S03SIM-EA-FSCN-02:PROC:FC1 PP MS") + field(DOL6, "0") + field(LNK6, "S03SIM-EA-FSCN-02:PROC:FC2 PP MS") + field(DOL7, "1") + field(LNK7, "S03SIM-EA-FSCN-02:PROC:FC3 PP MS") + field(DOL8, "0") + field(LNK8, "S03SIM-EA-FSCN-02:PROC:FC4 PP MS") + field(DOL9, "0") + field(LNK9, "S03SIM-EA-FSCN-02:PROC:RC1 PP MS") + field(DOLA, "0") + field(LNKA, "S03SIM-EA-FSCN-02:PROC:RC2 PP MS") +} + +record(seq, "S03SIM-EA-FSCN-02:PROC:DifferenceSeq") +{ + field(DOL1, "-1") + field(LNK1, "S03SIM-EA-FSCN-02:PROC:OC1 PP MS") + field(DOL2, "0") + field(LNK2, "S03SIM-EA-FSCN-02:PROC:OC2 PP MS") + field(DOL3, "1") + field(LNK3, "S03SIM-EA-FSCN-02:PROC:OC3 PP MS") + field(DOL4, "0") + field(LNK4, "S03SIM-EA-FSCN-02:PROC:OC4 PP MS") + field(DOL5, "0") + field(LNK5, "S03SIM-EA-FSCN-02:PROC:FC1 PP MS") + field(DOL6, "0") + field(LNK6, "S03SIM-EA-FSCN-02:PROC:FC2 PP MS") + field(DOL7, "1") + field(LNK7, "S03SIM-EA-FSCN-02:PROC:FC3 PP MS") + field(DOL8, "0") + field(LNK8, "S03SIM-EA-FSCN-02:PROC:FC4 PP MS") + field(DOL9, "0") + field(LNK9, "S03SIM-EA-FSCN-02:PROC:RC1 PP MS") + field(DOLA, "1") + field(LNKA, "S03SIM-EA-FSCN-02:PROC:RC2 PP MS") +} + +record(seq, "S03SIM-EA-FSCN-02:PROC:RecursiveAveDiffSeq") +{ + field(DOL1, "-1") + field(LNK1, "S03SIM-EA-FSCN-02:PROC:OC1 PP MS") + field(DOL2, "0") + field(LNK2, "S03SIM-EA-FSCN-02:PROC:OC2 PP MS") + field(DOL3, "1") + field(LNK3, "S03SIM-EA-FSCN-02:PROC:OC3 PP MS") + field(DOL4, "0") + field(LNK4, "S03SIM-EA-FSCN-02:PROC:OC4 PP MS") + field(DOL5, "1") + field(LNK5, "S03SIM-EA-FSCN-02:PROC:FC1 PP MS") + field(DOL6, "-1") + field(LNK6, "S03SIM-EA-FSCN-02:PROC:FC2 PP MS") + field(DOL7, "0") + field(LNK7, "S03SIM-EA-FSCN-02:PROC:FC3 PP MS") + field(DOL8, "1") + field(LNK8, "S03SIM-EA-FSCN-02:PROC:FC4 PP MS") + field(DOL9, "0") + field(LNK9, "S03SIM-EA-FSCN-02:PROC:RC1 PP MS") + field(DOLA, "1") + field(LNKA, "S03SIM-EA-FSCN-02:PROC:RC2 PP MS") +} + +record(seq, "S03SIM-EA-FSCN-02:PROC:CopyToFilterSeq") +{ + field(DOL1, "0") + field(LNK1, "S03SIM-EA-FSCN-02:PROC:OC1 PP MS") + field(DOL2, "0") + field(LNK2, "S03SIM-EA-FSCN-02:PROC:OC2 PP MS") + field(DOL3, "1") + field(LNK3, "S03SIM-EA-FSCN-02:PROC:OC3 PP MS") + field(DOL4, "0") + field(LNK4, "S03SIM-EA-FSCN-02:PROC:OC4 PP MS") + field(DOL5, "0") + field(LNK5, "S03SIM-EA-FSCN-02:PROC:FC1 PP MS") + field(DOL6, "0") + field(LNK6, "S03SIM-EA-FSCN-02:PROC:FC2 PP MS") + field(DOL7, "1") + field(LNK7, "S03SIM-EA-FSCN-02:PROC:FC3 PP MS") + field(DOL8, "0") + field(LNK8, "S03SIM-EA-FSCN-02:PROC:FC4 PP MS") + field(DOL9, "0") + field(LNK9, "S03SIM-EA-FSCN-02:PROC:RC1 PP MS") + field(DOLA, "1") + field(LNKA, "S03SIM-EA-FSCN-02:PROC:RC2 PP MS") +} +#=================================================================# +# Template file: NDOverlay.template +# Database for NDPluginOverlay asyn driver and standard asyn device support +# Mark Rivers +# March 25, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, OAV.over, edmtab, NDOverlay.edl, P=S03SIM-DI-OAV-01,R=:OVER: + +# This associates a BOY screen with the template +# % gui, OAV.over, boydetail,ADApp_opi/dls/over_detail.opi, P=S03SIM-DI-OAV-01, R=:OVER:, DESC=Overlay +# % gui, OAV.over, boyembed, ADApp_opi/dls/over_embed_box.opi, P=S03SIM-DI-OAV-01, R=:OVER:, DESC=Overlay +# % gui, OAV.over, boyembed, ADApp_opi/dls/over_embed.opi, P=S03SIM-DI-OAV-01, R=:OVER:, DESC=Overlay + + +# % gui, OAV.over, groupHeading, Info +# % gui, OAV.over, readback, Port name, S03SIM-DI-OAV-01:OVER:PortName_RBV +# % gui, OAV.over, readback, Plugin type, S03SIM-DI-OAV-01:OVER:PluginType_RBV +# Input +# % gui, OAV.over, demandString, Input, S03SIM-DI-OAV-01:OVER:NDArrayPort +# % gui, OAV.over, readback, Input, S03SIM-DI-OAV-01:OVER:NDArrayPort_RBV + +# % gui, OAV.over, groupHeading, Callback +# % gui, OAV.over, enum, Callbacks, S03SIM-DI-OAV-01:OVER:EnableCallbacks +# % gui, OAV.over, statusbits, Callbacks, S03SIM-DI-OAV-01:OVER:EnableCallbacks_RBV +# % gui, OAV.over, demand, Min Callback Time, S03SIM-DI-OAV-01:OVER:MinCallbackTime +# % gui, OAV.over, readback, Min Callback Time, S03SIM-DI-OAV-01:OVER:MinCallbackTime_RBV +# % gui, OAV.over, enum, Block Callbacks, S03SIM-DI-OAV-01:OVER:BlockingCallbacks +# % gui, OAV.over, statusbits, Block Callbacks, S03SIM-DI-OAV-01:OVER:BlockingCallbacks_RBV + +# % gui, OAV.over, groupHeading, Counters +# % gui, OAV.over, demand, Array Counter, S03SIM-DI-OAV-01:OVER:ArrayCounter +# % gui, OAV.over, readback, Array Counter, S03SIM-DI-OAV-01:OVER:ArrayCounter_RBV +# % gui, OAV.over, readback, Array Rate (fps), S03SIM-DI-OAV-01:OVER:ArrayRate_RBV +# % gui, OAV.over, readback, Queue Use, S03SIM-DI-OAV-01:OVER:QueueUse +# % gui, OAV.over, readback, Queue Size, S03SIM-DI-OAV-01:OVER:QueueSize +# % gui, OAV.over, demand, Dropped Arrays, S03SIM-DI-OAV-01:OVER:DroppedArrays +# % gui, OAV.over, readback, Dropped Arrays, S03SIM-DI-OAV-01:OVER:DroppedArrays_RBV + +# % gui, OAV.over, groupHeading, Array Settings +# % gui, OAV.over, readback, Num Dimensions, S03SIM-DI-OAV-01:OVER:NDimensions_RBV +# % gui, OAV.over, readback, Dim 0 Size, S03SIM-DI-OAV-01:OVER:ArraySize0_RBV +# % gui, OAV.over, readback, Dim 1 Size, S03SIM-DI-OAV-01:OVER:ArraySize1_RBV +# % gui, OAV.over, readback, Dim 2 Size, S03SIM-DI-OAV-01:OVER:ArraySize2_RBV +# % gui, OAV.over, readback, Input Data Type, S03SIM-DI-OAV-01:OVER:DataType_RBV +# % gui, OAV.over, readback, Colour Mode, S03SIM-DI-OAV-01:OVER:ColorMode_RBV +# % gui, OAV.over, readback, Bayer Pattern, S03SIM-DI-OAV-01:OVER:BayerPattern_RBV +# % gui, OAV.over, readback, Unique id, S03SIM-DI-OAV-01:OVER:UniqueId_RBV +# % gui, OAV.over, readback, Timestamp, S03SIM-DI-OAV-01:OVER:TimeStamp_RBV + +# Output +# % gui, OAV.over, groupHeading, Output +# % gui, OAV.over, demand, Name, S03SIM-DI-OAV-01:OVER:Name +# % gui, OAV.over, enum, Out data type, S03SIM-DI-OAV-01:OVER:DataTypeOut +# % gui, OAV.over, readback, Out data type, S03SIM-DI-OAV-01:OVER:DataTypeOut_RBV +# % gui, OAV.over, demand, Attributes file, S03SIM-DI-OAV-01:OVER:NDAttributesFile + +# Overlay 1 +# % gui, OAV.over, groupHeading, Overlay 1 Settings +# % gui, OAV.over, demand, Overlay 1, S03SIM-DI-OAV-01:OVER:1:Name +# % gui, OAV.over, enum, Use 1, S03SIM-DI-OAV-01:OVER:1:Use +# % gui, OAV.over, readback, Use 1, S03SIM-DI-OAV-01:OVER:1:Use_RBV +# % gui, OAV.over, enum, Shape 1, S03SIM-DI-OAV-01:OVER:1:Shape +# % gui, OAV.over, readback, Shape 1, S03SIM-DI-OAV-01:OVER:1:Shape_RBV +# % gui, OAV.over, enum, Mode 1, S03SIM-DI-OAV-01:OVER:1:DrawMode +# % gui, OAV.over, readback, Mode 1, S03SIM-DI-OAV-01:OVER:1:DrawMode_RBV +# % gui, OAV.over, demand, Red 1, S03SIM-DI-OAV-01:OVER:1:Red +# % gui, OAV.over, readback, Red 1, S03SIM-DI-OAV-01:OVER:1:Red_RBV +# % gui, OAV.over, demand, Green 1, S03SIM-DI-OAV-01:OVER:1:Green +# % gui, OAV.over, readback, Green 1, S03SIM-DI-OAV-01:OVER:1:Green_RBV +# % gui, OAV.over, demand, Blue 1, S03SIM-DI-OAV-01:OVER:1:Blue +# % gui, OAV.over, readback, Blue 1, S03SIM-DI-OAV-01:OVER:1:Blue_RBV +# % gui, OAV.over, demand, X Position 1, S03SIM-DI-OAV-01:OVER:1:PositionX +# % gui, OAV.over, readback, X Position 1, S03SIM-DI-OAV-01:OVER:1:PositionX_RBV +# % gui, OAV.over, demand, X Position Link 1, S03SIM-DI-OAV-01:OVER:1:PositionXLink.DOL +# % gui, OAV.over, demand, X Center 1, S03SIM-DI-OAV-01:OVER:1:CenterX +# % gui, OAV.over, readback, X Center 1, S03SIM-DI-OAV-01:OVER:1:CenterX_RBV +# % gui, OAV.over, demand, X Center Link 1, S03SIM-DI-OAV-01:OVER:1:CenterXLink.DOL +# % gui, OAV.over, demand, X Size 1, S03SIM-DI-OAV-01:OVER:1:SizeX +# % gui, OAV.over, readback, X Size 1, S03SIM-DI-OAV-01:OVER:1:SizeX_RBV +# % gui, OAV.over, demand, X Size Link 1, S03SIM-DI-OAV-01:OVER:1:SizeXLink.DOL +# % gui, OAV.over, demand, Y Position 1, S03SIM-DI-OAV-01:OVER:1:PositionY +# % gui, OAV.over, readback, Y Position 1, S03SIM-DI-OAV-01:OVER:1:PositionY_RBV +# % gui, OAV.over, demand, Y Position Link 1, S03SIM-DI-OAV-01:OVER:1:PositionYLink.DOL +# % gui, OAV.over, demand, Y Center 1, S03SIM-DI-OAV-01:OVER:1:CenterY +# % gui, OAV.over, readback, Y Center 1, S03SIM-DI-OAV-01:OVER:1:CenterY_RBV +# % gui, OAV.over, demand, Y Center Link 1, S03SIM-DI-OAV-01:OVER:1:CenterYLink.DOL +# % gui, OAV.over, demand, Y Size 1, S03SIM-DI-OAV-01:OVER:1:SizeY +# % gui, OAV.over, readback, Y Size 1, S03SIM-DI-OAV-01:OVER:1:SizeY_RBV +# % gui, OAV.over, demand, Y Size Link 1, S03SIM-DI-OAV-01:OVER:1:SizeYLink.DOL +# Overlay 2 +# % gui, OAV.over, groupHeading, Overlay 2 Settings +# % gui, OAV.over, demand, Overlay 2, S03SIM-DI-OAV-01:OVER:2:Name +# % gui, OAV.over, enum, Use 2, S03SIM-DI-OAV-01:OVER:2:Use +# % gui, OAV.over, readback, Use 2, S03SIM-DI-OAV-01:OVER:2:Use_RBV +# % gui, OAV.over, enum, Shape 2, S03SIM-DI-OAV-01:OVER:2:Shape +# % gui, OAV.over, readback, Shape 2, S03SIM-DI-OAV-01:OVER:2:Shape_RBV +# % gui, OAV.over, enum, Mode 2, S03SIM-DI-OAV-01:OVER:2:DrawMode +# % gui, OAV.over, readback, Mode 2, S03SIM-DI-OAV-01:OVER:2:DrawMode_RBV +# % gui, OAV.over, demand, Red 2, S03SIM-DI-OAV-01:OVER:2:Red +# % gui, OAV.over, readback, Red 2, S03SIM-DI-OAV-01:OVER:2:Red_RBV +# % gui, OAV.over, demand, Green 2, S03SIM-DI-OAV-01:OVER:2:Green +# % gui, OAV.over, readback, Green 2, S03SIM-DI-OAV-01:OVER:2:Green_RBV +# % gui, OAV.over, demand, Blue 2, S03SIM-DI-OAV-01:OVER:2:Blue +# % gui, OAV.over, readback, Blue 2, S03SIM-DI-OAV-01:OVER:2:Blue_RBV +# % gui, OAV.over, demand, X Position 2, S03SIM-DI-OAV-01:OVER:2:PositionX +# % gui, OAV.over, readback, X Position 2, S03SIM-DI-OAV-01:OVER:2:PositionX_RBV +# % gui, OAV.over, demand, X Position Link 2, S03SIM-DI-OAV-01:OVER:2:PositionXLink.DOL +# % gui, OAV.over, demand, X Center 2, S03SIM-DI-OAV-01:OVER:2:CenterX +# % gui, OAV.over, readback, X Center 2, S03SIM-DI-OAV-01:OVER:2:CenterX_RBV +# % gui, OAV.over, demand, X Center Link 2, S03SIM-DI-OAV-01:OVER:2:CenterXLink.DOL +# % gui, OAV.over, demand, X Size 2, S03SIM-DI-OAV-01:OVER:2:SizeX +# % gui, OAV.over, readback, X Size 2, S03SIM-DI-OAV-01:OVER:2:SizeX_RBV +# % gui, OAV.over, demand, X Size Link 2, S03SIM-DI-OAV-01:OVER:2:SizeXLink.DOL +# % gui, OAV.over, demand, Y Position 2, S03SIM-DI-OAV-01:OVER:2:PositionY +# % gui, OAV.over, readback, Y Position 2, S03SIM-DI-OAV-01:OVER:2:PositionY_RBV +# % gui, OAV.over, demand, Y Position Link 2, S03SIM-DI-OAV-01:OVER:2:PositionYLink.DOL +# % gui, OAV.over, demand, Y Center 2, S03SIM-DI-OAV-01:OVER:2:CenterY +# % gui, OAV.over, readback, Y Center 2, S03SIM-DI-OAV-01:OVER:2:CenterY_RBV +# % gui, OAV.over, demand, Y Center Link 2, S03SIM-DI-OAV-01:OVER:2:CenterYLink.DOL +# % gui, OAV.over, demand, Y Size 2, S03SIM-DI-OAV-01:OVER:2:SizeY +# % gui, OAV.over, readback, Y Size 2, S03SIM-DI-OAV-01:OVER:2:SizeY_RBV +# % gui, OAV.over, demand, Y Size Link 2, S03SIM-DI-OAV-01:OVER:2:SizeYLink.DOL +# Overlay 3 +# % gui, OAV.over, groupHeading, Overlay 3 Settings +# % gui, OAV.over, demand, Overlay 3, S03SIM-DI-OAV-01:OVER:3:Name +# % gui, OAV.over, enum, Use 3, S03SIM-DI-OAV-01:OVER:3:Use +# % gui, OAV.over, readback, Use 3, S03SIM-DI-OAV-01:OVER:3:Use_RBV +# % gui, OAV.over, enum, Shape 3, S03SIM-DI-OAV-01:OVER:3:Shape +# % gui, OAV.over, readback, Shape 3, S03SIM-DI-OAV-01:OVER:3:Shape_RBV +# % gui, OAV.over, enum, Mode 3, S03SIM-DI-OAV-01:OVER:3:DrawMode +# % gui, OAV.over, readback, Mode 3, S03SIM-DI-OAV-01:OVER:3:DrawMode_RBV +# % gui, OAV.over, demand, Red 3, S03SIM-DI-OAV-01:OVER:3:Red +# % gui, OAV.over, readback, Red 3, S03SIM-DI-OAV-01:OVER:3:Red_RBV +# % gui, OAV.over, demand, Green 3, S03SIM-DI-OAV-01:OVER:3:Green +# % gui, OAV.over, readback, Green 3, S03SIM-DI-OAV-01:OVER:3:Green_RBV +# % gui, OAV.over, demand, Blue 3, S03SIM-DI-OAV-01:OVER:3:Blue +# % gui, OAV.over, readback, Blue 3, S03SIM-DI-OAV-01:OVER:3:Blue_RBV +# % gui, OAV.over, demand, X Position 3, S03SIM-DI-OAV-01:OVER:3:PositionX +# % gui, OAV.over, readback, X Position 3, S03SIM-DI-OAV-01:OVER:3:PositionX_RBV +# % gui, OAV.over, demand, X Position Link 3, S03SIM-DI-OAV-01:OVER:3:PositionXLink.DOL +# % gui, OAV.over, demand, X Center 3, S03SIM-DI-OAV-01:OVER:3:CenterX +# % gui, OAV.over, readback, X Center 3, S03SIM-DI-OAV-01:OVER:3:CenterX_RBV +# % gui, OAV.over, demand, X Center Link 3, S03SIM-DI-OAV-01:OVER:3:CenterXLink.DOL +# % gui, OAV.over, demand, X Size 3, S03SIM-DI-OAV-01:OVER:3:SizeX +# % gui, OAV.over, readback, X Size 3, S03SIM-DI-OAV-01:OVER:3:SizeX_RBV +# % gui, OAV.over, demand, X Size Link 3, S03SIM-DI-OAV-01:OVER:3:SizeXLink.DOL +# % gui, OAV.over, demand, Y Position 3, S03SIM-DI-OAV-01:OVER:3:PositionY +# % gui, OAV.over, readback, Y Position 3, S03SIM-DI-OAV-01:OVER:3:PositionY_RBV +# % gui, OAV.over, demand, Y Position Link 3, S03SIM-DI-OAV-01:OVER:3:PositionYLink.DOL +# % gui, OAV.over, demand, Y Center 3, S03SIM-DI-OAV-01:OVER:3:CenterY +# % gui, OAV.over, readback, Y Center 3, S03SIM-DI-OAV-01:OVER:3:CenterY_RBV +# % gui, OAV.over, demand, Y Center Link 3, S03SIM-DI-OAV-01:OVER:3:CenterYLink.DOL +# % gui, OAV.over, demand, Y Size 3, S03SIM-DI-OAV-01:OVER:3:SizeY +# % gui, OAV.over, readback, Y Size 3, S03SIM-DI-OAV-01:OVER:3:SizeY_RBV +# % gui, OAV.over, demand, Y Size Link 3, S03SIM-DI-OAV-01:OVER:3:SizeYLink.DOL +# Overlay 4 +# % gui, OAV.over, groupHeading, Overlay 4 Settings +# % gui, OAV.over, demand, Overlay 4, S03SIM-DI-OAV-01:OVER:4:Name +# % gui, OAV.over, enum, Use 4, S03SIM-DI-OAV-01:OVER:4:Use +# % gui, OAV.over, readback, Use 4, S03SIM-DI-OAV-01:OVER:4:Use_RBV +# % gui, OAV.over, enum, Shape 4, S03SIM-DI-OAV-01:OVER:4:Shape +# % gui, OAV.over, readback, Shape 4, S03SIM-DI-OAV-01:OVER:4:Shape_RBV +# % gui, OAV.over, enum, Mode 4, S03SIM-DI-OAV-01:OVER:4:DrawMode +# % gui, OAV.over, readback, Mode 4, S03SIM-DI-OAV-01:OVER:4:DrawMode_RBV +# % gui, OAV.over, demand, Red 4, S03SIM-DI-OAV-01:OVER:4:Red +# % gui, OAV.over, readback, Red 4, S03SIM-DI-OAV-01:OVER:4:Red_RBV +# % gui, OAV.over, demand, Green 4, S03SIM-DI-OAV-01:OVER:4:Green +# % gui, OAV.over, readback, Green 4, S03SIM-DI-OAV-01:OVER:4:Green_RBV +# % gui, OAV.over, demand, Blue 4, S03SIM-DI-OAV-01:OVER:4:Blue +# % gui, OAV.over, readback, Blue 4, S03SIM-DI-OAV-01:OVER:4:Blue_RBV +# % gui, OAV.over, demand, X Position 4, S03SIM-DI-OAV-01:OVER:4:PositionX +# % gui, OAV.over, readback, X Position 4, S03SIM-DI-OAV-01:OVER:4:PositionX_RBV +# % gui, OAV.over, demand, X Position Link 4, S03SIM-DI-OAV-01:OVER:4:PositionXLink.DOL +# % gui, OAV.over, demand, X Center 4, S03SIM-DI-OAV-01:OVER:4:CenterX +# % gui, OAV.over, readback, X Center 4, S03SIM-DI-OAV-01:OVER:4:CenterX_RBV +# % gui, OAV.over, demand, X Center Link 4, S03SIM-DI-OAV-01:OVER:4:CenterXLink.DOL +# % gui, OAV.over, demand, X Size 4, S03SIM-DI-OAV-01:OVER:4:SizeX +# % gui, OAV.over, readback, X Size 4, S03SIM-DI-OAV-01:OVER:4:SizeX_RBV +# % gui, OAV.over, demand, X Size Link 4, S03SIM-DI-OAV-01:OVER:4:SizeXLink.DOL +# % gui, OAV.over, demand, Y Position 4, S03SIM-DI-OAV-01:OVER:4:PositionY +# % gui, OAV.over, readback, Y Position 4, S03SIM-DI-OAV-01:OVER:4:PositionY_RBV +# % gui, OAV.over, demand, Y Position Link 4, S03SIM-DI-OAV-01:OVER:4:PositionYLink.DOL +# % gui, OAV.over, demand, Y Center 4, S03SIM-DI-OAV-01:OVER:4:CenterY +# % gui, OAV.over, readback, Y Center 4, S03SIM-DI-OAV-01:OVER:4:CenterY_RBV +# % gui, OAV.over, demand, Y Center Link 4, S03SIM-DI-OAV-01:OVER:4:CenterYLink.DOL +# % gui, OAV.over, demand, Y Size 4, S03SIM-DI-OAV-01:OVER:4:SizeY +# % gui, OAV.over, readback, Y Size 4, S03SIM-DI-OAV-01:OVER:4:SizeY_RBV +# % gui, OAV.over, demand, Y Size Link 4, S03SIM-DI-OAV-01:OVER:4:SizeYLink.DOL +# Overlay 5 +# % gui, OAV.over, groupHeading, Overlay 5 Settings +# % gui, OAV.over, demand, Overlay 5, S03SIM-DI-OAV-01:OVER:5:Name +# % gui, OAV.over, enum, Use 5, S03SIM-DI-OAV-01:OVER:5:Use +# % gui, OAV.over, readback, Use 5, S03SIM-DI-OAV-01:OVER:5:Use_RBV +# % gui, OAV.over, enum, Shape 5, S03SIM-DI-OAV-01:OVER:5:Shape +# % gui, OAV.over, readback, Shape 5, S03SIM-DI-OAV-01:OVER:5:Shape_RBV +# % gui, OAV.over, enum, Mode 5, S03SIM-DI-OAV-01:OVER:5:DrawMode +# % gui, OAV.over, readback, Mode 5, S03SIM-DI-OAV-01:OVER:5:DrawMode_RBV +# % gui, OAV.over, demand, Red 5, S03SIM-DI-OAV-01:OVER:5:Red +# % gui, OAV.over, readback, Red 5, S03SIM-DI-OAV-01:OVER:5:Red_RBV +# % gui, OAV.over, demand, Green 5, S03SIM-DI-OAV-01:OVER:5:Green +# % gui, OAV.over, readback, Green 5, S03SIM-DI-OAV-01:OVER:5:Green_RBV +# % gui, OAV.over, demand, Blue 5, S03SIM-DI-OAV-01:OVER:5:Blue +# % gui, OAV.over, readback, Blue 5, S03SIM-DI-OAV-01:OVER:5:Blue_RBV +# % gui, OAV.over, demand, X Position 5, S03SIM-DI-OAV-01:OVER:5:PositionX +# % gui, OAV.over, readback, X Position 5, S03SIM-DI-OAV-01:OVER:5:PositionX_RBV +# % gui, OAV.over, demand, X Position Link 5, S03SIM-DI-OAV-01:OVER:5:PositionXLink.DOL +# % gui, OAV.over, demand, X Center 5, S03SIM-DI-OAV-01:OVER:5:CenterX +# % gui, OAV.over, readback, X Center 5, S03SIM-DI-OAV-01:OVER:5:CenterX_RBV +# % gui, OAV.over, demand, X Center Link 5, S03SIM-DI-OAV-01:OVER:5:CenterXLink.DOL +# % gui, OAV.over, demand, X Size 5, S03SIM-DI-OAV-01:OVER:5:SizeX +# % gui, OAV.over, readback, X Size 5, S03SIM-DI-OAV-01:OVER:5:SizeX_RBV +# % gui, OAV.over, demand, X Size Link 5, S03SIM-DI-OAV-01:OVER:5:SizeXLink.DOL +# % gui, OAV.over, demand, Y Position 5, S03SIM-DI-OAV-01:OVER:5:PositionY +# % gui, OAV.over, readback, Y Position 5, S03SIM-DI-OAV-01:OVER:5:PositionY_RBV +# % gui, OAV.over, demand, Y Position Link 5, S03SIM-DI-OAV-01:OVER:5:PositionYLink.DOL +# % gui, OAV.over, demand, Y Center 5, S03SIM-DI-OAV-01:OVER:5:CenterY +# % gui, OAV.over, readback, Y Center 5, S03SIM-DI-OAV-01:OVER:5:CenterY_RBV +# % gui, OAV.over, demand, Y Center Link 5, S03SIM-DI-OAV-01:OVER:5:CenterYLink.DOL +# % gui, OAV.over, demand, Y Size 5, S03SIM-DI-OAV-01:OVER:5:SizeY +# % gui, OAV.over, readback, Y Size 5, S03SIM-DI-OAV-01:OVER:5:SizeY_RBV +# % gui, OAV.over, demand, Y Size Link 5, S03SIM-DI-OAV-01:OVER:5:SizeYLink.DOL +# Overlay 6 +# % gui, OAV.over, groupHeading, Overlay 6 Settings +# % gui, OAV.over, demand, Overlay 6, S03SIM-DI-OAV-01:OVER:6:Name +# % gui, OAV.over, enum, Use 6, S03SIM-DI-OAV-01:OVER:6:Use +# % gui, OAV.over, readback, Use 6, S03SIM-DI-OAV-01:OVER:6:Use_RBV +# % gui, OAV.over, enum, Shape 6, S03SIM-DI-OAV-01:OVER:6:Shape +# % gui, OAV.over, readback, Shape 6, S03SIM-DI-OAV-01:OVER:6:Shape_RBV +# % gui, OAV.over, enum, Mode 6, S03SIM-DI-OAV-01:OVER:6:DrawMode +# % gui, OAV.over, readback, Mode 6, S03SIM-DI-OAV-01:OVER:6:DrawMode_RBV +# % gui, OAV.over, demand, Red 6, S03SIM-DI-OAV-01:OVER:6:Red +# % gui, OAV.over, readback, Red 6, S03SIM-DI-OAV-01:OVER:6:Red_RBV +# % gui, OAV.over, demand, Green 6, S03SIM-DI-OAV-01:OVER:6:Green +# % gui, OAV.over, readback, Green 6, S03SIM-DI-OAV-01:OVER:6:Green_RBV +# % gui, OAV.over, demand, Blue 6, S03SIM-DI-OAV-01:OVER:6:Blue +# % gui, OAV.over, readback, Blue 6, S03SIM-DI-OAV-01:OVER:6:Blue_RBV +# % gui, OAV.over, demand, X Position 6, S03SIM-DI-OAV-01:OVER:6:PositionX +# % gui, OAV.over, readback, X Position 6, S03SIM-DI-OAV-01:OVER:6:PositionX_RBV +# % gui, OAV.over, demand, X Position Link 6, S03SIM-DI-OAV-01:OVER:6:PositionXLink.DOL +# % gui, OAV.over, demand, X Center 6, S03SIM-DI-OAV-01:OVER:6:CenterX +# % gui, OAV.over, readback, X Center 6, S03SIM-DI-OAV-01:OVER:6:CenterX_RBV +# % gui, OAV.over, demand, X Center Link 6, S03SIM-DI-OAV-01:OVER:6:CenterXLink.DOL +# % gui, OAV.over, demand, X Size 6, S03SIM-DI-OAV-01:OVER:6:SizeX +# % gui, OAV.over, readback, X Size 6, S03SIM-DI-OAV-01:OVER:6:SizeX_RBV +# % gui, OAV.over, demand, X Size Link 6, S03SIM-DI-OAV-01:OVER:6:SizeXLink.DOL +# % gui, OAV.over, demand, Y Position 6, S03SIM-DI-OAV-01:OVER:6:PositionY +# % gui, OAV.over, readback, Y Position 6, S03SIM-DI-OAV-01:OVER:6:PositionY_RBV +# % gui, OAV.over, demand, Y Position Link 6, S03SIM-DI-OAV-01:OVER:6:PositionYLink.DOL +# % gui, OAV.over, demand, Y Center 6, S03SIM-DI-OAV-01:OVER:6:CenterY +# % gui, OAV.over, readback, Y Center 6, S03SIM-DI-OAV-01:OVER:6:CenterY_RBV +# % gui, OAV.over, demand, Y Center Link 6, S03SIM-DI-OAV-01:OVER:6:CenterYLink.DOL +# % gui, OAV.over, demand, Y Size 6, S03SIM-DI-OAV-01:OVER:6:SizeY +# % gui, OAV.over, readback, Y Size 6, S03SIM-DI-OAV-01:OVER:6:SizeY_RBV +# % gui, OAV.over, demand, Y Size Link 6, S03SIM-DI-OAV-01:OVER:6:SizeYLink.DOL +# Overlay 7 +# % gui, OAV.over, groupHeading, Overlay 7 Settings +# % gui, OAV.over, demand, Overlay 7, S03SIM-DI-OAV-01:OVER:7:Name +# % gui, OAV.over, enum, Use 7, S03SIM-DI-OAV-01:OVER:7:Use +# % gui, OAV.over, readback, Use 7, S03SIM-DI-OAV-01:OVER:7:Use_RBV +# % gui, OAV.over, enum, Shape 7, S03SIM-DI-OAV-01:OVER:7:Shape +# % gui, OAV.over, readback, Shape 7, S03SIM-DI-OAV-01:OVER:7:Shape_RBV +# % gui, OAV.over, enum, Mode 7, S03SIM-DI-OAV-01:OVER:7:DrawMode +# % gui, OAV.over, readback, Mode 7, S03SIM-DI-OAV-01:OVER:7:DrawMode_RBV +# % gui, OAV.over, demand, Red 7, S03SIM-DI-OAV-01:OVER:7:Red +# % gui, OAV.over, readback, Red 7, S03SIM-DI-OAV-01:OVER:7:Red_RBV +# % gui, OAV.over, demand, Green 7, S03SIM-DI-OAV-01:OVER:7:Green +# % gui, OAV.over, readback, Green 7, S03SIM-DI-OAV-01:OVER:7:Green_RBV +# % gui, OAV.over, demand, Blue 7, S03SIM-DI-OAV-01:OVER:7:Blue +# % gui, OAV.over, readback, Blue 7, S03SIM-DI-OAV-01:OVER:7:Blue_RBV +# % gui, OAV.over, demand, X Position 7, S03SIM-DI-OAV-01:OVER:7:PositionX +# % gui, OAV.over, readback, X Position 7, S03SIM-DI-OAV-01:OVER:7:PositionX_RBV +# % gui, OAV.over, demand, X Position Link 7, S03SIM-DI-OAV-01:OVER:7:PositionXLink.DOL +# % gui, OAV.over, demand, X Center 7, S03SIM-DI-OAV-01:OVER:7:CenterX +# % gui, OAV.over, readback, X Center 7, S03SIM-DI-OAV-01:OVER:7:CenterX_RBV +# % gui, OAV.over, demand, X Center Link 7, S03SIM-DI-OAV-01:OVER:7:CenterXLink.DOL +# % gui, OAV.over, demand, X Size 7, S03SIM-DI-OAV-01:OVER:7:SizeX +# % gui, OAV.over, readback, X Size 7, S03SIM-DI-OAV-01:OVER:7:SizeX_RBV +# % gui, OAV.over, demand, X Size Link 7, S03SIM-DI-OAV-01:OVER:7:SizeXLink.DOL +# % gui, OAV.over, demand, Y Position 7, S03SIM-DI-OAV-01:OVER:7:PositionY +# % gui, OAV.over, readback, Y Position 7, S03SIM-DI-OAV-01:OVER:7:PositionY_RBV +# % gui, OAV.over, demand, Y Position Link 7, S03SIM-DI-OAV-01:OVER:7:PositionYLink.DOL +# % gui, OAV.over, demand, Y Center 7, S03SIM-DI-OAV-01:OVER:7:CenterY +# % gui, OAV.over, readback, Y Center 7, S03SIM-DI-OAV-01:OVER:7:CenterY_RBV +# % gui, OAV.over, demand, Y Center Link 7, S03SIM-DI-OAV-01:OVER:7:CenterYLink.DOL +# % gui, OAV.over, demand, Y Size 7, S03SIM-DI-OAV-01:OVER:7:SizeY +# % gui, OAV.over, readback, Y Size 7, S03SIM-DI-OAV-01:OVER:7:SizeY_RBV +# % gui, OAV.over, demand, Y Size Link 7, S03SIM-DI-OAV-01:OVER:7:SizeYLink.DOL +# Overlay 8 +# % gui, OAV.over, groupHeading, Overlay 8 Settings +# % gui, OAV.over, demand, Overlay 8, S03SIM-DI-OAV-01:OVER:8:Name +# % gui, OAV.over, enum, Use 8, S03SIM-DI-OAV-01:OVER:8:Use +# % gui, OAV.over, readback, Use 8, S03SIM-DI-OAV-01:OVER:8:Use_RBV +# % gui, OAV.over, enum, Shape 8, S03SIM-DI-OAV-01:OVER:8:Shape +# % gui, OAV.over, readback, Shape 8, S03SIM-DI-OAV-01:OVER:8:Shape_RBV +# % gui, OAV.over, enum, Mode 8, S03SIM-DI-OAV-01:OVER:8:DrawMode +# % gui, OAV.over, readback, Mode 8, S03SIM-DI-OAV-01:OVER:8:DrawMode_RBV +# % gui, OAV.over, demand, Red 8, S03SIM-DI-OAV-01:OVER:8:Red +# % gui, OAV.over, readback, Red 8, S03SIM-DI-OAV-01:OVER:8:Red_RBV +# % gui, OAV.over, demand, Green 8, S03SIM-DI-OAV-01:OVER:8:Green +# % gui, OAV.over, readback, Green 8, S03SIM-DI-OAV-01:OVER:8:Green_RBV +# % gui, OAV.over, demand, Blue 8, S03SIM-DI-OAV-01:OVER:8:Blue +# % gui, OAV.over, readback, Blue 8, S03SIM-DI-OAV-01:OVER:8:Blue_RBV +# % gui, OAV.over, demand, X Position 8, S03SIM-DI-OAV-01:OVER:8:PositionX +# % gui, OAV.over, readback, X Position 8, S03SIM-DI-OAV-01:OVER:8:PositionX_RBV +# % gui, OAV.over, demand, X Position Link 8, S03SIM-DI-OAV-01:OVER:8:PositionXLink.DOL +# % gui, OAV.over, demand, X Center 8, S03SIM-DI-OAV-01:OVER:8:CenterX +# % gui, OAV.over, readback, X Center 8, S03SIM-DI-OAV-01:OVER:8:CenterX_RBV +# % gui, OAV.over, demand, X Center Link 8, S03SIM-DI-OAV-01:OVER:8:CenterXLink.DOL +# % gui, OAV.over, demand, X Size 8, S03SIM-DI-OAV-01:OVER:8:SizeX +# % gui, OAV.over, readback, X Size 8, S03SIM-DI-OAV-01:OVER:8:SizeX_RBV +# % gui, OAV.over, demand, X Size Link 8, S03SIM-DI-OAV-01:OVER:8:SizeXLink.DOL +# % gui, OAV.over, demand, Y Position 8, S03SIM-DI-OAV-01:OVER:8:PositionY +# % gui, OAV.over, readback, Y Position 8, S03SIM-DI-OAV-01:OVER:8:PositionY_RBV +# % gui, OAV.over, demand, Y Position Link 8, S03SIM-DI-OAV-01:OVER:8:PositionYLink.DOL +# % gui, OAV.over, demand, Y Center 8, S03SIM-DI-OAV-01:OVER:8:CenterY +# % gui, OAV.over, readback, Y Center 8, S03SIM-DI-OAV-01:OVER:8:CenterY_RBV +# % gui, OAV.over, demand, Y Center Link 8, S03SIM-DI-OAV-01:OVER:8:CenterYLink.DOL +# % gui, OAV.over, demand, Y Size 8, S03SIM-DI-OAV-01:OVER:8:SizeY +# % gui, OAV.over, readback, Y Size 8, S03SIM-DI-OAV-01:OVER:8:SizeY_RBV +# % gui, OAV.over, demand, Y Size Link 8, S03SIM-DI-OAV-01:OVER:8:SizeYLink.DOL +# Memory +# % gui, OAV.over, groupHeading, Memory +# % gui, OAV.over, readback, Max memory, S03SIM-DI-OAV-01:OVER:PoolMaxMem +# % gui, OAV.over, readback, Max buffers, S03SIM-DI-OAV-01:OVER:PoolMaxBuffers +# % gui, OAV.over, readback, Used memory, S03SIM-DI-OAV-01:OVER:PoolUsedMem +# % gui, OAV.over, readback, Allocated buffers, S03SIM-DI-OAV-01:OVER:PoolAllocBuffers +# % gui, OAV.over, readback, Free buffers, S03SIM-DI-OAV-01:OVER:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:OVER:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:OVER:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:OVER:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:OVER:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:OVER:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:OVER:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:OVER:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:OVER:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:OVER:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:OVER:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:OVER:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:OVER:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:OVER:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:OVER:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:OVER:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:OVER:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:OVER:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:OVER:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.over,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:OVER:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:OVER:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:OVER:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:OVER:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:OVER:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:OVER:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:OVER:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:OVER:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:OVER:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:OVER:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.over,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:OVER:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:OVER:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:OVER:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:OVER:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:OVER:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:OVER:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:OVER:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:OVER:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:OVER:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:OVER:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:OVER:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:OVER:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:OVER:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:OVER:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:OVER:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:OVER:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.over,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:OVER:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:OVER:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:OVER:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:OVER:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:OVER:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:OVER:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:OVER:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:OVER:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.over,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:OVER:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.over,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:OVER:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:OVER:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.over,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:OVER:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.over,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:OVER:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:OVER:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:OVER:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:OVER:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:OVER:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:OVER:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:OVER:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:OVER:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:OVER:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.over,0,1)NDARRAY_PORT") + field(VAL, "OAV.proc") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:OVER:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:OVER:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:OVER:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.over,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:OVER:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.over,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:OVER:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:OVER:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:OVER:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:OVER:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:OVER:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:OVER:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:OVER:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:OVER:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.over,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:OVER:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.over,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:OVER:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.over,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:OVER:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:OVER:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:OVER:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:OVER:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:OVER:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:OVER:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:OVER:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:OVER:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:OVER:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:OVER:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:OVER:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:OVER:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:OVER:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:OVER:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:OVER:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:OVER:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:OVER:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:OVER:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:OVER:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:OVER:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:OVER:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.over,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:OVER:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.over,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:OVER:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:OVER:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:OVER:SortSize") + field(OUT, "S03SIM-DI-OAV-01:OVER:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:OVER:AsynIO") +{ + field(PORT, "OAV.over") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +# These are the array dimensions in X, Y order. Used for setting HOPR on sliders +record(longin, "S03SIM-DI-OAV-01:OVER:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)MAX_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)MAX_SIZE_Y") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlay.template +# Database for NDPluginOverlay asyn driver and standard asyn device support +# Mark Rivers +# March 25, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, FSCN1.over, edmtab, NDOverlay.edl, P=S03SIM-EA-FSCN-01,R=:OVER: + +# This associates a BOY screen with the template +# % gui, FSCN1.over, boydetail,ADApp_opi/dls/over_detail.opi, P=S03SIM-EA-FSCN-01, R=:OVER:, DESC=Overlay +# % gui, FSCN1.over, boyembed, ADApp_opi/dls/over_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:OVER:, DESC=Overlay +# % gui, FSCN1.over, boyembed, ADApp_opi/dls/over_embed.opi, P=S03SIM-EA-FSCN-01, R=:OVER:, DESC=Overlay + + +# % gui, FSCN1.over, groupHeading, Info +# % gui, FSCN1.over, readback, Port name, S03SIM-EA-FSCN-01:OVER:PortName_RBV +# % gui, FSCN1.over, readback, Plugin type, S03SIM-EA-FSCN-01:OVER:PluginType_RBV +# Input +# % gui, FSCN1.over, demandString, Input, S03SIM-EA-FSCN-01:OVER:NDArrayPort +# % gui, FSCN1.over, readback, Input, S03SIM-EA-FSCN-01:OVER:NDArrayPort_RBV + +# % gui, FSCN1.over, groupHeading, Callback +# % gui, FSCN1.over, enum, Callbacks, S03SIM-EA-FSCN-01:OVER:EnableCallbacks +# % gui, FSCN1.over, statusbits, Callbacks, S03SIM-EA-FSCN-01:OVER:EnableCallbacks_RBV +# % gui, FSCN1.over, demand, Min Callback Time, S03SIM-EA-FSCN-01:OVER:MinCallbackTime +# % gui, FSCN1.over, readback, Min Callback Time, S03SIM-EA-FSCN-01:OVER:MinCallbackTime_RBV +# % gui, FSCN1.over, enum, Block Callbacks, S03SIM-EA-FSCN-01:OVER:BlockingCallbacks +# % gui, FSCN1.over, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:OVER:BlockingCallbacks_RBV + +# % gui, FSCN1.over, groupHeading, Counters +# % gui, FSCN1.over, demand, Array Counter, S03SIM-EA-FSCN-01:OVER:ArrayCounter +# % gui, FSCN1.over, readback, Array Counter, S03SIM-EA-FSCN-01:OVER:ArrayCounter_RBV +# % gui, FSCN1.over, readback, Array Rate (fps), S03SIM-EA-FSCN-01:OVER:ArrayRate_RBV +# % gui, FSCN1.over, readback, Queue Use, S03SIM-EA-FSCN-01:OVER:QueueUse +# % gui, FSCN1.over, readback, Queue Size, S03SIM-EA-FSCN-01:OVER:QueueSize +# % gui, FSCN1.over, demand, Dropped Arrays, S03SIM-EA-FSCN-01:OVER:DroppedArrays +# % gui, FSCN1.over, readback, Dropped Arrays, S03SIM-EA-FSCN-01:OVER:DroppedArrays_RBV + +# % gui, FSCN1.over, groupHeading, Array Settings +# % gui, FSCN1.over, readback, Num Dimensions, S03SIM-EA-FSCN-01:OVER:NDimensions_RBV +# % gui, FSCN1.over, readback, Dim 0 Size, S03SIM-EA-FSCN-01:OVER:ArraySize0_RBV +# % gui, FSCN1.over, readback, Dim 1 Size, S03SIM-EA-FSCN-01:OVER:ArraySize1_RBV +# % gui, FSCN1.over, readback, Dim 2 Size, S03SIM-EA-FSCN-01:OVER:ArraySize2_RBV +# % gui, FSCN1.over, readback, Input Data Type, S03SIM-EA-FSCN-01:OVER:DataType_RBV +# % gui, FSCN1.over, readback, Colour Mode, S03SIM-EA-FSCN-01:OVER:ColorMode_RBV +# % gui, FSCN1.over, readback, Bayer Pattern, S03SIM-EA-FSCN-01:OVER:BayerPattern_RBV +# % gui, FSCN1.over, readback, Unique id, S03SIM-EA-FSCN-01:OVER:UniqueId_RBV +# % gui, FSCN1.over, readback, Timestamp, S03SIM-EA-FSCN-01:OVER:TimeStamp_RBV + +# Output +# % gui, FSCN1.over, groupHeading, Output +# % gui, FSCN1.over, demand, Name, S03SIM-EA-FSCN-01:OVER:Name +# % gui, FSCN1.over, enum, Out data type, S03SIM-EA-FSCN-01:OVER:DataTypeOut +# % gui, FSCN1.over, readback, Out data type, S03SIM-EA-FSCN-01:OVER:DataTypeOut_RBV +# % gui, FSCN1.over, demand, Attributes file, S03SIM-EA-FSCN-01:OVER:NDAttributesFile + +# Overlay 1 +# % gui, FSCN1.over, groupHeading, Overlay 1 Settings +# % gui, FSCN1.over, demand, Overlay 1, S03SIM-EA-FSCN-01:OVER:1:Name +# % gui, FSCN1.over, enum, Use 1, S03SIM-EA-FSCN-01:OVER:1:Use +# % gui, FSCN1.over, readback, Use 1, S03SIM-EA-FSCN-01:OVER:1:Use_RBV +# % gui, FSCN1.over, enum, Shape 1, S03SIM-EA-FSCN-01:OVER:1:Shape +# % gui, FSCN1.over, readback, Shape 1, S03SIM-EA-FSCN-01:OVER:1:Shape_RBV +# % gui, FSCN1.over, enum, Mode 1, S03SIM-EA-FSCN-01:OVER:1:DrawMode +# % gui, FSCN1.over, readback, Mode 1, S03SIM-EA-FSCN-01:OVER:1:DrawMode_RBV +# % gui, FSCN1.over, demand, Red 1, S03SIM-EA-FSCN-01:OVER:1:Red +# % gui, FSCN1.over, readback, Red 1, S03SIM-EA-FSCN-01:OVER:1:Red_RBV +# % gui, FSCN1.over, demand, Green 1, S03SIM-EA-FSCN-01:OVER:1:Green +# % gui, FSCN1.over, readback, Green 1, S03SIM-EA-FSCN-01:OVER:1:Green_RBV +# % gui, FSCN1.over, demand, Blue 1, S03SIM-EA-FSCN-01:OVER:1:Blue +# % gui, FSCN1.over, readback, Blue 1, S03SIM-EA-FSCN-01:OVER:1:Blue_RBV +# % gui, FSCN1.over, demand, X Position 1, S03SIM-EA-FSCN-01:OVER:1:PositionX +# % gui, FSCN1.over, readback, X Position 1, S03SIM-EA-FSCN-01:OVER:1:PositionX_RBV +# % gui, FSCN1.over, demand, X Position Link 1, S03SIM-EA-FSCN-01:OVER:1:PositionXLink.DOL +# % gui, FSCN1.over, demand, X Center 1, S03SIM-EA-FSCN-01:OVER:1:CenterX +# % gui, FSCN1.over, readback, X Center 1, S03SIM-EA-FSCN-01:OVER:1:CenterX_RBV +# % gui, FSCN1.over, demand, X Center Link 1, S03SIM-EA-FSCN-01:OVER:1:CenterXLink.DOL +# % gui, FSCN1.over, demand, X Size 1, S03SIM-EA-FSCN-01:OVER:1:SizeX +# % gui, FSCN1.over, readback, X Size 1, S03SIM-EA-FSCN-01:OVER:1:SizeX_RBV +# % gui, FSCN1.over, demand, X Size Link 1, S03SIM-EA-FSCN-01:OVER:1:SizeXLink.DOL +# % gui, FSCN1.over, demand, Y Position 1, S03SIM-EA-FSCN-01:OVER:1:PositionY +# % gui, FSCN1.over, readback, Y Position 1, S03SIM-EA-FSCN-01:OVER:1:PositionY_RBV +# % gui, FSCN1.over, demand, Y Position Link 1, S03SIM-EA-FSCN-01:OVER:1:PositionYLink.DOL +# % gui, FSCN1.over, demand, Y Center 1, S03SIM-EA-FSCN-01:OVER:1:CenterY +# % gui, FSCN1.over, readback, Y Center 1, S03SIM-EA-FSCN-01:OVER:1:CenterY_RBV +# % gui, FSCN1.over, demand, Y Center Link 1, S03SIM-EA-FSCN-01:OVER:1:CenterYLink.DOL +# % gui, FSCN1.over, demand, Y Size 1, S03SIM-EA-FSCN-01:OVER:1:SizeY +# % gui, FSCN1.over, readback, Y Size 1, S03SIM-EA-FSCN-01:OVER:1:SizeY_RBV +# % gui, FSCN1.over, demand, Y Size Link 1, S03SIM-EA-FSCN-01:OVER:1:SizeYLink.DOL +# Overlay 2 +# % gui, FSCN1.over, groupHeading, Overlay 2 Settings +# % gui, FSCN1.over, demand, Overlay 2, S03SIM-EA-FSCN-01:OVER:2:Name +# % gui, FSCN1.over, enum, Use 2, S03SIM-EA-FSCN-01:OVER:2:Use +# % gui, FSCN1.over, readback, Use 2, S03SIM-EA-FSCN-01:OVER:2:Use_RBV +# % gui, FSCN1.over, enum, Shape 2, S03SIM-EA-FSCN-01:OVER:2:Shape +# % gui, FSCN1.over, readback, Shape 2, S03SIM-EA-FSCN-01:OVER:2:Shape_RBV +# % gui, FSCN1.over, enum, Mode 2, S03SIM-EA-FSCN-01:OVER:2:DrawMode +# % gui, FSCN1.over, readback, Mode 2, S03SIM-EA-FSCN-01:OVER:2:DrawMode_RBV +# % gui, FSCN1.over, demand, Red 2, S03SIM-EA-FSCN-01:OVER:2:Red +# % gui, FSCN1.over, readback, Red 2, S03SIM-EA-FSCN-01:OVER:2:Red_RBV +# % gui, FSCN1.over, demand, Green 2, S03SIM-EA-FSCN-01:OVER:2:Green +# % gui, FSCN1.over, readback, Green 2, S03SIM-EA-FSCN-01:OVER:2:Green_RBV +# % gui, FSCN1.over, demand, Blue 2, S03SIM-EA-FSCN-01:OVER:2:Blue +# % gui, FSCN1.over, readback, Blue 2, S03SIM-EA-FSCN-01:OVER:2:Blue_RBV +# % gui, FSCN1.over, demand, X Position 2, S03SIM-EA-FSCN-01:OVER:2:PositionX +# % gui, FSCN1.over, readback, X Position 2, S03SIM-EA-FSCN-01:OVER:2:PositionX_RBV +# % gui, FSCN1.over, demand, X Position Link 2, S03SIM-EA-FSCN-01:OVER:2:PositionXLink.DOL +# % gui, FSCN1.over, demand, X Center 2, S03SIM-EA-FSCN-01:OVER:2:CenterX +# % gui, FSCN1.over, readback, X Center 2, S03SIM-EA-FSCN-01:OVER:2:CenterX_RBV +# % gui, FSCN1.over, demand, X Center Link 2, S03SIM-EA-FSCN-01:OVER:2:CenterXLink.DOL +# % gui, FSCN1.over, demand, X Size 2, S03SIM-EA-FSCN-01:OVER:2:SizeX +# % gui, FSCN1.over, readback, X Size 2, S03SIM-EA-FSCN-01:OVER:2:SizeX_RBV +# % gui, FSCN1.over, demand, X Size Link 2, S03SIM-EA-FSCN-01:OVER:2:SizeXLink.DOL +# % gui, FSCN1.over, demand, Y Position 2, S03SIM-EA-FSCN-01:OVER:2:PositionY +# % gui, FSCN1.over, readback, Y Position 2, S03SIM-EA-FSCN-01:OVER:2:PositionY_RBV +# % gui, FSCN1.over, demand, Y Position Link 2, S03SIM-EA-FSCN-01:OVER:2:PositionYLink.DOL +# % gui, FSCN1.over, demand, Y Center 2, S03SIM-EA-FSCN-01:OVER:2:CenterY +# % gui, FSCN1.over, readback, Y Center 2, S03SIM-EA-FSCN-01:OVER:2:CenterY_RBV +# % gui, FSCN1.over, demand, Y Center Link 2, S03SIM-EA-FSCN-01:OVER:2:CenterYLink.DOL +# % gui, FSCN1.over, demand, Y Size 2, S03SIM-EA-FSCN-01:OVER:2:SizeY +# % gui, FSCN1.over, readback, Y Size 2, S03SIM-EA-FSCN-01:OVER:2:SizeY_RBV +# % gui, FSCN1.over, demand, Y Size Link 2, S03SIM-EA-FSCN-01:OVER:2:SizeYLink.DOL +# Overlay 3 +# % gui, FSCN1.over, groupHeading, Overlay 3 Settings +# % gui, FSCN1.over, demand, Overlay 3, S03SIM-EA-FSCN-01:OVER:3:Name +# % gui, FSCN1.over, enum, Use 3, S03SIM-EA-FSCN-01:OVER:3:Use +# % gui, FSCN1.over, readback, Use 3, S03SIM-EA-FSCN-01:OVER:3:Use_RBV +# % gui, FSCN1.over, enum, Shape 3, S03SIM-EA-FSCN-01:OVER:3:Shape +# % gui, FSCN1.over, readback, Shape 3, S03SIM-EA-FSCN-01:OVER:3:Shape_RBV +# % gui, FSCN1.over, enum, Mode 3, S03SIM-EA-FSCN-01:OVER:3:DrawMode +# % gui, FSCN1.over, readback, Mode 3, S03SIM-EA-FSCN-01:OVER:3:DrawMode_RBV +# % gui, FSCN1.over, demand, Red 3, S03SIM-EA-FSCN-01:OVER:3:Red +# % gui, FSCN1.over, readback, Red 3, S03SIM-EA-FSCN-01:OVER:3:Red_RBV +# % gui, FSCN1.over, demand, Green 3, S03SIM-EA-FSCN-01:OVER:3:Green +# % gui, FSCN1.over, readback, Green 3, S03SIM-EA-FSCN-01:OVER:3:Green_RBV +# % gui, FSCN1.over, demand, Blue 3, S03SIM-EA-FSCN-01:OVER:3:Blue +# % gui, FSCN1.over, readback, Blue 3, S03SIM-EA-FSCN-01:OVER:3:Blue_RBV +# % gui, FSCN1.over, demand, X Position 3, S03SIM-EA-FSCN-01:OVER:3:PositionX +# % gui, FSCN1.over, readback, X Position 3, S03SIM-EA-FSCN-01:OVER:3:PositionX_RBV +# % gui, FSCN1.over, demand, X Position Link 3, S03SIM-EA-FSCN-01:OVER:3:PositionXLink.DOL +# % gui, FSCN1.over, demand, X Center 3, S03SIM-EA-FSCN-01:OVER:3:CenterX +# % gui, FSCN1.over, readback, X Center 3, S03SIM-EA-FSCN-01:OVER:3:CenterX_RBV +# % gui, FSCN1.over, demand, X Center Link 3, S03SIM-EA-FSCN-01:OVER:3:CenterXLink.DOL +# % gui, FSCN1.over, demand, X Size 3, S03SIM-EA-FSCN-01:OVER:3:SizeX +# % gui, FSCN1.over, readback, X Size 3, S03SIM-EA-FSCN-01:OVER:3:SizeX_RBV +# % gui, FSCN1.over, demand, X Size Link 3, S03SIM-EA-FSCN-01:OVER:3:SizeXLink.DOL +# % gui, FSCN1.over, demand, Y Position 3, S03SIM-EA-FSCN-01:OVER:3:PositionY +# % gui, FSCN1.over, readback, Y Position 3, S03SIM-EA-FSCN-01:OVER:3:PositionY_RBV +# % gui, FSCN1.over, demand, Y Position Link 3, S03SIM-EA-FSCN-01:OVER:3:PositionYLink.DOL +# % gui, FSCN1.over, demand, Y Center 3, S03SIM-EA-FSCN-01:OVER:3:CenterY +# % gui, FSCN1.over, readback, Y Center 3, S03SIM-EA-FSCN-01:OVER:3:CenterY_RBV +# % gui, FSCN1.over, demand, Y Center Link 3, S03SIM-EA-FSCN-01:OVER:3:CenterYLink.DOL +# % gui, FSCN1.over, demand, Y Size 3, S03SIM-EA-FSCN-01:OVER:3:SizeY +# % gui, FSCN1.over, readback, Y Size 3, S03SIM-EA-FSCN-01:OVER:3:SizeY_RBV +# % gui, FSCN1.over, demand, Y Size Link 3, S03SIM-EA-FSCN-01:OVER:3:SizeYLink.DOL +# Overlay 4 +# % gui, FSCN1.over, groupHeading, Overlay 4 Settings +# % gui, FSCN1.over, demand, Overlay 4, S03SIM-EA-FSCN-01:OVER:4:Name +# % gui, FSCN1.over, enum, Use 4, S03SIM-EA-FSCN-01:OVER:4:Use +# % gui, FSCN1.over, readback, Use 4, S03SIM-EA-FSCN-01:OVER:4:Use_RBV +# % gui, FSCN1.over, enum, Shape 4, S03SIM-EA-FSCN-01:OVER:4:Shape +# % gui, FSCN1.over, readback, Shape 4, S03SIM-EA-FSCN-01:OVER:4:Shape_RBV +# % gui, FSCN1.over, enum, Mode 4, S03SIM-EA-FSCN-01:OVER:4:DrawMode +# % gui, FSCN1.over, readback, Mode 4, S03SIM-EA-FSCN-01:OVER:4:DrawMode_RBV +# % gui, FSCN1.over, demand, Red 4, S03SIM-EA-FSCN-01:OVER:4:Red +# % gui, FSCN1.over, readback, Red 4, S03SIM-EA-FSCN-01:OVER:4:Red_RBV +# % gui, FSCN1.over, demand, Green 4, S03SIM-EA-FSCN-01:OVER:4:Green +# % gui, FSCN1.over, readback, Green 4, S03SIM-EA-FSCN-01:OVER:4:Green_RBV +# % gui, FSCN1.over, demand, Blue 4, S03SIM-EA-FSCN-01:OVER:4:Blue +# % gui, FSCN1.over, readback, Blue 4, S03SIM-EA-FSCN-01:OVER:4:Blue_RBV +# % gui, FSCN1.over, demand, X Position 4, S03SIM-EA-FSCN-01:OVER:4:PositionX +# % gui, FSCN1.over, readback, X Position 4, S03SIM-EA-FSCN-01:OVER:4:PositionX_RBV +# % gui, FSCN1.over, demand, X Position Link 4, S03SIM-EA-FSCN-01:OVER:4:PositionXLink.DOL +# % gui, FSCN1.over, demand, X Center 4, S03SIM-EA-FSCN-01:OVER:4:CenterX +# % gui, FSCN1.over, readback, X Center 4, S03SIM-EA-FSCN-01:OVER:4:CenterX_RBV +# % gui, FSCN1.over, demand, X Center Link 4, S03SIM-EA-FSCN-01:OVER:4:CenterXLink.DOL +# % gui, FSCN1.over, demand, X Size 4, S03SIM-EA-FSCN-01:OVER:4:SizeX +# % gui, FSCN1.over, readback, X Size 4, S03SIM-EA-FSCN-01:OVER:4:SizeX_RBV +# % gui, FSCN1.over, demand, X Size Link 4, S03SIM-EA-FSCN-01:OVER:4:SizeXLink.DOL +# % gui, FSCN1.over, demand, Y Position 4, S03SIM-EA-FSCN-01:OVER:4:PositionY +# % gui, FSCN1.over, readback, Y Position 4, S03SIM-EA-FSCN-01:OVER:4:PositionY_RBV +# % gui, FSCN1.over, demand, Y Position Link 4, S03SIM-EA-FSCN-01:OVER:4:PositionYLink.DOL +# % gui, FSCN1.over, demand, Y Center 4, S03SIM-EA-FSCN-01:OVER:4:CenterY +# % gui, FSCN1.over, readback, Y Center 4, S03SIM-EA-FSCN-01:OVER:4:CenterY_RBV +# % gui, FSCN1.over, demand, Y Center Link 4, S03SIM-EA-FSCN-01:OVER:4:CenterYLink.DOL +# % gui, FSCN1.over, demand, Y Size 4, S03SIM-EA-FSCN-01:OVER:4:SizeY +# % gui, FSCN1.over, readback, Y Size 4, S03SIM-EA-FSCN-01:OVER:4:SizeY_RBV +# % gui, FSCN1.over, demand, Y Size Link 4, S03SIM-EA-FSCN-01:OVER:4:SizeYLink.DOL +# Overlay 5 +# % gui, FSCN1.over, groupHeading, Overlay 5 Settings +# % gui, FSCN1.over, demand, Overlay 5, S03SIM-EA-FSCN-01:OVER:5:Name +# % gui, FSCN1.over, enum, Use 5, S03SIM-EA-FSCN-01:OVER:5:Use +# % gui, FSCN1.over, readback, Use 5, S03SIM-EA-FSCN-01:OVER:5:Use_RBV +# % gui, FSCN1.over, enum, Shape 5, S03SIM-EA-FSCN-01:OVER:5:Shape +# % gui, FSCN1.over, readback, Shape 5, S03SIM-EA-FSCN-01:OVER:5:Shape_RBV +# % gui, FSCN1.over, enum, Mode 5, S03SIM-EA-FSCN-01:OVER:5:DrawMode +# % gui, FSCN1.over, readback, Mode 5, S03SIM-EA-FSCN-01:OVER:5:DrawMode_RBV +# % gui, FSCN1.over, demand, Red 5, S03SIM-EA-FSCN-01:OVER:5:Red +# % gui, FSCN1.over, readback, Red 5, S03SIM-EA-FSCN-01:OVER:5:Red_RBV +# % gui, FSCN1.over, demand, Green 5, S03SIM-EA-FSCN-01:OVER:5:Green +# % gui, FSCN1.over, readback, Green 5, S03SIM-EA-FSCN-01:OVER:5:Green_RBV +# % gui, FSCN1.over, demand, Blue 5, S03SIM-EA-FSCN-01:OVER:5:Blue +# % gui, FSCN1.over, readback, Blue 5, S03SIM-EA-FSCN-01:OVER:5:Blue_RBV +# % gui, FSCN1.over, demand, X Position 5, S03SIM-EA-FSCN-01:OVER:5:PositionX +# % gui, FSCN1.over, readback, X Position 5, S03SIM-EA-FSCN-01:OVER:5:PositionX_RBV +# % gui, FSCN1.over, demand, X Position Link 5, S03SIM-EA-FSCN-01:OVER:5:PositionXLink.DOL +# % gui, FSCN1.over, demand, X Center 5, S03SIM-EA-FSCN-01:OVER:5:CenterX +# % gui, FSCN1.over, readback, X Center 5, S03SIM-EA-FSCN-01:OVER:5:CenterX_RBV +# % gui, FSCN1.over, demand, X Center Link 5, S03SIM-EA-FSCN-01:OVER:5:CenterXLink.DOL +# % gui, FSCN1.over, demand, X Size 5, S03SIM-EA-FSCN-01:OVER:5:SizeX +# % gui, FSCN1.over, readback, X Size 5, S03SIM-EA-FSCN-01:OVER:5:SizeX_RBV +# % gui, FSCN1.over, demand, X Size Link 5, S03SIM-EA-FSCN-01:OVER:5:SizeXLink.DOL +# % gui, FSCN1.over, demand, Y Position 5, S03SIM-EA-FSCN-01:OVER:5:PositionY +# % gui, FSCN1.over, readback, Y Position 5, S03SIM-EA-FSCN-01:OVER:5:PositionY_RBV +# % gui, FSCN1.over, demand, Y Position Link 5, S03SIM-EA-FSCN-01:OVER:5:PositionYLink.DOL +# % gui, FSCN1.over, demand, Y Center 5, S03SIM-EA-FSCN-01:OVER:5:CenterY +# % gui, FSCN1.over, readback, Y Center 5, S03SIM-EA-FSCN-01:OVER:5:CenterY_RBV +# % gui, FSCN1.over, demand, Y Center Link 5, S03SIM-EA-FSCN-01:OVER:5:CenterYLink.DOL +# % gui, FSCN1.over, demand, Y Size 5, S03SIM-EA-FSCN-01:OVER:5:SizeY +# % gui, FSCN1.over, readback, Y Size 5, S03SIM-EA-FSCN-01:OVER:5:SizeY_RBV +# % gui, FSCN1.over, demand, Y Size Link 5, S03SIM-EA-FSCN-01:OVER:5:SizeYLink.DOL +# Overlay 6 +# % gui, FSCN1.over, groupHeading, Overlay 6 Settings +# % gui, FSCN1.over, demand, Overlay 6, S03SIM-EA-FSCN-01:OVER:6:Name +# % gui, FSCN1.over, enum, Use 6, S03SIM-EA-FSCN-01:OVER:6:Use +# % gui, FSCN1.over, readback, Use 6, S03SIM-EA-FSCN-01:OVER:6:Use_RBV +# % gui, FSCN1.over, enum, Shape 6, S03SIM-EA-FSCN-01:OVER:6:Shape +# % gui, FSCN1.over, readback, Shape 6, S03SIM-EA-FSCN-01:OVER:6:Shape_RBV +# % gui, FSCN1.over, enum, Mode 6, S03SIM-EA-FSCN-01:OVER:6:DrawMode +# % gui, FSCN1.over, readback, Mode 6, S03SIM-EA-FSCN-01:OVER:6:DrawMode_RBV +# % gui, FSCN1.over, demand, Red 6, S03SIM-EA-FSCN-01:OVER:6:Red +# % gui, FSCN1.over, readback, Red 6, S03SIM-EA-FSCN-01:OVER:6:Red_RBV +# % gui, FSCN1.over, demand, Green 6, S03SIM-EA-FSCN-01:OVER:6:Green +# % gui, FSCN1.over, readback, Green 6, S03SIM-EA-FSCN-01:OVER:6:Green_RBV +# % gui, FSCN1.over, demand, Blue 6, S03SIM-EA-FSCN-01:OVER:6:Blue +# % gui, FSCN1.over, readback, Blue 6, S03SIM-EA-FSCN-01:OVER:6:Blue_RBV +# % gui, FSCN1.over, demand, X Position 6, S03SIM-EA-FSCN-01:OVER:6:PositionX +# % gui, FSCN1.over, readback, X Position 6, S03SIM-EA-FSCN-01:OVER:6:PositionX_RBV +# % gui, FSCN1.over, demand, X Position Link 6, S03SIM-EA-FSCN-01:OVER:6:PositionXLink.DOL +# % gui, FSCN1.over, demand, X Center 6, S03SIM-EA-FSCN-01:OVER:6:CenterX +# % gui, FSCN1.over, readback, X Center 6, S03SIM-EA-FSCN-01:OVER:6:CenterX_RBV +# % gui, FSCN1.over, demand, X Center Link 6, S03SIM-EA-FSCN-01:OVER:6:CenterXLink.DOL +# % gui, FSCN1.over, demand, X Size 6, S03SIM-EA-FSCN-01:OVER:6:SizeX +# % gui, FSCN1.over, readback, X Size 6, S03SIM-EA-FSCN-01:OVER:6:SizeX_RBV +# % gui, FSCN1.over, demand, X Size Link 6, S03SIM-EA-FSCN-01:OVER:6:SizeXLink.DOL +# % gui, FSCN1.over, demand, Y Position 6, S03SIM-EA-FSCN-01:OVER:6:PositionY +# % gui, FSCN1.over, readback, Y Position 6, S03SIM-EA-FSCN-01:OVER:6:PositionY_RBV +# % gui, FSCN1.over, demand, Y Position Link 6, S03SIM-EA-FSCN-01:OVER:6:PositionYLink.DOL +# % gui, FSCN1.over, demand, Y Center 6, S03SIM-EA-FSCN-01:OVER:6:CenterY +# % gui, FSCN1.over, readback, Y Center 6, S03SIM-EA-FSCN-01:OVER:6:CenterY_RBV +# % gui, FSCN1.over, demand, Y Center Link 6, S03SIM-EA-FSCN-01:OVER:6:CenterYLink.DOL +# % gui, FSCN1.over, demand, Y Size 6, S03SIM-EA-FSCN-01:OVER:6:SizeY +# % gui, FSCN1.over, readback, Y Size 6, S03SIM-EA-FSCN-01:OVER:6:SizeY_RBV +# % gui, FSCN1.over, demand, Y Size Link 6, S03SIM-EA-FSCN-01:OVER:6:SizeYLink.DOL +# Overlay 7 +# % gui, FSCN1.over, groupHeading, Overlay 7 Settings +# % gui, FSCN1.over, demand, Overlay 7, S03SIM-EA-FSCN-01:OVER:7:Name +# % gui, FSCN1.over, enum, Use 7, S03SIM-EA-FSCN-01:OVER:7:Use +# % gui, FSCN1.over, readback, Use 7, S03SIM-EA-FSCN-01:OVER:7:Use_RBV +# % gui, FSCN1.over, enum, Shape 7, S03SIM-EA-FSCN-01:OVER:7:Shape +# % gui, FSCN1.over, readback, Shape 7, S03SIM-EA-FSCN-01:OVER:7:Shape_RBV +# % gui, FSCN1.over, enum, Mode 7, S03SIM-EA-FSCN-01:OVER:7:DrawMode +# % gui, FSCN1.over, readback, Mode 7, S03SIM-EA-FSCN-01:OVER:7:DrawMode_RBV +# % gui, FSCN1.over, demand, Red 7, S03SIM-EA-FSCN-01:OVER:7:Red +# % gui, FSCN1.over, readback, Red 7, S03SIM-EA-FSCN-01:OVER:7:Red_RBV +# % gui, FSCN1.over, demand, Green 7, S03SIM-EA-FSCN-01:OVER:7:Green +# % gui, FSCN1.over, readback, Green 7, S03SIM-EA-FSCN-01:OVER:7:Green_RBV +# % gui, FSCN1.over, demand, Blue 7, S03SIM-EA-FSCN-01:OVER:7:Blue +# % gui, FSCN1.over, readback, Blue 7, S03SIM-EA-FSCN-01:OVER:7:Blue_RBV +# % gui, FSCN1.over, demand, X Position 7, S03SIM-EA-FSCN-01:OVER:7:PositionX +# % gui, FSCN1.over, readback, X Position 7, S03SIM-EA-FSCN-01:OVER:7:PositionX_RBV +# % gui, FSCN1.over, demand, X Position Link 7, S03SIM-EA-FSCN-01:OVER:7:PositionXLink.DOL +# % gui, FSCN1.over, demand, X Center 7, S03SIM-EA-FSCN-01:OVER:7:CenterX +# % gui, FSCN1.over, readback, X Center 7, S03SIM-EA-FSCN-01:OVER:7:CenterX_RBV +# % gui, FSCN1.over, demand, X Center Link 7, S03SIM-EA-FSCN-01:OVER:7:CenterXLink.DOL +# % gui, FSCN1.over, demand, X Size 7, S03SIM-EA-FSCN-01:OVER:7:SizeX +# % gui, FSCN1.over, readback, X Size 7, S03SIM-EA-FSCN-01:OVER:7:SizeX_RBV +# % gui, FSCN1.over, demand, X Size Link 7, S03SIM-EA-FSCN-01:OVER:7:SizeXLink.DOL +# % gui, FSCN1.over, demand, Y Position 7, S03SIM-EA-FSCN-01:OVER:7:PositionY +# % gui, FSCN1.over, readback, Y Position 7, S03SIM-EA-FSCN-01:OVER:7:PositionY_RBV +# % gui, FSCN1.over, demand, Y Position Link 7, S03SIM-EA-FSCN-01:OVER:7:PositionYLink.DOL +# % gui, FSCN1.over, demand, Y Center 7, S03SIM-EA-FSCN-01:OVER:7:CenterY +# % gui, FSCN1.over, readback, Y Center 7, S03SIM-EA-FSCN-01:OVER:7:CenterY_RBV +# % gui, FSCN1.over, demand, Y Center Link 7, S03SIM-EA-FSCN-01:OVER:7:CenterYLink.DOL +# % gui, FSCN1.over, demand, Y Size 7, S03SIM-EA-FSCN-01:OVER:7:SizeY +# % gui, FSCN1.over, readback, Y Size 7, S03SIM-EA-FSCN-01:OVER:7:SizeY_RBV +# % gui, FSCN1.over, demand, Y Size Link 7, S03SIM-EA-FSCN-01:OVER:7:SizeYLink.DOL +# Overlay 8 +# % gui, FSCN1.over, groupHeading, Overlay 8 Settings +# % gui, FSCN1.over, demand, Overlay 8, S03SIM-EA-FSCN-01:OVER:8:Name +# % gui, FSCN1.over, enum, Use 8, S03SIM-EA-FSCN-01:OVER:8:Use +# % gui, FSCN1.over, readback, Use 8, S03SIM-EA-FSCN-01:OVER:8:Use_RBV +# % gui, FSCN1.over, enum, Shape 8, S03SIM-EA-FSCN-01:OVER:8:Shape +# % gui, FSCN1.over, readback, Shape 8, S03SIM-EA-FSCN-01:OVER:8:Shape_RBV +# % gui, FSCN1.over, enum, Mode 8, S03SIM-EA-FSCN-01:OVER:8:DrawMode +# % gui, FSCN1.over, readback, Mode 8, S03SIM-EA-FSCN-01:OVER:8:DrawMode_RBV +# % gui, FSCN1.over, demand, Red 8, S03SIM-EA-FSCN-01:OVER:8:Red +# % gui, FSCN1.over, readback, Red 8, S03SIM-EA-FSCN-01:OVER:8:Red_RBV +# % gui, FSCN1.over, demand, Green 8, S03SIM-EA-FSCN-01:OVER:8:Green +# % gui, FSCN1.over, readback, Green 8, S03SIM-EA-FSCN-01:OVER:8:Green_RBV +# % gui, FSCN1.over, demand, Blue 8, S03SIM-EA-FSCN-01:OVER:8:Blue +# % gui, FSCN1.over, readback, Blue 8, S03SIM-EA-FSCN-01:OVER:8:Blue_RBV +# % gui, FSCN1.over, demand, X Position 8, S03SIM-EA-FSCN-01:OVER:8:PositionX +# % gui, FSCN1.over, readback, X Position 8, S03SIM-EA-FSCN-01:OVER:8:PositionX_RBV +# % gui, FSCN1.over, demand, X Position Link 8, S03SIM-EA-FSCN-01:OVER:8:PositionXLink.DOL +# % gui, FSCN1.over, demand, X Center 8, S03SIM-EA-FSCN-01:OVER:8:CenterX +# % gui, FSCN1.over, readback, X Center 8, S03SIM-EA-FSCN-01:OVER:8:CenterX_RBV +# % gui, FSCN1.over, demand, X Center Link 8, S03SIM-EA-FSCN-01:OVER:8:CenterXLink.DOL +# % gui, FSCN1.over, demand, X Size 8, S03SIM-EA-FSCN-01:OVER:8:SizeX +# % gui, FSCN1.over, readback, X Size 8, S03SIM-EA-FSCN-01:OVER:8:SizeX_RBV +# % gui, FSCN1.over, demand, X Size Link 8, S03SIM-EA-FSCN-01:OVER:8:SizeXLink.DOL +# % gui, FSCN1.over, demand, Y Position 8, S03SIM-EA-FSCN-01:OVER:8:PositionY +# % gui, FSCN1.over, readback, Y Position 8, S03SIM-EA-FSCN-01:OVER:8:PositionY_RBV +# % gui, FSCN1.over, demand, Y Position Link 8, S03SIM-EA-FSCN-01:OVER:8:PositionYLink.DOL +# % gui, FSCN1.over, demand, Y Center 8, S03SIM-EA-FSCN-01:OVER:8:CenterY +# % gui, FSCN1.over, readback, Y Center 8, S03SIM-EA-FSCN-01:OVER:8:CenterY_RBV +# % gui, FSCN1.over, demand, Y Center Link 8, S03SIM-EA-FSCN-01:OVER:8:CenterYLink.DOL +# % gui, FSCN1.over, demand, Y Size 8, S03SIM-EA-FSCN-01:OVER:8:SizeY +# % gui, FSCN1.over, readback, Y Size 8, S03SIM-EA-FSCN-01:OVER:8:SizeY_RBV +# % gui, FSCN1.over, demand, Y Size Link 8, S03SIM-EA-FSCN-01:OVER:8:SizeYLink.DOL +# Memory +# % gui, FSCN1.over, groupHeading, Memory +# % gui, FSCN1.over, readback, Max memory, S03SIM-EA-FSCN-01:OVER:PoolMaxMem +# % gui, FSCN1.over, readback, Max buffers, S03SIM-EA-FSCN-01:OVER:PoolMaxBuffers +# % gui, FSCN1.over, readback, Used memory, S03SIM-EA-FSCN-01:OVER:PoolUsedMem +# % gui, FSCN1.over, readback, Allocated buffers, S03SIM-EA-FSCN-01:OVER:PoolAllocBuffers +# % gui, FSCN1.over, readback, Free buffers, S03SIM-EA-FSCN-01:OVER:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:OVER:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:OVER:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:OVER:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:OVER:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:OVER:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:OVER:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:OVER:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:OVER:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:OVER:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:OVER:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:OVER:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:OVER:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:OVER:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:OVER:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:OVER:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:OVER:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:OVER:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:OVER:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:OVER:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:OVER:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:OVER:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.over,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.over,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:OVER:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:OVER:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:OVER:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.over,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:OVER:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:OVER:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:OVER:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:OVER:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:OVER:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:OVER:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:OVER:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:OVER:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.over,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:OVER:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.over,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:OVER:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.over,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:OVER:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.over,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:OVER:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:OVER:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:OVER:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:OVER:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:OVER:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:OVER:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.over,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.proc") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:OVER:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:OVER:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:OVER:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:OVER:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.over,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:OVER:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.over,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:OVER:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:OVER:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:OVER:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:OVER:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:OVER:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:OVER:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:OVER:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:OVER:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.over,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:OVER:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.over,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:OVER:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.over,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:OVER:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:OVER:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:OVER:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:OVER:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:OVER:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:OVER:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:OVER:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:OVER:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:OVER:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:OVER:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:OVER:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:OVER:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:OVER:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:OVER:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:OVER:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:OVER:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:OVER:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:OVER:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.over,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:OVER:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.over,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:OVER:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:OVER:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:OVER:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:OVER:AsynIO") +{ + field(PORT, "FSCN1.over") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +# These are the array dimensions in X, Y order. Used for setting HOPR on sliders +record(longin, "S03SIM-EA-FSCN-01:OVER:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)MAX_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)MAX_SIZE_Y") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlay.template +# Database for NDPluginOverlay asyn driver and standard asyn device support +# Mark Rivers +# March 25, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address + +# This associates the template with an edm screen +# % gui, FSCN2.over, edmtab, NDOverlay.edl, P=S03SIM-EA-FSCN-02,R=:OVER: + +# This associates a BOY screen with the template +# % gui, FSCN2.over, boydetail,ADApp_opi/dls/over_detail.opi, P=S03SIM-EA-FSCN-02, R=:OVER:, DESC=Overlay +# % gui, FSCN2.over, boyembed, ADApp_opi/dls/over_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:OVER:, DESC=Overlay +# % gui, FSCN2.over, boyembed, ADApp_opi/dls/over_embed.opi, P=S03SIM-EA-FSCN-02, R=:OVER:, DESC=Overlay + + +# % gui, FSCN2.over, groupHeading, Info +# % gui, FSCN2.over, readback, Port name, S03SIM-EA-FSCN-02:OVER:PortName_RBV +# % gui, FSCN2.over, readback, Plugin type, S03SIM-EA-FSCN-02:OVER:PluginType_RBV +# Input +# % gui, FSCN2.over, demandString, Input, S03SIM-EA-FSCN-02:OVER:NDArrayPort +# % gui, FSCN2.over, readback, Input, S03SIM-EA-FSCN-02:OVER:NDArrayPort_RBV + +# % gui, FSCN2.over, groupHeading, Callback +# % gui, FSCN2.over, enum, Callbacks, S03SIM-EA-FSCN-02:OVER:EnableCallbacks +# % gui, FSCN2.over, statusbits, Callbacks, S03SIM-EA-FSCN-02:OVER:EnableCallbacks_RBV +# % gui, FSCN2.over, demand, Min Callback Time, S03SIM-EA-FSCN-02:OVER:MinCallbackTime +# % gui, FSCN2.over, readback, Min Callback Time, S03SIM-EA-FSCN-02:OVER:MinCallbackTime_RBV +# % gui, FSCN2.over, enum, Block Callbacks, S03SIM-EA-FSCN-02:OVER:BlockingCallbacks +# % gui, FSCN2.over, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:OVER:BlockingCallbacks_RBV + +# % gui, FSCN2.over, groupHeading, Counters +# % gui, FSCN2.over, demand, Array Counter, S03SIM-EA-FSCN-02:OVER:ArrayCounter +# % gui, FSCN2.over, readback, Array Counter, S03SIM-EA-FSCN-02:OVER:ArrayCounter_RBV +# % gui, FSCN2.over, readback, Array Rate (fps), S03SIM-EA-FSCN-02:OVER:ArrayRate_RBV +# % gui, FSCN2.over, readback, Queue Use, S03SIM-EA-FSCN-02:OVER:QueueUse +# % gui, FSCN2.over, readback, Queue Size, S03SIM-EA-FSCN-02:OVER:QueueSize +# % gui, FSCN2.over, demand, Dropped Arrays, S03SIM-EA-FSCN-02:OVER:DroppedArrays +# % gui, FSCN2.over, readback, Dropped Arrays, S03SIM-EA-FSCN-02:OVER:DroppedArrays_RBV + +# % gui, FSCN2.over, groupHeading, Array Settings +# % gui, FSCN2.over, readback, Num Dimensions, S03SIM-EA-FSCN-02:OVER:NDimensions_RBV +# % gui, FSCN2.over, readback, Dim 0 Size, S03SIM-EA-FSCN-02:OVER:ArraySize0_RBV +# % gui, FSCN2.over, readback, Dim 1 Size, S03SIM-EA-FSCN-02:OVER:ArraySize1_RBV +# % gui, FSCN2.over, readback, Dim 2 Size, S03SIM-EA-FSCN-02:OVER:ArraySize2_RBV +# % gui, FSCN2.over, readback, Input Data Type, S03SIM-EA-FSCN-02:OVER:DataType_RBV +# % gui, FSCN2.over, readback, Colour Mode, S03SIM-EA-FSCN-02:OVER:ColorMode_RBV +# % gui, FSCN2.over, readback, Bayer Pattern, S03SIM-EA-FSCN-02:OVER:BayerPattern_RBV +# % gui, FSCN2.over, readback, Unique id, S03SIM-EA-FSCN-02:OVER:UniqueId_RBV +# % gui, FSCN2.over, readback, Timestamp, S03SIM-EA-FSCN-02:OVER:TimeStamp_RBV + +# Output +# % gui, FSCN2.over, groupHeading, Output +# % gui, FSCN2.over, demand, Name, S03SIM-EA-FSCN-02:OVER:Name +# % gui, FSCN2.over, enum, Out data type, S03SIM-EA-FSCN-02:OVER:DataTypeOut +# % gui, FSCN2.over, readback, Out data type, S03SIM-EA-FSCN-02:OVER:DataTypeOut_RBV +# % gui, FSCN2.over, demand, Attributes file, S03SIM-EA-FSCN-02:OVER:NDAttributesFile + +# Overlay 1 +# % gui, FSCN2.over, groupHeading, Overlay 1 Settings +# % gui, FSCN2.over, demand, Overlay 1, S03SIM-EA-FSCN-02:OVER:1:Name +# % gui, FSCN2.over, enum, Use 1, S03SIM-EA-FSCN-02:OVER:1:Use +# % gui, FSCN2.over, readback, Use 1, S03SIM-EA-FSCN-02:OVER:1:Use_RBV +# % gui, FSCN2.over, enum, Shape 1, S03SIM-EA-FSCN-02:OVER:1:Shape +# % gui, FSCN2.over, readback, Shape 1, S03SIM-EA-FSCN-02:OVER:1:Shape_RBV +# % gui, FSCN2.over, enum, Mode 1, S03SIM-EA-FSCN-02:OVER:1:DrawMode +# % gui, FSCN2.over, readback, Mode 1, S03SIM-EA-FSCN-02:OVER:1:DrawMode_RBV +# % gui, FSCN2.over, demand, Red 1, S03SIM-EA-FSCN-02:OVER:1:Red +# % gui, FSCN2.over, readback, Red 1, S03SIM-EA-FSCN-02:OVER:1:Red_RBV +# % gui, FSCN2.over, demand, Green 1, S03SIM-EA-FSCN-02:OVER:1:Green +# % gui, FSCN2.over, readback, Green 1, S03SIM-EA-FSCN-02:OVER:1:Green_RBV +# % gui, FSCN2.over, demand, Blue 1, S03SIM-EA-FSCN-02:OVER:1:Blue +# % gui, FSCN2.over, readback, Blue 1, S03SIM-EA-FSCN-02:OVER:1:Blue_RBV +# % gui, FSCN2.over, demand, X Position 1, S03SIM-EA-FSCN-02:OVER:1:PositionX +# % gui, FSCN2.over, readback, X Position 1, S03SIM-EA-FSCN-02:OVER:1:PositionX_RBV +# % gui, FSCN2.over, demand, X Position Link 1, S03SIM-EA-FSCN-02:OVER:1:PositionXLink.DOL +# % gui, FSCN2.over, demand, X Center 1, S03SIM-EA-FSCN-02:OVER:1:CenterX +# % gui, FSCN2.over, readback, X Center 1, S03SIM-EA-FSCN-02:OVER:1:CenterX_RBV +# % gui, FSCN2.over, demand, X Center Link 1, S03SIM-EA-FSCN-02:OVER:1:CenterXLink.DOL +# % gui, FSCN2.over, demand, X Size 1, S03SIM-EA-FSCN-02:OVER:1:SizeX +# % gui, FSCN2.over, readback, X Size 1, S03SIM-EA-FSCN-02:OVER:1:SizeX_RBV +# % gui, FSCN2.over, demand, X Size Link 1, S03SIM-EA-FSCN-02:OVER:1:SizeXLink.DOL +# % gui, FSCN2.over, demand, Y Position 1, S03SIM-EA-FSCN-02:OVER:1:PositionY +# % gui, FSCN2.over, readback, Y Position 1, S03SIM-EA-FSCN-02:OVER:1:PositionY_RBV +# % gui, FSCN2.over, demand, Y Position Link 1, S03SIM-EA-FSCN-02:OVER:1:PositionYLink.DOL +# % gui, FSCN2.over, demand, Y Center 1, S03SIM-EA-FSCN-02:OVER:1:CenterY +# % gui, FSCN2.over, readback, Y Center 1, S03SIM-EA-FSCN-02:OVER:1:CenterY_RBV +# % gui, FSCN2.over, demand, Y Center Link 1, S03SIM-EA-FSCN-02:OVER:1:CenterYLink.DOL +# % gui, FSCN2.over, demand, Y Size 1, S03SIM-EA-FSCN-02:OVER:1:SizeY +# % gui, FSCN2.over, readback, Y Size 1, S03SIM-EA-FSCN-02:OVER:1:SizeY_RBV +# % gui, FSCN2.over, demand, Y Size Link 1, S03SIM-EA-FSCN-02:OVER:1:SizeYLink.DOL +# Overlay 2 +# % gui, FSCN2.over, groupHeading, Overlay 2 Settings +# % gui, FSCN2.over, demand, Overlay 2, S03SIM-EA-FSCN-02:OVER:2:Name +# % gui, FSCN2.over, enum, Use 2, S03SIM-EA-FSCN-02:OVER:2:Use +# % gui, FSCN2.over, readback, Use 2, S03SIM-EA-FSCN-02:OVER:2:Use_RBV +# % gui, FSCN2.over, enum, Shape 2, S03SIM-EA-FSCN-02:OVER:2:Shape +# % gui, FSCN2.over, readback, Shape 2, S03SIM-EA-FSCN-02:OVER:2:Shape_RBV +# % gui, FSCN2.over, enum, Mode 2, S03SIM-EA-FSCN-02:OVER:2:DrawMode +# % gui, FSCN2.over, readback, Mode 2, S03SIM-EA-FSCN-02:OVER:2:DrawMode_RBV +# % gui, FSCN2.over, demand, Red 2, S03SIM-EA-FSCN-02:OVER:2:Red +# % gui, FSCN2.over, readback, Red 2, S03SIM-EA-FSCN-02:OVER:2:Red_RBV +# % gui, FSCN2.over, demand, Green 2, S03SIM-EA-FSCN-02:OVER:2:Green +# % gui, FSCN2.over, readback, Green 2, S03SIM-EA-FSCN-02:OVER:2:Green_RBV +# % gui, FSCN2.over, demand, Blue 2, S03SIM-EA-FSCN-02:OVER:2:Blue +# % gui, FSCN2.over, readback, Blue 2, S03SIM-EA-FSCN-02:OVER:2:Blue_RBV +# % gui, FSCN2.over, demand, X Position 2, S03SIM-EA-FSCN-02:OVER:2:PositionX +# % gui, FSCN2.over, readback, X Position 2, S03SIM-EA-FSCN-02:OVER:2:PositionX_RBV +# % gui, FSCN2.over, demand, X Position Link 2, S03SIM-EA-FSCN-02:OVER:2:PositionXLink.DOL +# % gui, FSCN2.over, demand, X Center 2, S03SIM-EA-FSCN-02:OVER:2:CenterX +# % gui, FSCN2.over, readback, X Center 2, S03SIM-EA-FSCN-02:OVER:2:CenterX_RBV +# % gui, FSCN2.over, demand, X Center Link 2, S03SIM-EA-FSCN-02:OVER:2:CenterXLink.DOL +# % gui, FSCN2.over, demand, X Size 2, S03SIM-EA-FSCN-02:OVER:2:SizeX +# % gui, FSCN2.over, readback, X Size 2, S03SIM-EA-FSCN-02:OVER:2:SizeX_RBV +# % gui, FSCN2.over, demand, X Size Link 2, S03SIM-EA-FSCN-02:OVER:2:SizeXLink.DOL +# % gui, FSCN2.over, demand, Y Position 2, S03SIM-EA-FSCN-02:OVER:2:PositionY +# % gui, FSCN2.over, readback, Y Position 2, S03SIM-EA-FSCN-02:OVER:2:PositionY_RBV +# % gui, FSCN2.over, demand, Y Position Link 2, S03SIM-EA-FSCN-02:OVER:2:PositionYLink.DOL +# % gui, FSCN2.over, demand, Y Center 2, S03SIM-EA-FSCN-02:OVER:2:CenterY +# % gui, FSCN2.over, readback, Y Center 2, S03SIM-EA-FSCN-02:OVER:2:CenterY_RBV +# % gui, FSCN2.over, demand, Y Center Link 2, S03SIM-EA-FSCN-02:OVER:2:CenterYLink.DOL +# % gui, FSCN2.over, demand, Y Size 2, S03SIM-EA-FSCN-02:OVER:2:SizeY +# % gui, FSCN2.over, readback, Y Size 2, S03SIM-EA-FSCN-02:OVER:2:SizeY_RBV +# % gui, FSCN2.over, demand, Y Size Link 2, S03SIM-EA-FSCN-02:OVER:2:SizeYLink.DOL +# Overlay 3 +# % gui, FSCN2.over, groupHeading, Overlay 3 Settings +# % gui, FSCN2.over, demand, Overlay 3, S03SIM-EA-FSCN-02:OVER:3:Name +# % gui, FSCN2.over, enum, Use 3, S03SIM-EA-FSCN-02:OVER:3:Use +# % gui, FSCN2.over, readback, Use 3, S03SIM-EA-FSCN-02:OVER:3:Use_RBV +# % gui, FSCN2.over, enum, Shape 3, S03SIM-EA-FSCN-02:OVER:3:Shape +# % gui, FSCN2.over, readback, Shape 3, S03SIM-EA-FSCN-02:OVER:3:Shape_RBV +# % gui, FSCN2.over, enum, Mode 3, S03SIM-EA-FSCN-02:OVER:3:DrawMode +# % gui, FSCN2.over, readback, Mode 3, S03SIM-EA-FSCN-02:OVER:3:DrawMode_RBV +# % gui, FSCN2.over, demand, Red 3, S03SIM-EA-FSCN-02:OVER:3:Red +# % gui, FSCN2.over, readback, Red 3, S03SIM-EA-FSCN-02:OVER:3:Red_RBV +# % gui, FSCN2.over, demand, Green 3, S03SIM-EA-FSCN-02:OVER:3:Green +# % gui, FSCN2.over, readback, Green 3, S03SIM-EA-FSCN-02:OVER:3:Green_RBV +# % gui, FSCN2.over, demand, Blue 3, S03SIM-EA-FSCN-02:OVER:3:Blue +# % gui, FSCN2.over, readback, Blue 3, S03SIM-EA-FSCN-02:OVER:3:Blue_RBV +# % gui, FSCN2.over, demand, X Position 3, S03SIM-EA-FSCN-02:OVER:3:PositionX +# % gui, FSCN2.over, readback, X Position 3, S03SIM-EA-FSCN-02:OVER:3:PositionX_RBV +# % gui, FSCN2.over, demand, X Position Link 3, S03SIM-EA-FSCN-02:OVER:3:PositionXLink.DOL +# % gui, FSCN2.over, demand, X Center 3, S03SIM-EA-FSCN-02:OVER:3:CenterX +# % gui, FSCN2.over, readback, X Center 3, S03SIM-EA-FSCN-02:OVER:3:CenterX_RBV +# % gui, FSCN2.over, demand, X Center Link 3, S03SIM-EA-FSCN-02:OVER:3:CenterXLink.DOL +# % gui, FSCN2.over, demand, X Size 3, S03SIM-EA-FSCN-02:OVER:3:SizeX +# % gui, FSCN2.over, readback, X Size 3, S03SIM-EA-FSCN-02:OVER:3:SizeX_RBV +# % gui, FSCN2.over, demand, X Size Link 3, S03SIM-EA-FSCN-02:OVER:3:SizeXLink.DOL +# % gui, FSCN2.over, demand, Y Position 3, S03SIM-EA-FSCN-02:OVER:3:PositionY +# % gui, FSCN2.over, readback, Y Position 3, S03SIM-EA-FSCN-02:OVER:3:PositionY_RBV +# % gui, FSCN2.over, demand, Y Position Link 3, S03SIM-EA-FSCN-02:OVER:3:PositionYLink.DOL +# % gui, FSCN2.over, demand, Y Center 3, S03SIM-EA-FSCN-02:OVER:3:CenterY +# % gui, FSCN2.over, readback, Y Center 3, S03SIM-EA-FSCN-02:OVER:3:CenterY_RBV +# % gui, FSCN2.over, demand, Y Center Link 3, S03SIM-EA-FSCN-02:OVER:3:CenterYLink.DOL +# % gui, FSCN2.over, demand, Y Size 3, S03SIM-EA-FSCN-02:OVER:3:SizeY +# % gui, FSCN2.over, readback, Y Size 3, S03SIM-EA-FSCN-02:OVER:3:SizeY_RBV +# % gui, FSCN2.over, demand, Y Size Link 3, S03SIM-EA-FSCN-02:OVER:3:SizeYLink.DOL +# Overlay 4 +# % gui, FSCN2.over, groupHeading, Overlay 4 Settings +# % gui, FSCN2.over, demand, Overlay 4, S03SIM-EA-FSCN-02:OVER:4:Name +# % gui, FSCN2.over, enum, Use 4, S03SIM-EA-FSCN-02:OVER:4:Use +# % gui, FSCN2.over, readback, Use 4, S03SIM-EA-FSCN-02:OVER:4:Use_RBV +# % gui, FSCN2.over, enum, Shape 4, S03SIM-EA-FSCN-02:OVER:4:Shape +# % gui, FSCN2.over, readback, Shape 4, S03SIM-EA-FSCN-02:OVER:4:Shape_RBV +# % gui, FSCN2.over, enum, Mode 4, S03SIM-EA-FSCN-02:OVER:4:DrawMode +# % gui, FSCN2.over, readback, Mode 4, S03SIM-EA-FSCN-02:OVER:4:DrawMode_RBV +# % gui, FSCN2.over, demand, Red 4, S03SIM-EA-FSCN-02:OVER:4:Red +# % gui, FSCN2.over, readback, Red 4, S03SIM-EA-FSCN-02:OVER:4:Red_RBV +# % gui, FSCN2.over, demand, Green 4, S03SIM-EA-FSCN-02:OVER:4:Green +# % gui, FSCN2.over, readback, Green 4, S03SIM-EA-FSCN-02:OVER:4:Green_RBV +# % gui, FSCN2.over, demand, Blue 4, S03SIM-EA-FSCN-02:OVER:4:Blue +# % gui, FSCN2.over, readback, Blue 4, S03SIM-EA-FSCN-02:OVER:4:Blue_RBV +# % gui, FSCN2.over, demand, X Position 4, S03SIM-EA-FSCN-02:OVER:4:PositionX +# % gui, FSCN2.over, readback, X Position 4, S03SIM-EA-FSCN-02:OVER:4:PositionX_RBV +# % gui, FSCN2.over, demand, X Position Link 4, S03SIM-EA-FSCN-02:OVER:4:PositionXLink.DOL +# % gui, FSCN2.over, demand, X Center 4, S03SIM-EA-FSCN-02:OVER:4:CenterX +# % gui, FSCN2.over, readback, X Center 4, S03SIM-EA-FSCN-02:OVER:4:CenterX_RBV +# % gui, FSCN2.over, demand, X Center Link 4, S03SIM-EA-FSCN-02:OVER:4:CenterXLink.DOL +# % gui, FSCN2.over, demand, X Size 4, S03SIM-EA-FSCN-02:OVER:4:SizeX +# % gui, FSCN2.over, readback, X Size 4, S03SIM-EA-FSCN-02:OVER:4:SizeX_RBV +# % gui, FSCN2.over, demand, X Size Link 4, S03SIM-EA-FSCN-02:OVER:4:SizeXLink.DOL +# % gui, FSCN2.over, demand, Y Position 4, S03SIM-EA-FSCN-02:OVER:4:PositionY +# % gui, FSCN2.over, readback, Y Position 4, S03SIM-EA-FSCN-02:OVER:4:PositionY_RBV +# % gui, FSCN2.over, demand, Y Position Link 4, S03SIM-EA-FSCN-02:OVER:4:PositionYLink.DOL +# % gui, FSCN2.over, demand, Y Center 4, S03SIM-EA-FSCN-02:OVER:4:CenterY +# % gui, FSCN2.over, readback, Y Center 4, S03SIM-EA-FSCN-02:OVER:4:CenterY_RBV +# % gui, FSCN2.over, demand, Y Center Link 4, S03SIM-EA-FSCN-02:OVER:4:CenterYLink.DOL +# % gui, FSCN2.over, demand, Y Size 4, S03SIM-EA-FSCN-02:OVER:4:SizeY +# % gui, FSCN2.over, readback, Y Size 4, S03SIM-EA-FSCN-02:OVER:4:SizeY_RBV +# % gui, FSCN2.over, demand, Y Size Link 4, S03SIM-EA-FSCN-02:OVER:4:SizeYLink.DOL +# Overlay 5 +# % gui, FSCN2.over, groupHeading, Overlay 5 Settings +# % gui, FSCN2.over, demand, Overlay 5, S03SIM-EA-FSCN-02:OVER:5:Name +# % gui, FSCN2.over, enum, Use 5, S03SIM-EA-FSCN-02:OVER:5:Use +# % gui, FSCN2.over, readback, Use 5, S03SIM-EA-FSCN-02:OVER:5:Use_RBV +# % gui, FSCN2.over, enum, Shape 5, S03SIM-EA-FSCN-02:OVER:5:Shape +# % gui, FSCN2.over, readback, Shape 5, S03SIM-EA-FSCN-02:OVER:5:Shape_RBV +# % gui, FSCN2.over, enum, Mode 5, S03SIM-EA-FSCN-02:OVER:5:DrawMode +# % gui, FSCN2.over, readback, Mode 5, S03SIM-EA-FSCN-02:OVER:5:DrawMode_RBV +# % gui, FSCN2.over, demand, Red 5, S03SIM-EA-FSCN-02:OVER:5:Red +# % gui, FSCN2.over, readback, Red 5, S03SIM-EA-FSCN-02:OVER:5:Red_RBV +# % gui, FSCN2.over, demand, Green 5, S03SIM-EA-FSCN-02:OVER:5:Green +# % gui, FSCN2.over, readback, Green 5, S03SIM-EA-FSCN-02:OVER:5:Green_RBV +# % gui, FSCN2.over, demand, Blue 5, S03SIM-EA-FSCN-02:OVER:5:Blue +# % gui, FSCN2.over, readback, Blue 5, S03SIM-EA-FSCN-02:OVER:5:Blue_RBV +# % gui, FSCN2.over, demand, X Position 5, S03SIM-EA-FSCN-02:OVER:5:PositionX +# % gui, FSCN2.over, readback, X Position 5, S03SIM-EA-FSCN-02:OVER:5:PositionX_RBV +# % gui, FSCN2.over, demand, X Position Link 5, S03SIM-EA-FSCN-02:OVER:5:PositionXLink.DOL +# % gui, FSCN2.over, demand, X Center 5, S03SIM-EA-FSCN-02:OVER:5:CenterX +# % gui, FSCN2.over, readback, X Center 5, S03SIM-EA-FSCN-02:OVER:5:CenterX_RBV +# % gui, FSCN2.over, demand, X Center Link 5, S03SIM-EA-FSCN-02:OVER:5:CenterXLink.DOL +# % gui, FSCN2.over, demand, X Size 5, S03SIM-EA-FSCN-02:OVER:5:SizeX +# % gui, FSCN2.over, readback, X Size 5, S03SIM-EA-FSCN-02:OVER:5:SizeX_RBV +# % gui, FSCN2.over, demand, X Size Link 5, S03SIM-EA-FSCN-02:OVER:5:SizeXLink.DOL +# % gui, FSCN2.over, demand, Y Position 5, S03SIM-EA-FSCN-02:OVER:5:PositionY +# % gui, FSCN2.over, readback, Y Position 5, S03SIM-EA-FSCN-02:OVER:5:PositionY_RBV +# % gui, FSCN2.over, demand, Y Position Link 5, S03SIM-EA-FSCN-02:OVER:5:PositionYLink.DOL +# % gui, FSCN2.over, demand, Y Center 5, S03SIM-EA-FSCN-02:OVER:5:CenterY +# % gui, FSCN2.over, readback, Y Center 5, S03SIM-EA-FSCN-02:OVER:5:CenterY_RBV +# % gui, FSCN2.over, demand, Y Center Link 5, S03SIM-EA-FSCN-02:OVER:5:CenterYLink.DOL +# % gui, FSCN2.over, demand, Y Size 5, S03SIM-EA-FSCN-02:OVER:5:SizeY +# % gui, FSCN2.over, readback, Y Size 5, S03SIM-EA-FSCN-02:OVER:5:SizeY_RBV +# % gui, FSCN2.over, demand, Y Size Link 5, S03SIM-EA-FSCN-02:OVER:5:SizeYLink.DOL +# Overlay 6 +# % gui, FSCN2.over, groupHeading, Overlay 6 Settings +# % gui, FSCN2.over, demand, Overlay 6, S03SIM-EA-FSCN-02:OVER:6:Name +# % gui, FSCN2.over, enum, Use 6, S03SIM-EA-FSCN-02:OVER:6:Use +# % gui, FSCN2.over, readback, Use 6, S03SIM-EA-FSCN-02:OVER:6:Use_RBV +# % gui, FSCN2.over, enum, Shape 6, S03SIM-EA-FSCN-02:OVER:6:Shape +# % gui, FSCN2.over, readback, Shape 6, S03SIM-EA-FSCN-02:OVER:6:Shape_RBV +# % gui, FSCN2.over, enum, Mode 6, S03SIM-EA-FSCN-02:OVER:6:DrawMode +# % gui, FSCN2.over, readback, Mode 6, S03SIM-EA-FSCN-02:OVER:6:DrawMode_RBV +# % gui, FSCN2.over, demand, Red 6, S03SIM-EA-FSCN-02:OVER:6:Red +# % gui, FSCN2.over, readback, Red 6, S03SIM-EA-FSCN-02:OVER:6:Red_RBV +# % gui, FSCN2.over, demand, Green 6, S03SIM-EA-FSCN-02:OVER:6:Green +# % gui, FSCN2.over, readback, Green 6, S03SIM-EA-FSCN-02:OVER:6:Green_RBV +# % gui, FSCN2.over, demand, Blue 6, S03SIM-EA-FSCN-02:OVER:6:Blue +# % gui, FSCN2.over, readback, Blue 6, S03SIM-EA-FSCN-02:OVER:6:Blue_RBV +# % gui, FSCN2.over, demand, X Position 6, S03SIM-EA-FSCN-02:OVER:6:PositionX +# % gui, FSCN2.over, readback, X Position 6, S03SIM-EA-FSCN-02:OVER:6:PositionX_RBV +# % gui, FSCN2.over, demand, X Position Link 6, S03SIM-EA-FSCN-02:OVER:6:PositionXLink.DOL +# % gui, FSCN2.over, demand, X Center 6, S03SIM-EA-FSCN-02:OVER:6:CenterX +# % gui, FSCN2.over, readback, X Center 6, S03SIM-EA-FSCN-02:OVER:6:CenterX_RBV +# % gui, FSCN2.over, demand, X Center Link 6, S03SIM-EA-FSCN-02:OVER:6:CenterXLink.DOL +# % gui, FSCN2.over, demand, X Size 6, S03SIM-EA-FSCN-02:OVER:6:SizeX +# % gui, FSCN2.over, readback, X Size 6, S03SIM-EA-FSCN-02:OVER:6:SizeX_RBV +# % gui, FSCN2.over, demand, X Size Link 6, S03SIM-EA-FSCN-02:OVER:6:SizeXLink.DOL +# % gui, FSCN2.over, demand, Y Position 6, S03SIM-EA-FSCN-02:OVER:6:PositionY +# % gui, FSCN2.over, readback, Y Position 6, S03SIM-EA-FSCN-02:OVER:6:PositionY_RBV +# % gui, FSCN2.over, demand, Y Position Link 6, S03SIM-EA-FSCN-02:OVER:6:PositionYLink.DOL +# % gui, FSCN2.over, demand, Y Center 6, S03SIM-EA-FSCN-02:OVER:6:CenterY +# % gui, FSCN2.over, readback, Y Center 6, S03SIM-EA-FSCN-02:OVER:6:CenterY_RBV +# % gui, FSCN2.over, demand, Y Center Link 6, S03SIM-EA-FSCN-02:OVER:6:CenterYLink.DOL +# % gui, FSCN2.over, demand, Y Size 6, S03SIM-EA-FSCN-02:OVER:6:SizeY +# % gui, FSCN2.over, readback, Y Size 6, S03SIM-EA-FSCN-02:OVER:6:SizeY_RBV +# % gui, FSCN2.over, demand, Y Size Link 6, S03SIM-EA-FSCN-02:OVER:6:SizeYLink.DOL +# Overlay 7 +# % gui, FSCN2.over, groupHeading, Overlay 7 Settings +# % gui, FSCN2.over, demand, Overlay 7, S03SIM-EA-FSCN-02:OVER:7:Name +# % gui, FSCN2.over, enum, Use 7, S03SIM-EA-FSCN-02:OVER:7:Use +# % gui, FSCN2.over, readback, Use 7, S03SIM-EA-FSCN-02:OVER:7:Use_RBV +# % gui, FSCN2.over, enum, Shape 7, S03SIM-EA-FSCN-02:OVER:7:Shape +# % gui, FSCN2.over, readback, Shape 7, S03SIM-EA-FSCN-02:OVER:7:Shape_RBV +# % gui, FSCN2.over, enum, Mode 7, S03SIM-EA-FSCN-02:OVER:7:DrawMode +# % gui, FSCN2.over, readback, Mode 7, S03SIM-EA-FSCN-02:OVER:7:DrawMode_RBV +# % gui, FSCN2.over, demand, Red 7, S03SIM-EA-FSCN-02:OVER:7:Red +# % gui, FSCN2.over, readback, Red 7, S03SIM-EA-FSCN-02:OVER:7:Red_RBV +# % gui, FSCN2.over, demand, Green 7, S03SIM-EA-FSCN-02:OVER:7:Green +# % gui, FSCN2.over, readback, Green 7, S03SIM-EA-FSCN-02:OVER:7:Green_RBV +# % gui, FSCN2.over, demand, Blue 7, S03SIM-EA-FSCN-02:OVER:7:Blue +# % gui, FSCN2.over, readback, Blue 7, S03SIM-EA-FSCN-02:OVER:7:Blue_RBV +# % gui, FSCN2.over, demand, X Position 7, S03SIM-EA-FSCN-02:OVER:7:PositionX +# % gui, FSCN2.over, readback, X Position 7, S03SIM-EA-FSCN-02:OVER:7:PositionX_RBV +# % gui, FSCN2.over, demand, X Position Link 7, S03SIM-EA-FSCN-02:OVER:7:PositionXLink.DOL +# % gui, FSCN2.over, demand, X Center 7, S03SIM-EA-FSCN-02:OVER:7:CenterX +# % gui, FSCN2.over, readback, X Center 7, S03SIM-EA-FSCN-02:OVER:7:CenterX_RBV +# % gui, FSCN2.over, demand, X Center Link 7, S03SIM-EA-FSCN-02:OVER:7:CenterXLink.DOL +# % gui, FSCN2.over, demand, X Size 7, S03SIM-EA-FSCN-02:OVER:7:SizeX +# % gui, FSCN2.over, readback, X Size 7, S03SIM-EA-FSCN-02:OVER:7:SizeX_RBV +# % gui, FSCN2.over, demand, X Size Link 7, S03SIM-EA-FSCN-02:OVER:7:SizeXLink.DOL +# % gui, FSCN2.over, demand, Y Position 7, S03SIM-EA-FSCN-02:OVER:7:PositionY +# % gui, FSCN2.over, readback, Y Position 7, S03SIM-EA-FSCN-02:OVER:7:PositionY_RBV +# % gui, FSCN2.over, demand, Y Position Link 7, S03SIM-EA-FSCN-02:OVER:7:PositionYLink.DOL +# % gui, FSCN2.over, demand, Y Center 7, S03SIM-EA-FSCN-02:OVER:7:CenterY +# % gui, FSCN2.over, readback, Y Center 7, S03SIM-EA-FSCN-02:OVER:7:CenterY_RBV +# % gui, FSCN2.over, demand, Y Center Link 7, S03SIM-EA-FSCN-02:OVER:7:CenterYLink.DOL +# % gui, FSCN2.over, demand, Y Size 7, S03SIM-EA-FSCN-02:OVER:7:SizeY +# % gui, FSCN2.over, readback, Y Size 7, S03SIM-EA-FSCN-02:OVER:7:SizeY_RBV +# % gui, FSCN2.over, demand, Y Size Link 7, S03SIM-EA-FSCN-02:OVER:7:SizeYLink.DOL +# Overlay 8 +# % gui, FSCN2.over, groupHeading, Overlay 8 Settings +# % gui, FSCN2.over, demand, Overlay 8, S03SIM-EA-FSCN-02:OVER:8:Name +# % gui, FSCN2.over, enum, Use 8, S03SIM-EA-FSCN-02:OVER:8:Use +# % gui, FSCN2.over, readback, Use 8, S03SIM-EA-FSCN-02:OVER:8:Use_RBV +# % gui, FSCN2.over, enum, Shape 8, S03SIM-EA-FSCN-02:OVER:8:Shape +# % gui, FSCN2.over, readback, Shape 8, S03SIM-EA-FSCN-02:OVER:8:Shape_RBV +# % gui, FSCN2.over, enum, Mode 8, S03SIM-EA-FSCN-02:OVER:8:DrawMode +# % gui, FSCN2.over, readback, Mode 8, S03SIM-EA-FSCN-02:OVER:8:DrawMode_RBV +# % gui, FSCN2.over, demand, Red 8, S03SIM-EA-FSCN-02:OVER:8:Red +# % gui, FSCN2.over, readback, Red 8, S03SIM-EA-FSCN-02:OVER:8:Red_RBV +# % gui, FSCN2.over, demand, Green 8, S03SIM-EA-FSCN-02:OVER:8:Green +# % gui, FSCN2.over, readback, Green 8, S03SIM-EA-FSCN-02:OVER:8:Green_RBV +# % gui, FSCN2.over, demand, Blue 8, S03SIM-EA-FSCN-02:OVER:8:Blue +# % gui, FSCN2.over, readback, Blue 8, S03SIM-EA-FSCN-02:OVER:8:Blue_RBV +# % gui, FSCN2.over, demand, X Position 8, S03SIM-EA-FSCN-02:OVER:8:PositionX +# % gui, FSCN2.over, readback, X Position 8, S03SIM-EA-FSCN-02:OVER:8:PositionX_RBV +# % gui, FSCN2.over, demand, X Position Link 8, S03SIM-EA-FSCN-02:OVER:8:PositionXLink.DOL +# % gui, FSCN2.over, demand, X Center 8, S03SIM-EA-FSCN-02:OVER:8:CenterX +# % gui, FSCN2.over, readback, X Center 8, S03SIM-EA-FSCN-02:OVER:8:CenterX_RBV +# % gui, FSCN2.over, demand, X Center Link 8, S03SIM-EA-FSCN-02:OVER:8:CenterXLink.DOL +# % gui, FSCN2.over, demand, X Size 8, S03SIM-EA-FSCN-02:OVER:8:SizeX +# % gui, FSCN2.over, readback, X Size 8, S03SIM-EA-FSCN-02:OVER:8:SizeX_RBV +# % gui, FSCN2.over, demand, X Size Link 8, S03SIM-EA-FSCN-02:OVER:8:SizeXLink.DOL +# % gui, FSCN2.over, demand, Y Position 8, S03SIM-EA-FSCN-02:OVER:8:PositionY +# % gui, FSCN2.over, readback, Y Position 8, S03SIM-EA-FSCN-02:OVER:8:PositionY_RBV +# % gui, FSCN2.over, demand, Y Position Link 8, S03SIM-EA-FSCN-02:OVER:8:PositionYLink.DOL +# % gui, FSCN2.over, demand, Y Center 8, S03SIM-EA-FSCN-02:OVER:8:CenterY +# % gui, FSCN2.over, readback, Y Center 8, S03SIM-EA-FSCN-02:OVER:8:CenterY_RBV +# % gui, FSCN2.over, demand, Y Center Link 8, S03SIM-EA-FSCN-02:OVER:8:CenterYLink.DOL +# % gui, FSCN2.over, demand, Y Size 8, S03SIM-EA-FSCN-02:OVER:8:SizeY +# % gui, FSCN2.over, readback, Y Size 8, S03SIM-EA-FSCN-02:OVER:8:SizeY_RBV +# % gui, FSCN2.over, demand, Y Size Link 8, S03SIM-EA-FSCN-02:OVER:8:SizeYLink.DOL +# Memory +# % gui, FSCN2.over, groupHeading, Memory +# % gui, FSCN2.over, readback, Max memory, S03SIM-EA-FSCN-02:OVER:PoolMaxMem +# % gui, FSCN2.over, readback, Max buffers, S03SIM-EA-FSCN-02:OVER:PoolMaxBuffers +# % gui, FSCN2.over, readback, Used memory, S03SIM-EA-FSCN-02:OVER:PoolUsedMem +# % gui, FSCN2.over, readback, Allocated buffers, S03SIM-EA-FSCN-02:OVER:PoolAllocBuffers +# % gui, FSCN2.over, readback, Free buffers, S03SIM-EA-FSCN-02:OVER:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:OVER:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:OVER:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:OVER:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:OVER:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:OVER:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:OVER:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:OVER:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:OVER:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:OVER:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:OVER:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:OVER:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:OVER:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:OVER:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:OVER:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:OVER:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:OVER:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:OVER:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:OVER:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:OVER:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:OVER:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:OVER:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.over,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.over,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:OVER:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:OVER:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:OVER:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.over,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:OVER:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:OVER:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:OVER:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:OVER:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:OVER:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:OVER:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:OVER:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:OVER:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.over,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:OVER:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.over,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:OVER:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.over,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:OVER:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.over,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:OVER:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:OVER:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:OVER:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:OVER:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:OVER:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:OVER:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.over,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.proc") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:OVER:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:OVER:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:OVER:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:OVER:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.over,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:OVER:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.over,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:OVER:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:OVER:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:OVER:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:OVER:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:OVER:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:OVER:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:OVER:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:OVER:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.over,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:OVER:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.over,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:OVER:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.over,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:OVER:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:OVER:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:OVER:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:OVER:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:OVER:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:OVER:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:OVER:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:OVER:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:OVER:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:OVER:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:OVER:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:OVER:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:OVER:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:OVER:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:OVER:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:OVER:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:OVER:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:OVER:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.over,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:OVER:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.over,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:OVER:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:OVER:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:OVER:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:OVER:AsynIO") +{ + field(PORT, "FSCN2.over") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +# These are the array dimensions in X, Y order. Used for setting HOPR on sliders +record(longin, "S03SIM-EA-FSCN-02:OVER:MaxSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)MAX_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:MaxSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)MAX_SIZE_Y") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-DI-OAV-01:OVER:1:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.over,0,1)NAME") + field(VAL, "Overlay 1") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:1:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,0,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-DI-OAV-01:OVER:1:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:OVER:1:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-DI-OAV-01:OVER:1:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:1:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:1:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:1:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:1:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:1:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:1:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:1:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:1:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:1:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:1:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:1:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:1:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:1:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:1:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:1:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:1:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:1:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:1:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:1:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:1:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:1:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:1:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:1:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:1:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:1:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:1:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:1:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:1:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:1:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:1:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:1:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:1:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:1:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:1:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:1:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:1:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:1:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:1:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:1:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:1:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:1:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-DI-OAV-01:OVER:1:MaxSizeX") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:OVER:1:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:OVER:1:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:OVER:1:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:OVER:1:PositionX.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:OVER:1:CenterX.HOPR NPP") + field(OUTC, "S03SIM-DI-OAV-01:OVER:1:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:1:MaxSizeY") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:OVER:1:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:OVER:1:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:OVER:1:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:OVER:1:PositionY.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:OVER:1:CenterY.HOPR NPP") + field(OUTC, "S03SIM-DI-OAV-01:OVER:1:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:OVER:1:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.over,0,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-DI-OAV-01:OVER:1:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,0,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:OVER:1:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.over,0,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:1:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,0,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:1:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:1:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-DI-OAV-01:OVER:2:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.over,1,1)NAME") + field(VAL, "Overlay 2") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:2:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,1,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-DI-OAV-01:OVER:2:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:OVER:2:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-DI-OAV-01:OVER:2:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:2:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:2:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:2:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:2:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:2:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:2:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:2:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:2:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:2:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:2:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:2:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:2:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-DI-OAV-01:OVER:2:MaxSizeX") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:OVER:2:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:OVER:2:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:OVER:2:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:OVER:2:PositionX.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:OVER:2:CenterX.HOPR NPP") + field(OUTC, "S03SIM-DI-OAV-01:OVER:2:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:MaxSizeY") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:OVER:2:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:OVER:2:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:OVER:2:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:OVER:2:PositionY.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:OVER:2:CenterY.HOPR NPP") + field(OUTC, "S03SIM-DI-OAV-01:OVER:2:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:OVER:2:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-DI-OAV-01:OVER:2:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:OVER:2:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:2:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:2:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:2:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-DI-OAV-01:OVER:3:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.over,2,1)NAME") + field(VAL, "Overlay 3") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:3:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,2,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-DI-OAV-01:OVER:3:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,2,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:OVER:3:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,2,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-DI-OAV-01:OVER:3:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:3:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:3:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,2,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:3:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,2,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:3:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:3:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:3:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,2,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:3:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,2,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:3:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:3:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:3:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,2,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:3:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,2,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:3:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:3:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:3:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,2,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:3:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,2,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:3:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:3:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:3:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,2,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:3:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,2,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:3:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:3:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:3:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,2,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:3:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,2,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:3:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:3:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:3:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,2,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:3:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,2,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:3:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:3:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:3:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,2,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:3:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,2,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:3:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,2,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:3:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,2,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:3:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,2,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:3:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,2,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:3:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,2,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:3:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,2,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:3:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,2,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:3:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,2,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:3:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,2,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:3:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,2,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-DI-OAV-01:OVER:3:MaxSizeX") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:OVER:3:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:OVER:3:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:OVER:3:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:OVER:3:PositionX.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:OVER:3:CenterX.HOPR NPP") + field(OUTC, "S03SIM-DI-OAV-01:OVER:3:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:3:MaxSizeY") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:OVER:3:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:OVER:3:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:OVER:3:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:OVER:3:PositionY.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:OVER:3:CenterY.HOPR NPP") + field(OUTC, "S03SIM-DI-OAV-01:OVER:3:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:OVER:3:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.over,2,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-DI-OAV-01:OVER:3:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,2,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:OVER:3:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.over,2,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:3:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,2,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:3:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,2,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:3:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,2,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-DI-OAV-01:OVER:4:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.over,3,1)NAME") + field(VAL, "Overlay 4") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:4:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,3,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-DI-OAV-01:OVER:4:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,3,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:OVER:4:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,3,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-DI-OAV-01:OVER:4:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:4:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:4:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,3,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:4:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,3,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:4:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:4:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:4:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,3,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:4:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,3,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:4:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:4:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:4:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,3,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:4:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,3,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:4:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:4:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:4:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,3,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:4:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,3,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:4:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:4:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:4:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,3,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:4:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,3,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:4:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:4:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:4:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,3,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:4:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,3,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:4:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:4:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:4:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,3,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:4:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,3,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:4:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:4:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:4:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,3,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:4:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,3,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:4:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,3,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:4:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,3,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:4:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,3,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:4:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,3,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:4:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,3,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:4:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,3,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:4:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,3,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:4:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,3,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:4:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,3,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:4:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,3,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-DI-OAV-01:OVER:4:MaxSizeX") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:OVER:4:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:OVER:4:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:OVER:4:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:OVER:4:PositionX.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:OVER:4:CenterX.HOPR NPP") + field(OUTC, "S03SIM-DI-OAV-01:OVER:4:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:4:MaxSizeY") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:OVER:4:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:OVER:4:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:OVER:4:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:OVER:4:PositionY.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:OVER:4:CenterY.HOPR NPP") + field(OUTC, "S03SIM-DI-OAV-01:OVER:4:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:OVER:4:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.over,3,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-DI-OAV-01:OVER:4:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,3,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:OVER:4:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.over,3,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:4:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,3,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:4:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,3,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:4:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,3,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-DI-OAV-01:OVER:5:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.over,4,1)NAME") + field(VAL, "Overlay 5") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:5:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,4,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-DI-OAV-01:OVER:5:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,4,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:OVER:5:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,4,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-DI-OAV-01:OVER:5:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:5:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:5:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,4,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:5:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,4,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:5:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:5:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:5:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,4,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:5:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,4,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:5:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:5:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:5:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,4,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:5:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,4,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:5:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:5:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:5:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,4,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:5:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,4,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:5:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:5:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:5:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,4,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:5:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,4,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:5:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:5:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:5:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,4,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:5:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,4,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:5:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:5:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:5:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,4,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:5:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,4,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:5:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:5:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:5:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,4,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:5:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,4,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:5:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,4,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:5:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,4,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:5:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,4,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:5:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,4,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:5:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,4,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:5:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,4,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:5:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,4,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:5:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,4,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:5:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,4,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:5:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,4,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-DI-OAV-01:OVER:5:MaxSizeX") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:OVER:5:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:OVER:5:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:OVER:5:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:OVER:5:PositionX.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:OVER:5:CenterX.HOPR NPP") + field(OUTC, "S03SIM-DI-OAV-01:OVER:5:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:5:MaxSizeY") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:OVER:5:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:OVER:5:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:OVER:5:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:OVER:5:PositionY.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:OVER:5:CenterY.HOPR NPP") + field(OUTC, "S03SIM-DI-OAV-01:OVER:5:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:OVER:5:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.over,4,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-DI-OAV-01:OVER:5:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,4,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:OVER:5:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.over,4,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:5:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,4,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:5:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,4,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:5:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,4,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-DI-OAV-01:OVER:6:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.over,5,1)NAME") + field(VAL, "Overlay 6") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:6:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,5,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-DI-OAV-01:OVER:6:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,5,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:OVER:6:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,5,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-DI-OAV-01:OVER:6:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:6:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:6:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,5,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:6:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,5,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:6:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:6:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:6:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,5,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:6:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,5,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:6:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:6:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:6:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,5,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:6:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,5,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:6:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:6:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:6:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,5,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:6:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,5,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:6:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:6:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:6:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,5,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:6:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,5,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:6:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:6:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:6:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,5,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:6:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,5,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:6:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:6:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:6:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,5,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:6:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,5,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:6:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:6:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:6:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,5,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:6:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,5,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:6:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,5,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:6:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,5,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:6:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,5,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:6:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,5,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:6:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,5,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:6:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,5,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:6:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,5,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:6:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,5,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:6:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,5,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:6:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,5,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-DI-OAV-01:OVER:6:MaxSizeX") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:OVER:6:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:OVER:6:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:OVER:6:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:OVER:6:PositionX.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:OVER:6:CenterX.HOPR NPP") + field(OUTC, "S03SIM-DI-OAV-01:OVER:6:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:6:MaxSizeY") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:OVER:6:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:OVER:6:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:OVER:6:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:OVER:6:PositionY.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:OVER:6:CenterY.HOPR NPP") + field(OUTC, "S03SIM-DI-OAV-01:OVER:6:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:OVER:6:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.over,5,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-DI-OAV-01:OVER:6:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,5,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:OVER:6:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.over,5,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:6:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,5,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:6:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,5,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:6:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,5,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-DI-OAV-01:OVER:7:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.over,6,1)NAME") + field(VAL, "Overlay 7") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:7:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,6,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-DI-OAV-01:OVER:7:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,6,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:OVER:7:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,6,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-DI-OAV-01:OVER:7:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:7:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:7:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,6,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:7:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,6,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:7:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:7:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:7:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,6,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:7:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,6,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:7:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:7:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:7:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,6,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:7:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,6,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:7:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:7:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:7:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,6,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:7:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,6,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:7:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:7:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:7:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,6,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:7:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,6,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:7:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:7:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:7:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,6,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:7:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,6,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:7:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:7:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:7:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,6,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:7:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,6,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:7:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:7:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:7:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,6,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:7:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,6,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:7:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,6,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:7:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,6,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:7:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,6,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:7:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,6,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:7:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,6,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:7:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,6,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:7:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,6,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:7:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,6,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:7:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,6,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:7:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,6,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-DI-OAV-01:OVER:7:MaxSizeX") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:OVER:7:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:OVER:7:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:OVER:7:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:OVER:7:PositionX.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:OVER:7:CenterX.HOPR NPP") + field(OUTC, "S03SIM-DI-OAV-01:OVER:7:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:7:MaxSizeY") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:OVER:7:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:OVER:7:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:OVER:7:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:OVER:7:PositionY.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:OVER:7:CenterY.HOPR NPP") + field(OUTC, "S03SIM-DI-OAV-01:OVER:7:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:OVER:7:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.over,6,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-DI-OAV-01:OVER:7:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,6,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:OVER:7:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.over,6,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:7:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,6,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:7:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,6,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:7:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,6,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-DI-OAV-01:OVER:8:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.over,7,1)NAME") + field(VAL, "Overlay 8") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:8:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,7,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-DI-OAV-01:OVER:8:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,7,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:OVER:8:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,7,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-DI-OAV-01:OVER:8:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:8:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:8:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,7,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:8:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,7,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:8:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:8:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:8:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,7,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:8:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,7,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:8:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:8:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:8:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,7,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:8:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,7,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:8:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:8:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:8:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,7,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:8:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,7,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:8:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:8:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:8:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,7,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:8:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,7,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:8:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:8:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:8:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,7,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:8:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,7,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:8:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:8:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:8:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,7,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:8:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,7,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:8:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:8:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:8:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,7,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:8:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,7,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:8:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,7,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:8:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,7,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:8:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,7,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:8:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,7,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:8:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,7,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:8:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,7,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:8:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,7,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:8:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,7,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:8:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,7,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:8:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,7,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-DI-OAV-01:OVER:8:MaxSizeX") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:OVER:8:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:OVER:8:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:OVER:8:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:OVER:8:PositionX.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:OVER:8:CenterX.HOPR NPP") + field(OUTC, "S03SIM-DI-OAV-01:OVER:8:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:8:MaxSizeY") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:OVER:8:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:OVER:8:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:OVER:8:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:OVER:8:PositionY.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:OVER:8:CenterY.HOPR NPP") + field(OUTC, "S03SIM-DI-OAV-01:OVER:8:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:OVER:8:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.over,7,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-DI-OAV-01:OVER:8:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,7,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:OVER:8:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.over,7,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:8:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,7,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:8:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,7,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:8:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,7,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-EA-FSCN-01:OVER:1:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.over,0,1)NAME") + field(VAL, "Overlay 1") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:OVER:1:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,0,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:OVER:1:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:OVER:1:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-EA-FSCN-01:OVER:1:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:1:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:1:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:1:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:1:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:1:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:1:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:1:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:1:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:1:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:1:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:1:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:1:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:1:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:1:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:1:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:1:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:1:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:1:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:1:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:1:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:1:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:1:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:1:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:1:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:1:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:1:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:1:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:1:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:1:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:1:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:1:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:1:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:1:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:1:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:1:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:1:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:1:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:1:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:1:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:1:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:1:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-01:OVER:1:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:1:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:OVER:1:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:OVER:1:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:OVER:1:PositionX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:OVER:1:CenterX.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-01:OVER:1:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:1:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:1:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:OVER:1:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:OVER:1:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:OVER:1:PositionY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:OVER:1:CenterY.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-01:OVER:1:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:OVER:1:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-01:OVER:1:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:OVER:1:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:OVER:1:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:1:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:1:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-EA-FSCN-01:OVER:2:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.over,1,1)NAME") + field(VAL, "Overlay 2") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:OVER:2:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,1,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:OVER:2:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,1,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:OVER:2:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,1,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-EA-FSCN-01:OVER:2:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:2:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:2:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:2:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:2:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:2:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:2:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:2:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:2:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:2:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:2:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:2:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:2:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:2:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:2:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:2:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:2:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:2:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:2:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:2:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:2:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:2:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:2:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:2:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:2:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:2:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:2:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:2:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:2:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:2:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:2:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:2:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:2:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:2:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:2:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:2:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:2:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:2:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:2:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:2:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:2:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:2:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-01:OVER:2:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:2:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:OVER:2:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:OVER:2:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:OVER:2:PositionX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:OVER:2:CenterX.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-01:OVER:2:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:2:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:2:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:OVER:2:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:OVER:2:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:OVER:2:PositionY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:OVER:2:CenterY.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-01:OVER:2:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:OVER:2:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-01:OVER:2:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:OVER:2:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:OVER:2:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:2:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:2:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-EA-FSCN-01:OVER:3:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.over,2,1)NAME") + field(VAL, "Overlay 3") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:OVER:3:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,2,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:OVER:3:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,2,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:OVER:3:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,2,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-EA-FSCN-01:OVER:3:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:3:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:3:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:3:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:3:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:3:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:3:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:3:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:3:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:3:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:3:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:3:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:3:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:3:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:3:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:3:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:3:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:3:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:3:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:3:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:3:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:3:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:3:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:3:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:3:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:3:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:3:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:3:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:3:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:3:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:3:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:3:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:3:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:3:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:3:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:3:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:3:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:3:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:3:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:3:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:3:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:3:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-01:OVER:3:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:3:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:OVER:3:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:OVER:3:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:OVER:3:PositionX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:OVER:3:CenterX.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-01:OVER:3:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:3:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:3:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:OVER:3:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:OVER:3:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:OVER:3:PositionY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:OVER:3:CenterY.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-01:OVER:3:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:OVER:3:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-01:OVER:3:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:OVER:3:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:OVER:3:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:3:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:3:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-EA-FSCN-01:OVER:4:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.over,3,1)NAME") + field(VAL, "Overlay 4") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:OVER:4:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,3,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:OVER:4:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,3,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:OVER:4:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,3,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-EA-FSCN-01:OVER:4:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:4:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:4:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:4:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:4:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:4:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:4:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:4:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:4:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:4:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:4:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:4:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:4:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:4:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:4:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:4:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:4:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:4:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:4:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:4:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:4:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:4:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:4:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:4:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:4:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:4:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:4:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:4:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:4:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:4:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:4:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:4:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:4:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:4:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:4:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:4:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:4:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:4:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:4:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:4:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:4:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:4:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-01:OVER:4:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:4:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:OVER:4:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:OVER:4:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:OVER:4:PositionX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:OVER:4:CenterX.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-01:OVER:4:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:4:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:4:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:OVER:4:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:OVER:4:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:OVER:4:PositionY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:OVER:4:CenterY.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-01:OVER:4:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:OVER:4:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-01:OVER:4:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:OVER:4:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:OVER:4:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:4:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:4:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-EA-FSCN-01:OVER:5:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.over,4,1)NAME") + field(VAL, "Overlay 5") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:OVER:5:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,4,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:OVER:5:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,4,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:OVER:5:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,4,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-EA-FSCN-01:OVER:5:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:5:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:5:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:5:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:5:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:5:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:5:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:5:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:5:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:5:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:5:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:5:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:5:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:5:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:5:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:5:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:5:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:5:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:5:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:5:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:5:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:5:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:5:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:5:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:5:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:5:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:5:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:5:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:5:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:5:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:5:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:5:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:5:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:5:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:5:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:5:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:5:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:5:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:5:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:5:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:5:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:5:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-01:OVER:5:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:5:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:OVER:5:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:OVER:5:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:OVER:5:PositionX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:OVER:5:CenterX.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-01:OVER:5:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:5:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:5:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:OVER:5:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:OVER:5:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:OVER:5:PositionY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:OVER:5:CenterY.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-01:OVER:5:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:OVER:5:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-01:OVER:5:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:OVER:5:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:OVER:5:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:5:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:5:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-EA-FSCN-01:OVER:6:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.over,5,1)NAME") + field(VAL, "Overlay 6") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:OVER:6:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,5,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:OVER:6:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,5,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:OVER:6:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,5,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-EA-FSCN-01:OVER:6:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:6:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:6:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:6:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:6:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:6:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:6:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:6:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:6:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:6:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:6:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:6:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:6:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:6:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:6:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:6:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:6:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:6:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:6:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:6:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:6:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:6:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:6:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:6:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:6:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:6:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:6:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:6:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:6:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:6:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:6:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:6:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:6:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:6:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:6:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:6:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:6:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:6:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:6:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:6:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:6:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:6:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-01:OVER:6:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:6:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:OVER:6:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:OVER:6:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:OVER:6:PositionX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:OVER:6:CenterX.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-01:OVER:6:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:6:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:6:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:OVER:6:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:OVER:6:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:OVER:6:PositionY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:OVER:6:CenterY.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-01:OVER:6:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:OVER:6:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-01:OVER:6:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:OVER:6:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:OVER:6:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:6:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:6:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-EA-FSCN-01:OVER:7:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.over,6,1)NAME") + field(VAL, "Overlay 7") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:OVER:7:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,6,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:OVER:7:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,6,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:OVER:7:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,6,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-EA-FSCN-01:OVER:7:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:7:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:7:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:7:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:7:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:7:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:7:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:7:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:7:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:7:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:7:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:7:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:7:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:7:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:7:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:7:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:7:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:7:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:7:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:7:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:7:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:7:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:7:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:7:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:7:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:7:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:7:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:7:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:7:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:7:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:7:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:7:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:7:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:7:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:7:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:7:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:7:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:7:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:7:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:7:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:7:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:7:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-01:OVER:7:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:7:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:OVER:7:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:OVER:7:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:OVER:7:PositionX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:OVER:7:CenterX.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-01:OVER:7:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:7:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:7:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:OVER:7:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:OVER:7:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:OVER:7:PositionY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:OVER:7:CenterY.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-01:OVER:7:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:OVER:7:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-01:OVER:7:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:OVER:7:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:OVER:7:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:7:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:7:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-EA-FSCN-01:OVER:8:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.over,7,1)NAME") + field(VAL, "Overlay 8") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:OVER:8:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,7,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:OVER:8:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,7,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:OVER:8:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,7,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-EA-FSCN-01:OVER:8:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:8:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:8:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:8:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:8:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:8:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:8:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:8:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:8:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:8:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:8:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:8:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:8:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:8:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:8:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:8:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:8:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:8:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:8:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:8:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:8:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:8:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:8:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:8:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:8:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:8:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:8:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:8:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:8:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-01:OVER:8:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:8:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:8:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:8:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:8:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:8:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:8:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:8:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:8:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:8:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:8:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:OVER:8:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:8:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-01:OVER:8:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:8:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:OVER:8:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:OVER:8:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:OVER:8:PositionX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:OVER:8:CenterX.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-01:OVER:8:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-01:OVER:8:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-01:OVER:8:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-01:OVER:8:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-01:OVER:8:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-01:OVER:8:PositionY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-01:OVER:8:CenterY.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-01:OVER:8:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:OVER:8:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-01:OVER:8:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:OVER:8:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:OVER:8:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:OVER:8:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:OVER:8:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-EA-FSCN-02:OVER:1:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.over,0,1)NAME") + field(VAL, "Overlay 1") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:OVER:1:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,0,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:OVER:1:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:OVER:1:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-EA-FSCN-02:OVER:1:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:1:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:1:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:1:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:1:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:1:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:1:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:1:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:1:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:1:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:1:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:1:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:1:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:1:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:1:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:1:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:1:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:1:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:1:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:1:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:1:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:1:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:1:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:1:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:1:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:1:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:1:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:1:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:1:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:1:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:1:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:1:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:1:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:1:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:1:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:1:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:1:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:1:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:1:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:1:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:1:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:1:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-02:OVER:1:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:1:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:OVER:1:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:OVER:1:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:OVER:1:PositionX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:OVER:1:CenterX.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-02:OVER:1:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:1:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:1:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:OVER:1:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:OVER:1:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:OVER:1:PositionY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:OVER:1:CenterY.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-02:OVER:1:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:OVER:1:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-02:OVER:1:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:OVER:1:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:OVER:1:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:1:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:1:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-EA-FSCN-02:OVER:2:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.over,1,1)NAME") + field(VAL, "Overlay 2") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:OVER:2:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,1,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:OVER:2:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,1,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:OVER:2:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,1,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-EA-FSCN-02:OVER:2:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:2:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:2:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:2:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:2:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:2:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:2:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:2:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:2:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:2:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:2:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:2:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:2:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:2:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:2:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:2:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:2:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:2:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:2:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:2:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:2:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:2:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:2:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:2:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:2:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:2:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:2:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:2:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:2:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:2:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:2:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:2:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:2:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:2:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:2:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:2:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:2:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:2:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:2:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:2:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:2:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:2:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-02:OVER:2:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:2:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:OVER:2:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:OVER:2:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:OVER:2:PositionX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:OVER:2:CenterX.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-02:OVER:2:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:2:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:2:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:OVER:2:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:OVER:2:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:OVER:2:PositionY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:OVER:2:CenterY.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-02:OVER:2:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:OVER:2:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-02:OVER:2:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:OVER:2:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:OVER:2:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:2:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:2:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-EA-FSCN-02:OVER:3:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.over,2,1)NAME") + field(VAL, "Overlay 3") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:OVER:3:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,2,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:OVER:3:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,2,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:OVER:3:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,2,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-EA-FSCN-02:OVER:3:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:3:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:3:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:3:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:3:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:3:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:3:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:3:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:3:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:3:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:3:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:3:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:3:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:3:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:3:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:3:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:3:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:3:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:3:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:3:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:3:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:3:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:3:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:3:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:3:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:3:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:3:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:3:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:3:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:3:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:3:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:3:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:3:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:3:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:3:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:3:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:3:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:3:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:3:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:3:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:3:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:3:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-02:OVER:3:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:3:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:OVER:3:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:OVER:3:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:OVER:3:PositionX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:OVER:3:CenterX.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-02:OVER:3:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:3:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:3:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:OVER:3:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:OVER:3:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:OVER:3:PositionY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:OVER:3:CenterY.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-02:OVER:3:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:OVER:3:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-02:OVER:3:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:OVER:3:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:OVER:3:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:3:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:3:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-EA-FSCN-02:OVER:4:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.over,3,1)NAME") + field(VAL, "Overlay 4") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:OVER:4:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,3,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:OVER:4:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,3,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:OVER:4:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,3,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-EA-FSCN-02:OVER:4:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:4:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:4:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:4:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:4:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:4:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:4:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:4:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:4:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:4:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:4:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:4:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:4:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:4:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:4:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:4:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:4:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:4:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:4:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:4:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:4:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:4:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:4:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:4:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:4:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:4:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:4:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:4:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:4:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:4:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:4:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:4:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:4:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:4:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:4:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:4:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:4:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:4:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:4:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:4:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:4:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:4:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-02:OVER:4:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:4:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:OVER:4:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:OVER:4:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:OVER:4:PositionX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:OVER:4:CenterX.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-02:OVER:4:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:4:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:4:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:OVER:4:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:OVER:4:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:OVER:4:PositionY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:OVER:4:CenterY.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-02:OVER:4:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:OVER:4:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-02:OVER:4:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:OVER:4:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:OVER:4:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:4:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:4:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-EA-FSCN-02:OVER:5:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.over,4,1)NAME") + field(VAL, "Overlay 5") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:OVER:5:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,4,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:OVER:5:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,4,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:OVER:5:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,4,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-EA-FSCN-02:OVER:5:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:5:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:5:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:5:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:5:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:5:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:5:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:5:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:5:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:5:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:5:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:5:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:5:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:5:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:5:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:5:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:5:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:5:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:5:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:5:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:5:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:5:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:5:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:5:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:5:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:5:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:5:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:5:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:5:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:5:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:5:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:5:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:5:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:5:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:5:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:5:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:5:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:5:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:5:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:5:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:5:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:5:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-02:OVER:5:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:5:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:OVER:5:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:OVER:5:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:OVER:5:PositionX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:OVER:5:CenterX.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-02:OVER:5:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:5:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:5:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:OVER:5:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:OVER:5:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:OVER:5:PositionY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:OVER:5:CenterY.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-02:OVER:5:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:OVER:5:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-02:OVER:5:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:OVER:5:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:OVER:5:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:5:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:5:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-EA-FSCN-02:OVER:6:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.over,5,1)NAME") + field(VAL, "Overlay 6") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:OVER:6:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,5,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:OVER:6:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,5,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:OVER:6:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,5,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-EA-FSCN-02:OVER:6:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:6:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:6:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:6:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:6:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:6:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:6:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:6:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:6:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:6:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:6:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:6:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:6:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:6:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:6:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:6:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:6:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:6:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:6:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:6:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:6:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:6:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:6:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:6:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:6:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:6:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:6:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:6:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:6:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:6:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:6:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:6:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:6:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:6:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:6:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:6:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:6:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:6:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:6:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:6:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:6:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:6:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-02:OVER:6:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:6:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:OVER:6:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:OVER:6:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:OVER:6:PositionX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:OVER:6:CenterX.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-02:OVER:6:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:6:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:6:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:OVER:6:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:OVER:6:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:OVER:6:PositionY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:OVER:6:CenterY.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-02:OVER:6:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:OVER:6:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-02:OVER:6:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:OVER:6:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:OVER:6:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:6:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:6:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-EA-FSCN-02:OVER:7:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.over,6,1)NAME") + field(VAL, "Overlay 7") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:OVER:7:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,6,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:OVER:7:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,6,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:OVER:7:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,6,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-EA-FSCN-02:OVER:7:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:7:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:7:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:7:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:7:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:7:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:7:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:7:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:7:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:7:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:7:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:7:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:7:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:7:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:7:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:7:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:7:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:7:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:7:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:7:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:7:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:7:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:7:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:7:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:7:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:7:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:7:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:7:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:7:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:7:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:7:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:7:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:7:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:7:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:7:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:7:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:7:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:7:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:7:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:7:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:7:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:7:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-02:OVER:7:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:7:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:OVER:7:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:OVER:7:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:OVER:7:PositionX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:OVER:7:CenterX.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-02:OVER:7:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:7:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:7:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:OVER:7:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:OVER:7:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:OVER:7:PositionY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:OVER:7:CenterY.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-02:OVER:7:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:OVER:7:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-02:OVER:7:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:OVER:7:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:OVER:7:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:7:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:7:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDOverlayN.template +# Database for NDOverlays +# Mark Rivers +# March 22, 2010 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, O, NDOverlay Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NAME, Name for the overlay +# % macro, XPOS, Link for the XPos of the overlay +# % macro, YPOS, Link for the YPos of the overlay +# % macro, XCENT, Link for the XCent of the overlay +# % macro, YCENT, Link for the YCent of the overlay +# % macro, XSIZE, Link for the XSize of the overlay +# % macro, YSIZE, Link for the YSize of the overlay +# % macro, XWIDTH, Link for the XWidth of the overlay +# % macro, YWIDTH, Link for the YWdith of the overlay +# % macro, SHAPE, Shape of the overlay + +################################################################### +# These records control the label for the overlay # +################################################################### +record(stringout, "S03SIM-EA-FSCN-02:OVER:8:Name") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.over,7,1)NAME") + field(VAL, "Overlay 8") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:OVER:8:Name_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,7,1)NAME") + field(SCAN, "I/O Intr") +} + + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:OVER:8:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,7,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:OVER:8:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,7,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-EA-FSCN-02:OVER:8:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:8:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:8:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_POSITION_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:8:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:8:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:8:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:8:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_POSITION_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:8:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:8:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:8:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:8:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_CENTER_X") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:8:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:8:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:8:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:8:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_CENTER_Y") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:8:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:8:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:8:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:8:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:8:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:8:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:8:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:8:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:8:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:8:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:8:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:8:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:8:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:8:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-EA-FSCN-02:OVER:8:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:8:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:8:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:8:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:8:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:8:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:8:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:8:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:8:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:8:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:8:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:OVER:8:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:8:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-EA-FSCN-02:OVER:8:MaxSizeX") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:8:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:OVER:8:SetXHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:OVER:8:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:OVER:8:PositionX.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:OVER:8:CenterX.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-02:OVER:8:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-EA-FSCN-02:OVER:8:MaxSizeY") +{ + field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-EA-FSCN-02:OVER:8:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-EA-FSCN-02:OVER:8:SetYHOPR") +{ + field(DOL, "S03SIM-EA-FSCN-02:OVER:8:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-EA-FSCN-02:OVER:8:PositionY.HOPR NPP") + field(OUTB, "S03SIM-EA-FSCN-02:OVER:8:CenterY.HOPR NPP") + field(OUTC, "S03SIM-EA-FSCN-02:OVER:8:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:OVER:8:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-02:OVER:8:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:OVER:8:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:OVER:8:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:OVER:8:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:OVER:8:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % gui, OAV.fimg, edmtab, ffmpegFile.edl, P=S03SIM-DI-OAV-01,R=:FIMG: + +# # \file +# # ffmpegFile wraps the ffmpeg compression libraries in an areaDetector plugin. +# # It works in much the same way as the other NDFile plugins. By default, it +# # will try to guess the file format from the file extension, but you can force +# # it to a particular file format with the FileFormat record. +# # \section ffmpegStream_setup Setup +# # - In the database, an instance of NDPluginBase is required, followed by an +# # instance of NDFile, then an instance of this template. +# # - In the startup scripts, call ffmpegFileConfigure() once per ffmpegStream +# # instance to setup the areadetector plugin +# # - see \ref build_instructions +# # \section ffmpegStream_screenshots Screenshots +# # \htmlinclude flashvideo.html +# # \image html ffmpegFileEdm.png "Edm screen for ffmpegFile" + +# This associates a BOY screen with the template +# % gui, OAV.fimg, boydetail,ffmpegServerApp_opi/fimg_detail.opi, P=S03SIM-DI-OAV-01, R=:FIMG:, DESC=MPEG File +# % gui, OAV.fimg, boyembed, ffmpegServerApp_opi/fimg_embed_box.opi, P=S03SIM-DI-OAV-01, R=:FIMG:, DESC=MPEG File +# % gui, OAV.fimg, boyembed, ffmpegServerApp_opi/fimg_embed.opi, P=S03SIM-DI-OAV-01, R=:FIMG:, DESC=MPEG File + +# Info +# % gui, OAV.fimg, groupHeading, Info +# % gui, OAV.fimg, readback, Port name, S03SIM-DI-OAV-01:FIMG:PortName_RBV +# % gui, OAV.fimg, readback, Plugin type, S03SIM-DI-OAV-01:FIMG:PluginType_RBV +# Input +# % gui, OAV.fimg, demandString, Input, S03SIM-DI-OAV-01:FIMG:NDArrayPort +# % gui, OAV.fimg, readback, Input, S03SIM-DI-OAV-01:FIMG:NDArrayPort_RBV + +# % gui, OAV.fimg, groupHeading, Callback +# % gui, OAV.fimg, enum, Callbacks, S03SIM-DI-OAV-01:FIMG:EnableCallbacks +# % gui, OAV.fimg, statusbits, Callbacks, S03SIM-DI-OAV-01:FIMG:EnableCallbacks_RBV +# % gui, OAV.fimg, demand, Min Callback Time, S03SIM-DI-OAV-01:FIMG:MinCallbackTime +# % gui, OAV.fimg, readback, Min Callback Time, S03SIM-DI-OAV-01:FIMG:MinCallbackTime_RBV +# % gui, OAV.fimg, enum, Block Callbacks, S03SIM-DI-OAV-01:FIMG:BlockingCallbacks +# % gui, OAV.fimg, statusbits, Block Callbacks, S03SIM-DI-OAV-01:FIMG:BlockingCallbacks_RBV + +# % gui, OAV.fimg, groupHeading, Counters +# % gui, OAV.fimg, demand, Array Counter, S03SIM-DI-OAV-01:FIMG:ArrayCounter +# % gui, OAV.fimg, readback, Array Counter, S03SIM-DI-OAV-01:FIMG:ArrayCounter_RBV +# % gui, OAV.fimg, readback, Array Rate (fps), S03SIM-DI-OAV-01:FIMG:ArrayRate_RBV +# % gui, OAV.fimg, readback, Queue Use, S03SIM-DI-OAV-01:FIMG:QueueUse +# % gui, OAV.fimg, readback, Queue Size, S03SIM-DI-OAV-01:FIMG:QueueSize +# % gui, OAV.fimg, demand, Dropped Arrays, S03SIM-DI-OAV-01:FIMG:DroppedArrays +# % gui, OAV.fimg, readback, Dropped Arrays, S03SIM-DI-OAV-01:FIMG:DroppedArrays_RBV + +# % gui, OAV.fimg, groupHeading, Array Settings +# % gui, OAV.fimg, readback, Num Dimensions, S03SIM-DI-OAV-01:FIMG:NDimensions_RBV +# % gui, OAV.fimg, readback, Dim 0 Size, S03SIM-DI-OAV-01:FIMG:ArraySize0_RBV +# % gui, OAV.fimg, readback, Dim 1 Size, S03SIM-DI-OAV-01:FIMG:ArraySize1_RBV +# % gui, OAV.fimg, readback, Dim 2 Size, S03SIM-DI-OAV-01:FIMG:ArraySize2_RBV +# % gui, OAV.fimg, readback, Input Data Type, S03SIM-DI-OAV-01:FIMG:DataType_RBV +# % gui, OAV.fimg, readback, Colour Mode, S03SIM-DI-OAV-01:FIMG:ColorMode_RBV +# % gui, OAV.fimg, readback, Bayer Pattern, S03SIM-DI-OAV-01:FIMG:BayerPattern_RBV +# % gui, OAV.fimg, readback, Unique id, S03SIM-DI-OAV-01:FIMG:UniqueId_RBV +# % gui, OAV.fimg, readback, Timestamp, S03SIM-DI-OAV-01:FIMG:TimeStamp_RBV + +# File +# % gui, OAV.fimg, groupHeading, File +# % gui, OAV.fimg, demandString, File Path, S03SIM-DI-OAV-01:FIMG:FilePath +# % gui, OAV.fimg, readback, File Path, S03SIM-DI-OAV-01:FIMG:FilePath_RBV +# % gui, OAV.fimg, statusbits, File Path Exists, S03SIM-DI-OAV-01:FIMG:FilePathExists_RBV +# % gui, OAV.fimg, demand, File Name, S03SIM-DI-OAV-01:FIMG:FileName +# % gui, OAV.fimg, readback, File Name, S03SIM-DI-OAV-01:FIMG:FileName_RBV +# % gui, OAV.fimg, demand, File Number, S03SIM-DI-OAV-01:FIMG:FileNumber +# % gui, OAV.fimg, readback, File Number, S03SIM-DI-OAV-01:FIMG:FileNumber_RBV +# % gui, OAV.fimg, enum, Auto Increment, S03SIM-DI-OAV-01:FIMG:AutoIncrement +# % gui, OAV.fimg, statusbits, Auto Increment, S03SIM-DI-OAV-01:FIMG:AutoIncrement_RBV +# % gui, OAV.fimg, demand, File Format, S03SIM-DI-OAV-01:FIMG:FileTemplate +# % gui, OAV.fimg, readback, File Format, S03SIM-DI-OAV-01:FIMG:FileTemplate_RBV +# % gui, OAV.fimg, demand, N to Capture, S03SIM-DI-OAV-01:FIMG:NumCapture +# % gui, OAV.fimg, readback, N to Capture, S03SIM-DI-OAV-01:FIMG:NumCapture_RBV +# % gui, OAV.fimg, readback, N Captured, S03SIM-DI-OAV-01:FIMG:NumCaptured_RBV +# % gui, OAV.fimg, enum, Auto Save, S03SIM-DI-OAV-01:FIMG:AutoSave +# % gui, OAV.fimg, statusbits, Auto Save , S03SIM-DI-OAV-01:FIMG:AutoSave_RBV +# % gui, OAV.fimg, enum, Capture mode, S03SIM-DI-OAV-01:FIMG:FileWriteMode +# % gui, OAV.fimg, readback, Capture mode, S03SIM-DI-OAV-01:FIMG:FileWriteMode_RBV +# % gui, OAV.fimg, enum, Capture, S03SIM-DI-OAV-01:FIMG:Capture +# % gui, OAV.fimg, readback, Capture, S03SIM-DI-OAV-01:FIMG:Capture_RBV +# % gui, OAV.fimg, readback, Write Message, S03SIM-DI-OAV-01:FIMG:WriteMessage +# % gui, OAV.fimg, readback, Write Status, S03SIM-DI-OAV-01:FIMG:WriteStatus +# % gui, OAV.fimg, readback, Write Filename, S03SIM-DI-OAV-01:FIMG:FullFileName_RBV +# % gui, OAV.fimg, enum, Lazy Open, S03SIM-DI-OAV-01:FIMG:LazyOpen +# % gui, OAV.fimg, readback, Lazy Open, S03SIM-DI-OAV-01:FIMG:LazyOpen_RBV +# % gui, OAV.fimg, demand, Temporary Suffix, S03SIM-DI-OAV-01:FIMG:TempSuffix +# % gui, OAV.fimg, readback, Temporary Suffix, S03SIM-DI-OAV-01:FIMG:TempSuffix_RBV +# % gui, OAV.fimg, demand, Create Directories, S03SIM-DI-OAV-01:FIMG:CreateDirectory +# % gui, OAV.fimg, readback, Create Directories, S03SIM-DI-OAV-01:FIMG:CreateDirectory_RBV + +# Video +# % gui, OAV.fimg, groupHeading, Video Settings +# % gui, OAV.fimg, demand, Bit Rate, S03SIM-DI-OAV-01:FIMG:BITRATE +# % gui, OAV.fimg, readback, Bit Rate, S03SIM-DI-OAV-01:FIMG:BITRATE_RBV +# % gui, OAV.fimg, demand, Frame Rate, S03SIM-DI-OAV-01:FIMG:FPS +# % gui, OAV.fimg, readback, Frame Rate, S03SIM-DI-OAV-01:FIMG:FPS_RBV +# % gui, OAV.fimg, demand, Width, S03SIM-DI-OAV-01:FIMG:WIDTH +# % gui, OAV.fimg, readback, Width, S03SIM-DI-OAV-01:FIMG:WIDTH_RBV +# % gui, OAV.fimg, demand, Height, S03SIM-DI-OAV-01:FIMG:HEIGHT +# % gui, OAV.fimg, readback, Height, S03SIM-DI-OAV-01:FIMG:HEIGHT_RBV +# Memory +# % gui, OAV.fimg, groupHeading, Memory +# % gui, OAV.fimg, readback, Max memory, S03SIM-DI-OAV-01:FIMG:PoolMaxMem +# % gui, OAV.fimg, readback, Max buffers, S03SIM-DI-OAV-01:FIMG:PoolMaxBuffers +# % gui, OAV.fimg, readback, Used memory, S03SIM-DI-OAV-01:FIMG:PoolUsedMem +# % gui, OAV.fimg, readback, Allocated buffers, S03SIM-DI-OAV-01:FIMG:PoolAllocBuffers +# % gui, OAV.fimg, readback, Free buffers, S03SIM-DI-OAV-01:FIMG:PoolFreeBuffers + +#=================================================================# +# Template file: NDFile.template +# Database for NDFile driver, which saves files for NDArray data. +# Mark Rivers +# April 7, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +################################################################### +# These records control file I/O # +################################################################### + +# File path. +record(waveform, "S03SIM-DI-OAV-01:FIMG:FilePath") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.fimg,0,1)FILE_PATH") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-DI-OAV-01:FIMG:FilePath_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.fimg,0,1)FILE_PATH") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-DI-OAV-01:FIMG:FilePathExists_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)FILE_PATH_EXISTS") + field(ZNAM, "No") + field(ZSV, "MAJOR") + field(ONAM, "Yes") + field(OSV, "NO_ALARM") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:FIMG:CreateDirectory") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)CREATE_DIR") + field(VAL, "0" ) + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:CreateDirectory_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)CREATE_DIR") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +# Filename +record(waveform, "S03SIM-DI-OAV-01:FIMG:FileName") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.fimg,0,1)FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-DI-OAV-01:FIMG:FileName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.fimg,0,1)FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:FIMG:FileNumber") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)FILE_NUMBER") + field(VAL, "1") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:FileNumber_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)FILE_NUMBER") + field(SCAN, "I/O Intr") +} + +# Autoincrement flag +record(bo, "S03SIM-DI-OAV-01:FIMG:AutoIncrement") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)AUTO_INCREMENT") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:FIMG:AutoIncrement_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)AUTO_INCREMENT") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# File template +record(waveform, "S03SIM-DI-OAV-01:FIMG:FileTemplate") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.fimg,0,1)FILE_TEMPLATE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-DI-OAV-01:FIMG:FileTemplate_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.fimg,0,1)FILE_TEMPLATE") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +# Full filename, including path +record(waveform, "S03SIM-DI-OAV-01:FIMG:FullFileName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.fimg,0,1)FULL_FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "512") + field(SCAN, "I/O Intr") +} + +# Autosave flag +record(bo, "S03SIM-DI-OAV-01:FIMG:AutoSave") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)AUTO_SAVE") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:FIMG:AutoSave_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)AUTO_SAVE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# Write file +record(ai, "S03SIM-DI-OAV-01:FIMG:WriteFile") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)WRITE_FILE") + field(ZNAM, "Done") + field(ONAM, "Write") +} + +record(bi, "S03SIM-DI-OAV-01:FIMG:WriteFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)WRITE_FILE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Writing") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +# Read file +record(ai, "S03SIM-DI-OAV-01:FIMG:ReadFile") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)READ_FILE") + field(ZNAM, "Done") + field(ONAM, "Read") +} + +record(bi, "S03SIM-DI-OAV-01:FIMG:ReadFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)READ_FILE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Reading") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +# File data format +record(mbbo, "S03SIM-DI-OAV-01:FIMG:FileFormat") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)FILE_FORMAT") + field(VAL, "0") + field(ZRST, "Undefined") + field(ZRVL, "0") + field(ONST, "Invalid") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:FIMG:FileFormat_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)FILE_FORMAT") + field(ZRST, "netCDF") + field(ZRVL, "0") + field(ONST, "Undefined") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +# File save mode +record(mbbo, "S03SIM-DI-OAV-01:FIMG:FileWriteMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)WRITE_MODE") + field(VAL, "0") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Capture") + field(ONVL, "1") + field(TWST, "Stream") + field(TWVL, "2") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:FIMG:FileWriteMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)WRITE_MODE") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Capture") + field(ONVL, "1") + field(TWST, "Stream") + field(TWVL, "2") + field(SCAN, "I/O Intr") +} + +# Capture data +record(ai, "S03SIM-DI-OAV-01:FIMG:Capture") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)CAPTURE") + field(ZNAM, "Done") + field(ONAM, "Capture") +} + +record(bi, "S03SIM-DI-OAV-01:FIMG:Capture_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)CAPTURE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Capturing") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:FIMG:NumCapture") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)NUM_CAPTURE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:NumCapture_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)NUM_CAPTURE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:NumCaptured_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)NUM_CAPTURED") + field(SCAN, "I/O Intr") +} + +# Delete driver file flag +record(bo, "S03SIM-DI-OAV-01:FIMG:DeleteDriverFile") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)DELETE_DRIVER_FILE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:FIMG:DeleteDriverFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)DELETE_DRIVER_FILE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-DI-OAV-01:FIMG:WriteStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)WRITE_STATUS") + field(ZNAM, "Write OK") + field(ZSV, "NO_ALARM") + field(ONAM, "Write error") + field(OSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:FIMG:WriteMessage") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.fimg,0,1)WRITE_MESSAGE") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:FIMG:LazyOpen") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)FILE_LAZY_OPEN") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:FIMG:LazyOpen_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)FILE_LAZY_OPEN") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:FIMG:TempSuffix") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.fimg,0,1)FILE_TEMP_SUFFIX") + field(VAL, "") +} + +record(stringin, "S03SIM-DI-OAV-01:FIMG:TempSuffix_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.fimg,0,1)FILE_TEMP_SUFFIX") + field(VAL, "") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:FIMG:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.fimg,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:FIMG:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.fimg,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:FIMG:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.fimg,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:FIMG:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.fimg,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:FIMG:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.fimg,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:FIMG:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.fimg,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:FIMG:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.fimg,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:FIMG:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.fimg,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:FIMG:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:FIMG:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:FIMG:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:FIMG:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:FIMG:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:FIMG:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:FIMG:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:FIMG:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:FIMG:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:FIMG:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:FIMG:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:FIMG:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:FIMG:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.fimg,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.fimg,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:FIMG:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:FIMG:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:FIMG:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.fimg,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:FIMG:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:FIMG:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:FIMG:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:FIMG:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:FIMG:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:FIMG:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.fimg,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:FIMG:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:FIMG:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:FIMG:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:FIMG:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:FIMG:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:FIMG:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:FIMG:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:FIMG:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.fimg,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:FIMG:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.fimg,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:FIMG:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:FIMG:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.fimg,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:FIMG:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.fimg,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:FIMG:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:FIMG:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:FIMG:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:FIMG:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:FIMG:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.fimg,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:FIMG:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.fimg,0,1)NDARRAY_PORT") + field(VAL, "OAV.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:FIMG:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.fimg,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:FIMG:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:FIMG:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:FIMG:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:FIMG:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.fimg,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:FIMG:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.fimg,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:FIMG:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:FIMG:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:FIMG:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:FIMG:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:FIMG:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:FIMG:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:FIMG:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:FIMG:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.fimg,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:FIMG:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.fimg,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:FIMG:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.fimg,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:FIMG:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:FIMG:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:FIMG:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:FIMG:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:FIMG:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:FIMG:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:FIMG:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:FIMG:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:FIMG:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:FIMG:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:FIMG:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:FIMG:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:FIMG:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:FIMG:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:FIMG:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:FIMG:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:FIMG:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:FIMG:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:FIMG:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:FIMG:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:FIMG:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.fimg,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:FIMG:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.fimg,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:FIMG:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:FIMG:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:FIMG:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:FIMG:SortSize") + field(OUT, "S03SIM-DI-OAV-01:FIMG:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:FIMG:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:FIMG:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:FIMG:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:FIMG:AsynIO") +{ + field(PORT, "OAV.fimg") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +# # File data format +record(mbbo, "S03SIM-DI-OAV-01:FIMG:FileFormat") +{ + field(ZRST, "Auto") + field(ZRVL, "0") +} + +# # File data format from driver +record(mbbi, "S03SIM-DI-OAV-01:FIMG:FileFormat_RBV") +{ + field(ZRST, "Auto") + field(ZRVL, "0") +} + +record(bo, "S03SIM-DI-OAV-01:FIMG:AutoSave") +{ + field(VAL, "0") +} + +record(mbbo, "S03SIM-DI-OAV-01:FIMG:FileWriteMode") +{ + field(VAL, "2") +} + +record(longout, "S03SIM-DI-OAV-01:FIMG:NumCapture") +{ + field(VAL, "-1") +} + +# # FFMPEG Bitrate +record(ao, "S03SIM-DI-OAV-01:FIMG:BITRATE") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.fimg 0)FFMPEG_BITRATE") + field(VAL, "10000000") + field(PINI, "YES") +} + +# # FFMPEG Bitrate from driver +record(ai, "S03SIM-DI-OAV-01:FIMG:BITRATE_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.fimg 0)FFMPEG_BITRATE") +} + +# # FFMPEG Frames Per Second +record(ao, "S03SIM-DI-OAV-01:FIMG:FPS") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg 0)FFMPEG_FPS") + field(VAL, "25") + field(PINI, "YES") +} + +# # FFMPEG Frames Per Second from driver +record(ai, "S03SIM-DI-OAV-01:FIMG:FPS_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg 0)FFMPEG_FPS") +} + +# # FFMPEG Width +record(ao, "S03SIM-DI-OAV-01:FIMG:WIDTH") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg 0)FFMPEG_WIDTH") + field(VAL, "640") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +# # FFMPEG Width from driver +record(ai, "S03SIM-DI-OAV-01:FIMG:WIDTH_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg 0)FFMPEG_WIDTH") +} + +# # FFMPEG Height +record(ao, "S03SIM-DI-OAV-01:FIMG:HEIGHT") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.fimg 0)FFMPEG_HEIGHT") + field(VAL, "480") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +# # FFMPEG Height from driver +record(ai, "S03SIM-DI-OAV-01:FIMG:HEIGHT_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.fimg 0)FFMPEG_HEIGHT") +} +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % gui, FSCN1.fimg, edmtab, ffmpegFile.edl, P=S03SIM-EA-FSCN-01,R=:FIMG: + +# # \file +# # ffmpegFile wraps the ffmpeg compression libraries in an areaDetector plugin. +# # It works in much the same way as the other NDFile plugins. By default, it +# # will try to guess the file format from the file extension, but you can force +# # it to a particular file format with the FileFormat record. +# # \section ffmpegStream_setup Setup +# # - In the database, an instance of NDPluginBase is required, followed by an +# # instance of NDFile, then an instance of this template. +# # - In the startup scripts, call ffmpegFileConfigure() once per ffmpegStream +# # instance to setup the areadetector plugin +# # - see \ref build_instructions +# # \section ffmpegStream_screenshots Screenshots +# # \htmlinclude flashvideo.html +# # \image html ffmpegFileEdm.png "Edm screen for ffmpegFile" + +# This associates a BOY screen with the template +# % gui, FSCN1.fimg, boydetail,ffmpegServerApp_opi/fimg_detail.opi, P=S03SIM-EA-FSCN-01, R=:FIMG:, DESC=MPEG File +# % gui, FSCN1.fimg, boyembed, ffmpegServerApp_opi/fimg_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:FIMG:, DESC=MPEG File +# % gui, FSCN1.fimg, boyembed, ffmpegServerApp_opi/fimg_embed.opi, P=S03SIM-EA-FSCN-01, R=:FIMG:, DESC=MPEG File + +# Info +# % gui, FSCN1.fimg, groupHeading, Info +# % gui, FSCN1.fimg, readback, Port name, S03SIM-EA-FSCN-01:FIMG:PortName_RBV +# % gui, FSCN1.fimg, readback, Plugin type, S03SIM-EA-FSCN-01:FIMG:PluginType_RBV +# Input +# % gui, FSCN1.fimg, demandString, Input, S03SIM-EA-FSCN-01:FIMG:NDArrayPort +# % gui, FSCN1.fimg, readback, Input, S03SIM-EA-FSCN-01:FIMG:NDArrayPort_RBV + +# % gui, FSCN1.fimg, groupHeading, Callback +# % gui, FSCN1.fimg, enum, Callbacks, S03SIM-EA-FSCN-01:FIMG:EnableCallbacks +# % gui, FSCN1.fimg, statusbits, Callbacks, S03SIM-EA-FSCN-01:FIMG:EnableCallbacks_RBV +# % gui, FSCN1.fimg, demand, Min Callback Time, S03SIM-EA-FSCN-01:FIMG:MinCallbackTime +# % gui, FSCN1.fimg, readback, Min Callback Time, S03SIM-EA-FSCN-01:FIMG:MinCallbackTime_RBV +# % gui, FSCN1.fimg, enum, Block Callbacks, S03SIM-EA-FSCN-01:FIMG:BlockingCallbacks +# % gui, FSCN1.fimg, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:FIMG:BlockingCallbacks_RBV + +# % gui, FSCN1.fimg, groupHeading, Counters +# % gui, FSCN1.fimg, demand, Array Counter, S03SIM-EA-FSCN-01:FIMG:ArrayCounter +# % gui, FSCN1.fimg, readback, Array Counter, S03SIM-EA-FSCN-01:FIMG:ArrayCounter_RBV +# % gui, FSCN1.fimg, readback, Array Rate (fps), S03SIM-EA-FSCN-01:FIMG:ArrayRate_RBV +# % gui, FSCN1.fimg, readback, Queue Use, S03SIM-EA-FSCN-01:FIMG:QueueUse +# % gui, FSCN1.fimg, readback, Queue Size, S03SIM-EA-FSCN-01:FIMG:QueueSize +# % gui, FSCN1.fimg, demand, Dropped Arrays, S03SIM-EA-FSCN-01:FIMG:DroppedArrays +# % gui, FSCN1.fimg, readback, Dropped Arrays, S03SIM-EA-FSCN-01:FIMG:DroppedArrays_RBV + +# % gui, FSCN1.fimg, groupHeading, Array Settings +# % gui, FSCN1.fimg, readback, Num Dimensions, S03SIM-EA-FSCN-01:FIMG:NDimensions_RBV +# % gui, FSCN1.fimg, readback, Dim 0 Size, S03SIM-EA-FSCN-01:FIMG:ArraySize0_RBV +# % gui, FSCN1.fimg, readback, Dim 1 Size, S03SIM-EA-FSCN-01:FIMG:ArraySize1_RBV +# % gui, FSCN1.fimg, readback, Dim 2 Size, S03SIM-EA-FSCN-01:FIMG:ArraySize2_RBV +# % gui, FSCN1.fimg, readback, Input Data Type, S03SIM-EA-FSCN-01:FIMG:DataType_RBV +# % gui, FSCN1.fimg, readback, Colour Mode, S03SIM-EA-FSCN-01:FIMG:ColorMode_RBV +# % gui, FSCN1.fimg, readback, Bayer Pattern, S03SIM-EA-FSCN-01:FIMG:BayerPattern_RBV +# % gui, FSCN1.fimg, readback, Unique id, S03SIM-EA-FSCN-01:FIMG:UniqueId_RBV +# % gui, FSCN1.fimg, readback, Timestamp, S03SIM-EA-FSCN-01:FIMG:TimeStamp_RBV + +# File +# % gui, FSCN1.fimg, groupHeading, File +# % gui, FSCN1.fimg, demandString, File Path, S03SIM-EA-FSCN-01:FIMG:FilePath +# % gui, FSCN1.fimg, readback, File Path, S03SIM-EA-FSCN-01:FIMG:FilePath_RBV +# % gui, FSCN1.fimg, statusbits, File Path Exists, S03SIM-EA-FSCN-01:FIMG:FilePathExists_RBV +# % gui, FSCN1.fimg, demand, File Name, S03SIM-EA-FSCN-01:FIMG:FileName +# % gui, FSCN1.fimg, readback, File Name, S03SIM-EA-FSCN-01:FIMG:FileName_RBV +# % gui, FSCN1.fimg, demand, File Number, S03SIM-EA-FSCN-01:FIMG:FileNumber +# % gui, FSCN1.fimg, readback, File Number, S03SIM-EA-FSCN-01:FIMG:FileNumber_RBV +# % gui, FSCN1.fimg, enum, Auto Increment, S03SIM-EA-FSCN-01:FIMG:AutoIncrement +# % gui, FSCN1.fimg, statusbits, Auto Increment, S03SIM-EA-FSCN-01:FIMG:AutoIncrement_RBV +# % gui, FSCN1.fimg, demand, File Format, S03SIM-EA-FSCN-01:FIMG:FileTemplate +# % gui, FSCN1.fimg, readback, File Format, S03SIM-EA-FSCN-01:FIMG:FileTemplate_RBV +# % gui, FSCN1.fimg, demand, N to Capture, S03SIM-EA-FSCN-01:FIMG:NumCapture +# % gui, FSCN1.fimg, readback, N to Capture, S03SIM-EA-FSCN-01:FIMG:NumCapture_RBV +# % gui, FSCN1.fimg, readback, N Captured, S03SIM-EA-FSCN-01:FIMG:NumCaptured_RBV +# % gui, FSCN1.fimg, enum, Auto Save, S03SIM-EA-FSCN-01:FIMG:AutoSave +# % gui, FSCN1.fimg, statusbits, Auto Save , S03SIM-EA-FSCN-01:FIMG:AutoSave_RBV +# % gui, FSCN1.fimg, enum, Capture mode, S03SIM-EA-FSCN-01:FIMG:FileWriteMode +# % gui, FSCN1.fimg, readback, Capture mode, S03SIM-EA-FSCN-01:FIMG:FileWriteMode_RBV +# % gui, FSCN1.fimg, enum, Capture, S03SIM-EA-FSCN-01:FIMG:Capture +# % gui, FSCN1.fimg, readback, Capture, S03SIM-EA-FSCN-01:FIMG:Capture_RBV +# % gui, FSCN1.fimg, readback, Write Message, S03SIM-EA-FSCN-01:FIMG:WriteMessage +# % gui, FSCN1.fimg, readback, Write Status, S03SIM-EA-FSCN-01:FIMG:WriteStatus +# % gui, FSCN1.fimg, readback, Write Filename, S03SIM-EA-FSCN-01:FIMG:FullFileName_RBV +# % gui, FSCN1.fimg, enum, Lazy Open, S03SIM-EA-FSCN-01:FIMG:LazyOpen +# % gui, FSCN1.fimg, readback, Lazy Open, S03SIM-EA-FSCN-01:FIMG:LazyOpen_RBV +# % gui, FSCN1.fimg, demand, Temporary Suffix, S03SIM-EA-FSCN-01:FIMG:TempSuffix +# % gui, FSCN1.fimg, readback, Temporary Suffix, S03SIM-EA-FSCN-01:FIMG:TempSuffix_RBV +# % gui, FSCN1.fimg, demand, Create Directories, S03SIM-EA-FSCN-01:FIMG:CreateDirectory +# % gui, FSCN1.fimg, readback, Create Directories, S03SIM-EA-FSCN-01:FIMG:CreateDirectory_RBV + +# Video +# % gui, FSCN1.fimg, groupHeading, Video Settings +# % gui, FSCN1.fimg, demand, Bit Rate, S03SIM-EA-FSCN-01:FIMG:BITRATE +# % gui, FSCN1.fimg, readback, Bit Rate, S03SIM-EA-FSCN-01:FIMG:BITRATE_RBV +# % gui, FSCN1.fimg, demand, Frame Rate, S03SIM-EA-FSCN-01:FIMG:FPS +# % gui, FSCN1.fimg, readback, Frame Rate, S03SIM-EA-FSCN-01:FIMG:FPS_RBV +# % gui, FSCN1.fimg, demand, Width, S03SIM-EA-FSCN-01:FIMG:WIDTH +# % gui, FSCN1.fimg, readback, Width, S03SIM-EA-FSCN-01:FIMG:WIDTH_RBV +# % gui, FSCN1.fimg, demand, Height, S03SIM-EA-FSCN-01:FIMG:HEIGHT +# % gui, FSCN1.fimg, readback, Height, S03SIM-EA-FSCN-01:FIMG:HEIGHT_RBV +# Memory +# % gui, FSCN1.fimg, groupHeading, Memory +# % gui, FSCN1.fimg, readback, Max memory, S03SIM-EA-FSCN-01:FIMG:PoolMaxMem +# % gui, FSCN1.fimg, readback, Max buffers, S03SIM-EA-FSCN-01:FIMG:PoolMaxBuffers +# % gui, FSCN1.fimg, readback, Used memory, S03SIM-EA-FSCN-01:FIMG:PoolUsedMem +# % gui, FSCN1.fimg, readback, Allocated buffers, S03SIM-EA-FSCN-01:FIMG:PoolAllocBuffers +# % gui, FSCN1.fimg, readback, Free buffers, S03SIM-EA-FSCN-01:FIMG:PoolFreeBuffers + +#=================================================================# +# Template file: NDFile.template +# Database for NDFile driver, which saves files for NDArray data. +# Mark Rivers +# April 7, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +################################################################### +# These records control file I/O # +################################################################### + +# File path. +record(waveform, "S03SIM-EA-FSCN-01:FIMG:FilePath") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.fimg,0,1)FILE_PATH") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-01:FIMG:FilePath_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.fimg,0,1)FILE_PATH") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-01:FIMG:FilePathExists_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)FILE_PATH_EXISTS") + field(ZNAM, "No") + field(ZSV, "MAJOR") + field(ONAM, "Yes") + field(OSV, "NO_ALARM") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:FIMG:CreateDirectory") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)CREATE_DIR") + field(VAL, "0" ) + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:CreateDirectory_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)CREATE_DIR") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +# Filename +record(waveform, "S03SIM-EA-FSCN-01:FIMG:FileName") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.fimg,0,1)FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-01:FIMG:FileName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.fimg,0,1)FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:FIMG:FileNumber") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)FILE_NUMBER") + field(VAL, "1") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:FileNumber_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)FILE_NUMBER") + field(SCAN, "I/O Intr") +} + +# Autoincrement flag +record(bo, "S03SIM-EA-FSCN-01:FIMG:AutoIncrement") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)AUTO_INCREMENT") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:FIMG:AutoIncrement_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)AUTO_INCREMENT") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# File template +record(waveform, "S03SIM-EA-FSCN-01:FIMG:FileTemplate") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.fimg,0,1)FILE_TEMPLATE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-01:FIMG:FileTemplate_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.fimg,0,1)FILE_TEMPLATE") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +# Full filename, including path +record(waveform, "S03SIM-EA-FSCN-01:FIMG:FullFileName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.fimg,0,1)FULL_FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "512") + field(SCAN, "I/O Intr") +} + +# Autosave flag +record(bo, "S03SIM-EA-FSCN-01:FIMG:AutoSave") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)AUTO_SAVE") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:FIMG:AutoSave_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)AUTO_SAVE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# Write file +record(ai, "S03SIM-EA-FSCN-01:FIMG:WriteFile") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)WRITE_FILE") + field(ZNAM, "Done") + field(ONAM, "Write") +} + +record(bi, "S03SIM-EA-FSCN-01:FIMG:WriteFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)WRITE_FILE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Writing") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +# Read file +record(ai, "S03SIM-EA-FSCN-01:FIMG:ReadFile") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)READ_FILE") + field(ZNAM, "Done") + field(ONAM, "Read") +} + +record(bi, "S03SIM-EA-FSCN-01:FIMG:ReadFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)READ_FILE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Reading") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +# File data format +record(mbbo, "S03SIM-EA-FSCN-01:FIMG:FileFormat") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)FILE_FORMAT") + field(VAL, "0") + field(ZRST, "Undefined") + field(ZRVL, "0") + field(ONST, "Invalid") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:FIMG:FileFormat_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)FILE_FORMAT") + field(ZRST, "netCDF") + field(ZRVL, "0") + field(ONST, "Undefined") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +# File save mode +record(mbbo, "S03SIM-EA-FSCN-01:FIMG:FileWriteMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)WRITE_MODE") + field(VAL, "0") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Capture") + field(ONVL, "1") + field(TWST, "Stream") + field(TWVL, "2") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:FIMG:FileWriteMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)WRITE_MODE") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Capture") + field(ONVL, "1") + field(TWST, "Stream") + field(TWVL, "2") + field(SCAN, "I/O Intr") +} + +# Capture data +record(ai, "S03SIM-EA-FSCN-01:FIMG:Capture") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)CAPTURE") + field(ZNAM, "Done") + field(ONAM, "Capture") +} + +record(bi, "S03SIM-EA-FSCN-01:FIMG:Capture_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)CAPTURE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Capturing") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:FIMG:NumCapture") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)NUM_CAPTURE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:NumCapture_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)NUM_CAPTURE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:NumCaptured_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)NUM_CAPTURED") + field(SCAN, "I/O Intr") +} + +# Delete driver file flag +record(bo, "S03SIM-EA-FSCN-01:FIMG:DeleteDriverFile") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)DELETE_DRIVER_FILE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:FIMG:DeleteDriverFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)DELETE_DRIVER_FILE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-01:FIMG:WriteStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)WRITE_STATUS") + field(ZNAM, "Write OK") + field(ZSV, "NO_ALARM") + field(ONAM, "Write error") + field(OSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:FIMG:WriteMessage") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.fimg,0,1)WRITE_MESSAGE") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:FIMG:LazyOpen") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)FILE_LAZY_OPEN") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:FIMG:LazyOpen_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)FILE_LAZY_OPEN") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:FIMG:TempSuffix") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.fimg,0,1)FILE_TEMP_SUFFIX") + field(VAL, "") +} + +record(stringin, "S03SIM-EA-FSCN-01:FIMG:TempSuffix_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.fimg,0,1)FILE_TEMP_SUFFIX") + field(VAL, "") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:FIMG:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.fimg,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:FIMG:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.fimg,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:FIMG:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.fimg,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:FIMG:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.fimg,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:FIMG:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.fimg,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:FIMG:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.fimg,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:FIMG:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.fimg,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:FIMG:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.fimg,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:FIMG:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:FIMG:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:FIMG:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:FIMG:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:FIMG:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:FIMG:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:FIMG:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:FIMG:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:FIMG:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:FIMG:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:FIMG:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:FIMG:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:FIMG:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.fimg,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.fimg,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:FIMG:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:FIMG:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.fimg,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:FIMG:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:FIMG:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:FIMG:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:FIMG:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:FIMG:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:FIMG:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.fimg,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:FIMG:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:FIMG:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:FIMG:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:FIMG:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:FIMG:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:FIMG:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:FIMG:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:FIMG:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.fimg,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:FIMG:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.fimg,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:FIMG:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:FIMG:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.fimg,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:FIMG:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.fimg,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:FIMG:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:FIMG:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:FIMG:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:FIMG:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:FIMG:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.fimg,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:FIMG:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.fimg,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:FIMG:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.fimg,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:FIMG:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:FIMG:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:FIMG:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:FIMG:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.fimg,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:FIMG:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.fimg,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:FIMG:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:FIMG:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:FIMG:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:FIMG:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:FIMG:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:FIMG:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:FIMG:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:FIMG:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.fimg,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:FIMG:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.fimg,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:FIMG:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.fimg,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:FIMG:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:FIMG:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:FIMG:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:FIMG:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:FIMG:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:FIMG:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:FIMG:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:FIMG:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:FIMG:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:FIMG:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:FIMG:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:FIMG:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:FIMG:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:FIMG:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:FIMG:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:FIMG:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:FIMG:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:FIMG:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:FIMG:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:FIMG:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:FIMG:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.fimg,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:FIMG:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.fimg,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:FIMG:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:FIMG:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:FIMG:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:FIMG:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:FIMG:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:FIMG:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:FIMG:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:FIMG:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:FIMG:AsynIO") +{ + field(PORT, "FSCN1.fimg") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +# # File data format +record(mbbo, "S03SIM-EA-FSCN-01:FIMG:FileFormat") +{ + field(ZRST, "Auto") + field(ZRVL, "0") +} + +# # File data format from driver +record(mbbi, "S03SIM-EA-FSCN-01:FIMG:FileFormat_RBV") +{ + field(ZRST, "Auto") + field(ZRVL, "0") +} + +record(bo, "S03SIM-EA-FSCN-01:FIMG:AutoSave") +{ + field(VAL, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-01:FIMG:FileWriteMode") +{ + field(VAL, "2") +} + +record(longout, "S03SIM-EA-FSCN-01:FIMG:NumCapture") +{ + field(VAL, "-1") +} + +# # FFMPEG Bitrate +record(ao, "S03SIM-EA-FSCN-01:FIMG:BITRATE") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.fimg 0)FFMPEG_BITRATE") + field(VAL, "10000000") + field(PINI, "YES") +} + +# # FFMPEG Bitrate from driver +record(ai, "S03SIM-EA-FSCN-01:FIMG:BITRATE_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.fimg 0)FFMPEG_BITRATE") +} + +# # FFMPEG Frames Per Second +record(ao, "S03SIM-EA-FSCN-01:FIMG:FPS") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg 0)FFMPEG_FPS") + field(VAL, "25") + field(PINI, "YES") +} + +# # FFMPEG Frames Per Second from driver +record(ai, "S03SIM-EA-FSCN-01:FIMG:FPS_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg 0)FFMPEG_FPS") +} + +# # FFMPEG Width +record(ao, "S03SIM-EA-FSCN-01:FIMG:WIDTH") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg 0)FFMPEG_WIDTH") + field(VAL, "640") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +# # FFMPEG Width from driver +record(ai, "S03SIM-EA-FSCN-01:FIMG:WIDTH_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg 0)FFMPEG_WIDTH") +} + +# # FFMPEG Height +record(ao, "S03SIM-EA-FSCN-01:FIMG:HEIGHT") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.fimg 0)FFMPEG_HEIGHT") + field(VAL, "480") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +# # FFMPEG Height from driver +record(ai, "S03SIM-EA-FSCN-01:FIMG:HEIGHT_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.fimg 0)FFMPEG_HEIGHT") +} +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % gui, FSCN2.fimg, edmtab, ffmpegFile.edl, P=S03SIM-EA-FSCN-02,R=:FIMG: + +# # \file +# # ffmpegFile wraps the ffmpeg compression libraries in an areaDetector plugin. +# # It works in much the same way as the other NDFile plugins. By default, it +# # will try to guess the file format from the file extension, but you can force +# # it to a particular file format with the FileFormat record. +# # \section ffmpegStream_setup Setup +# # - In the database, an instance of NDPluginBase is required, followed by an +# # instance of NDFile, then an instance of this template. +# # - In the startup scripts, call ffmpegFileConfigure() once per ffmpegStream +# # instance to setup the areadetector plugin +# # - see \ref build_instructions +# # \section ffmpegStream_screenshots Screenshots +# # \htmlinclude flashvideo.html +# # \image html ffmpegFileEdm.png "Edm screen for ffmpegFile" + +# This associates a BOY screen with the template +# % gui, FSCN2.fimg, boydetail,ffmpegServerApp_opi/fimg_detail.opi, P=S03SIM-EA-FSCN-02, R=:FIMG:, DESC=MPEG File +# % gui, FSCN2.fimg, boyembed, ffmpegServerApp_opi/fimg_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:FIMG:, DESC=MPEG File +# % gui, FSCN2.fimg, boyembed, ffmpegServerApp_opi/fimg_embed.opi, P=S03SIM-EA-FSCN-02, R=:FIMG:, DESC=MPEG File + +# Info +# % gui, FSCN2.fimg, groupHeading, Info +# % gui, FSCN2.fimg, readback, Port name, S03SIM-EA-FSCN-02:FIMG:PortName_RBV +# % gui, FSCN2.fimg, readback, Plugin type, S03SIM-EA-FSCN-02:FIMG:PluginType_RBV +# Input +# % gui, FSCN2.fimg, demandString, Input, S03SIM-EA-FSCN-02:FIMG:NDArrayPort +# % gui, FSCN2.fimg, readback, Input, S03SIM-EA-FSCN-02:FIMG:NDArrayPort_RBV + +# % gui, FSCN2.fimg, groupHeading, Callback +# % gui, FSCN2.fimg, enum, Callbacks, S03SIM-EA-FSCN-02:FIMG:EnableCallbacks +# % gui, FSCN2.fimg, statusbits, Callbacks, S03SIM-EA-FSCN-02:FIMG:EnableCallbacks_RBV +# % gui, FSCN2.fimg, demand, Min Callback Time, S03SIM-EA-FSCN-02:FIMG:MinCallbackTime +# % gui, FSCN2.fimg, readback, Min Callback Time, S03SIM-EA-FSCN-02:FIMG:MinCallbackTime_RBV +# % gui, FSCN2.fimg, enum, Block Callbacks, S03SIM-EA-FSCN-02:FIMG:BlockingCallbacks +# % gui, FSCN2.fimg, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:FIMG:BlockingCallbacks_RBV + +# % gui, FSCN2.fimg, groupHeading, Counters +# % gui, FSCN2.fimg, demand, Array Counter, S03SIM-EA-FSCN-02:FIMG:ArrayCounter +# % gui, FSCN2.fimg, readback, Array Counter, S03SIM-EA-FSCN-02:FIMG:ArrayCounter_RBV +# % gui, FSCN2.fimg, readback, Array Rate (fps), S03SIM-EA-FSCN-02:FIMG:ArrayRate_RBV +# % gui, FSCN2.fimg, readback, Queue Use, S03SIM-EA-FSCN-02:FIMG:QueueUse +# % gui, FSCN2.fimg, readback, Queue Size, S03SIM-EA-FSCN-02:FIMG:QueueSize +# % gui, FSCN2.fimg, demand, Dropped Arrays, S03SIM-EA-FSCN-02:FIMG:DroppedArrays +# % gui, FSCN2.fimg, readback, Dropped Arrays, S03SIM-EA-FSCN-02:FIMG:DroppedArrays_RBV + +# % gui, FSCN2.fimg, groupHeading, Array Settings +# % gui, FSCN2.fimg, readback, Num Dimensions, S03SIM-EA-FSCN-02:FIMG:NDimensions_RBV +# % gui, FSCN2.fimg, readback, Dim 0 Size, S03SIM-EA-FSCN-02:FIMG:ArraySize0_RBV +# % gui, FSCN2.fimg, readback, Dim 1 Size, S03SIM-EA-FSCN-02:FIMG:ArraySize1_RBV +# % gui, FSCN2.fimg, readback, Dim 2 Size, S03SIM-EA-FSCN-02:FIMG:ArraySize2_RBV +# % gui, FSCN2.fimg, readback, Input Data Type, S03SIM-EA-FSCN-02:FIMG:DataType_RBV +# % gui, FSCN2.fimg, readback, Colour Mode, S03SIM-EA-FSCN-02:FIMG:ColorMode_RBV +# % gui, FSCN2.fimg, readback, Bayer Pattern, S03SIM-EA-FSCN-02:FIMG:BayerPattern_RBV +# % gui, FSCN2.fimg, readback, Unique id, S03SIM-EA-FSCN-02:FIMG:UniqueId_RBV +# % gui, FSCN2.fimg, readback, Timestamp, S03SIM-EA-FSCN-02:FIMG:TimeStamp_RBV + +# File +# % gui, FSCN2.fimg, groupHeading, File +# % gui, FSCN2.fimg, demandString, File Path, S03SIM-EA-FSCN-02:FIMG:FilePath +# % gui, FSCN2.fimg, readback, File Path, S03SIM-EA-FSCN-02:FIMG:FilePath_RBV +# % gui, FSCN2.fimg, statusbits, File Path Exists, S03SIM-EA-FSCN-02:FIMG:FilePathExists_RBV +# % gui, FSCN2.fimg, demand, File Name, S03SIM-EA-FSCN-02:FIMG:FileName +# % gui, FSCN2.fimg, readback, File Name, S03SIM-EA-FSCN-02:FIMG:FileName_RBV +# % gui, FSCN2.fimg, demand, File Number, S03SIM-EA-FSCN-02:FIMG:FileNumber +# % gui, FSCN2.fimg, readback, File Number, S03SIM-EA-FSCN-02:FIMG:FileNumber_RBV +# % gui, FSCN2.fimg, enum, Auto Increment, S03SIM-EA-FSCN-02:FIMG:AutoIncrement +# % gui, FSCN2.fimg, statusbits, Auto Increment, S03SIM-EA-FSCN-02:FIMG:AutoIncrement_RBV +# % gui, FSCN2.fimg, demand, File Format, S03SIM-EA-FSCN-02:FIMG:FileTemplate +# % gui, FSCN2.fimg, readback, File Format, S03SIM-EA-FSCN-02:FIMG:FileTemplate_RBV +# % gui, FSCN2.fimg, demand, N to Capture, S03SIM-EA-FSCN-02:FIMG:NumCapture +# % gui, FSCN2.fimg, readback, N to Capture, S03SIM-EA-FSCN-02:FIMG:NumCapture_RBV +# % gui, FSCN2.fimg, readback, N Captured, S03SIM-EA-FSCN-02:FIMG:NumCaptured_RBV +# % gui, FSCN2.fimg, enum, Auto Save, S03SIM-EA-FSCN-02:FIMG:AutoSave +# % gui, FSCN2.fimg, statusbits, Auto Save , S03SIM-EA-FSCN-02:FIMG:AutoSave_RBV +# % gui, FSCN2.fimg, enum, Capture mode, S03SIM-EA-FSCN-02:FIMG:FileWriteMode +# % gui, FSCN2.fimg, readback, Capture mode, S03SIM-EA-FSCN-02:FIMG:FileWriteMode_RBV +# % gui, FSCN2.fimg, enum, Capture, S03SIM-EA-FSCN-02:FIMG:Capture +# % gui, FSCN2.fimg, readback, Capture, S03SIM-EA-FSCN-02:FIMG:Capture_RBV +# % gui, FSCN2.fimg, readback, Write Message, S03SIM-EA-FSCN-02:FIMG:WriteMessage +# % gui, FSCN2.fimg, readback, Write Status, S03SIM-EA-FSCN-02:FIMG:WriteStatus +# % gui, FSCN2.fimg, readback, Write Filename, S03SIM-EA-FSCN-02:FIMG:FullFileName_RBV +# % gui, FSCN2.fimg, enum, Lazy Open, S03SIM-EA-FSCN-02:FIMG:LazyOpen +# % gui, FSCN2.fimg, readback, Lazy Open, S03SIM-EA-FSCN-02:FIMG:LazyOpen_RBV +# % gui, FSCN2.fimg, demand, Temporary Suffix, S03SIM-EA-FSCN-02:FIMG:TempSuffix +# % gui, FSCN2.fimg, readback, Temporary Suffix, S03SIM-EA-FSCN-02:FIMG:TempSuffix_RBV +# % gui, FSCN2.fimg, demand, Create Directories, S03SIM-EA-FSCN-02:FIMG:CreateDirectory +# % gui, FSCN2.fimg, readback, Create Directories, S03SIM-EA-FSCN-02:FIMG:CreateDirectory_RBV + +# Video +# % gui, FSCN2.fimg, groupHeading, Video Settings +# % gui, FSCN2.fimg, demand, Bit Rate, S03SIM-EA-FSCN-02:FIMG:BITRATE +# % gui, FSCN2.fimg, readback, Bit Rate, S03SIM-EA-FSCN-02:FIMG:BITRATE_RBV +# % gui, FSCN2.fimg, demand, Frame Rate, S03SIM-EA-FSCN-02:FIMG:FPS +# % gui, FSCN2.fimg, readback, Frame Rate, S03SIM-EA-FSCN-02:FIMG:FPS_RBV +# % gui, FSCN2.fimg, demand, Width, S03SIM-EA-FSCN-02:FIMG:WIDTH +# % gui, FSCN2.fimg, readback, Width, S03SIM-EA-FSCN-02:FIMG:WIDTH_RBV +# % gui, FSCN2.fimg, demand, Height, S03SIM-EA-FSCN-02:FIMG:HEIGHT +# % gui, FSCN2.fimg, readback, Height, S03SIM-EA-FSCN-02:FIMG:HEIGHT_RBV +# Memory +# % gui, FSCN2.fimg, groupHeading, Memory +# % gui, FSCN2.fimg, readback, Max memory, S03SIM-EA-FSCN-02:FIMG:PoolMaxMem +# % gui, FSCN2.fimg, readback, Max buffers, S03SIM-EA-FSCN-02:FIMG:PoolMaxBuffers +# % gui, FSCN2.fimg, readback, Used memory, S03SIM-EA-FSCN-02:FIMG:PoolUsedMem +# % gui, FSCN2.fimg, readback, Allocated buffers, S03SIM-EA-FSCN-02:FIMG:PoolAllocBuffers +# % gui, FSCN2.fimg, readback, Free buffers, S03SIM-EA-FSCN-02:FIMG:PoolFreeBuffers + +#=================================================================# +# Template file: NDFile.template +# Database for NDFile driver, which saves files for NDArray data. +# Mark Rivers +# April 7, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +################################################################### +# These records control file I/O # +################################################################### + +# File path. +record(waveform, "S03SIM-EA-FSCN-02:FIMG:FilePath") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.fimg,0,1)FILE_PATH") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-02:FIMG:FilePath_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.fimg,0,1)FILE_PATH") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-02:FIMG:FilePathExists_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)FILE_PATH_EXISTS") + field(ZNAM, "No") + field(ZSV, "MAJOR") + field(ONAM, "Yes") + field(OSV, "NO_ALARM") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:FIMG:CreateDirectory") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)CREATE_DIR") + field(VAL, "0" ) + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:CreateDirectory_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)CREATE_DIR") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +# Filename +record(waveform, "S03SIM-EA-FSCN-02:FIMG:FileName") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.fimg,0,1)FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-02:FIMG:FileName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.fimg,0,1)FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:FIMG:FileNumber") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)FILE_NUMBER") + field(VAL, "1") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:FileNumber_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)FILE_NUMBER") + field(SCAN, "I/O Intr") +} + +# Autoincrement flag +record(bo, "S03SIM-EA-FSCN-02:FIMG:AutoIncrement") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)AUTO_INCREMENT") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:FIMG:AutoIncrement_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)AUTO_INCREMENT") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# File template +record(waveform, "S03SIM-EA-FSCN-02:FIMG:FileTemplate") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.fimg,0,1)FILE_TEMPLATE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-02:FIMG:FileTemplate_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.fimg,0,1)FILE_TEMPLATE") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +# Full filename, including path +record(waveform, "S03SIM-EA-FSCN-02:FIMG:FullFileName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.fimg,0,1)FULL_FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "512") + field(SCAN, "I/O Intr") +} + +# Autosave flag +record(bo, "S03SIM-EA-FSCN-02:FIMG:AutoSave") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)AUTO_SAVE") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:FIMG:AutoSave_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)AUTO_SAVE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# Write file +record(ai, "S03SIM-EA-FSCN-02:FIMG:WriteFile") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)WRITE_FILE") + field(ZNAM, "Done") + field(ONAM, "Write") +} + +record(bi, "S03SIM-EA-FSCN-02:FIMG:WriteFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)WRITE_FILE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Writing") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +# Read file +record(ai, "S03SIM-EA-FSCN-02:FIMG:ReadFile") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)READ_FILE") + field(ZNAM, "Done") + field(ONAM, "Read") +} + +record(bi, "S03SIM-EA-FSCN-02:FIMG:ReadFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)READ_FILE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Reading") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +# File data format +record(mbbo, "S03SIM-EA-FSCN-02:FIMG:FileFormat") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)FILE_FORMAT") + field(VAL, "0") + field(ZRST, "Undefined") + field(ZRVL, "0") + field(ONST, "Invalid") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:FIMG:FileFormat_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)FILE_FORMAT") + field(ZRST, "netCDF") + field(ZRVL, "0") + field(ONST, "Undefined") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +# File save mode +record(mbbo, "S03SIM-EA-FSCN-02:FIMG:FileWriteMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)WRITE_MODE") + field(VAL, "0") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Capture") + field(ONVL, "1") + field(TWST, "Stream") + field(TWVL, "2") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:FIMG:FileWriteMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)WRITE_MODE") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Capture") + field(ONVL, "1") + field(TWST, "Stream") + field(TWVL, "2") + field(SCAN, "I/O Intr") +} + +# Capture data +record(ai, "S03SIM-EA-FSCN-02:FIMG:Capture") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)CAPTURE") + field(ZNAM, "Done") + field(ONAM, "Capture") +} + +record(bi, "S03SIM-EA-FSCN-02:FIMG:Capture_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)CAPTURE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Capturing") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:FIMG:NumCapture") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)NUM_CAPTURE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:NumCapture_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)NUM_CAPTURE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:NumCaptured_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)NUM_CAPTURED") + field(SCAN, "I/O Intr") +} + +# Delete driver file flag +record(bo, "S03SIM-EA-FSCN-02:FIMG:DeleteDriverFile") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)DELETE_DRIVER_FILE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:FIMG:DeleteDriverFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)DELETE_DRIVER_FILE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-02:FIMG:WriteStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)WRITE_STATUS") + field(ZNAM, "Write OK") + field(ZSV, "NO_ALARM") + field(ONAM, "Write error") + field(OSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:FIMG:WriteMessage") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.fimg,0,1)WRITE_MESSAGE") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:FIMG:LazyOpen") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)FILE_LAZY_OPEN") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:FIMG:LazyOpen_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)FILE_LAZY_OPEN") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:FIMG:TempSuffix") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.fimg,0,1)FILE_TEMP_SUFFIX") + field(VAL, "") +} + +record(stringin, "S03SIM-EA-FSCN-02:FIMG:TempSuffix_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.fimg,0,1)FILE_TEMP_SUFFIX") + field(VAL, "") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:FIMG:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.fimg,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:FIMG:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.fimg,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:FIMG:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.fimg,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:FIMG:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.fimg,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:FIMG:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.fimg,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:FIMG:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.fimg,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:FIMG:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.fimg,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:FIMG:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.fimg,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:FIMG:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:FIMG:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:FIMG:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:FIMG:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:FIMG:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:FIMG:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:FIMG:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:FIMG:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:FIMG:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:FIMG:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:FIMG:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:FIMG:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:FIMG:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.fimg,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.fimg,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:FIMG:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:FIMG:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.fimg,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:FIMG:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:FIMG:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:FIMG:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:FIMG:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:FIMG:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:FIMG:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.fimg,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:FIMG:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:FIMG:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:FIMG:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:FIMG:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:FIMG:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:FIMG:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:FIMG:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:FIMG:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.fimg,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:FIMG:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.fimg,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:FIMG:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:FIMG:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.fimg,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:FIMG:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.fimg,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:FIMG:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:FIMG:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:FIMG:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:FIMG:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:FIMG:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.fimg,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:FIMG:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.fimg,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:FIMG:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.fimg,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:FIMG:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:FIMG:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:FIMG:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:FIMG:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.fimg,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:FIMG:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.fimg,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:FIMG:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:FIMG:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:FIMG:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:FIMG:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:FIMG:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:FIMG:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:FIMG:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:FIMG:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.fimg,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:FIMG:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.fimg,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:FIMG:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.fimg,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:FIMG:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:FIMG:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:FIMG:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:FIMG:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:FIMG:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:FIMG:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:FIMG:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:FIMG:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:FIMG:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:FIMG:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:FIMG:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:FIMG:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:FIMG:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:FIMG:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:FIMG:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:FIMG:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:FIMG:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:FIMG:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:FIMG:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:FIMG:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:FIMG:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.fimg,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:FIMG:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.fimg,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:FIMG:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:FIMG:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:FIMG:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:FIMG:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:FIMG:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:FIMG:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:FIMG:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:FIMG:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:FIMG:AsynIO") +{ + field(PORT, "FSCN2.fimg") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +# # File data format +record(mbbo, "S03SIM-EA-FSCN-02:FIMG:FileFormat") +{ + field(ZRST, "Auto") + field(ZRVL, "0") +} + +# # File data format from driver +record(mbbi, "S03SIM-EA-FSCN-02:FIMG:FileFormat_RBV") +{ + field(ZRST, "Auto") + field(ZRVL, "0") +} + +record(bo, "S03SIM-EA-FSCN-02:FIMG:AutoSave") +{ + field(VAL, "0") +} + +record(mbbo, "S03SIM-EA-FSCN-02:FIMG:FileWriteMode") +{ + field(VAL, "2") +} + +record(longout, "S03SIM-EA-FSCN-02:FIMG:NumCapture") +{ + field(VAL, "-1") +} + +# # FFMPEG Bitrate +record(ao, "S03SIM-EA-FSCN-02:FIMG:BITRATE") { + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.fimg 0)FFMPEG_BITRATE") + field(VAL, "10000000") + field(PINI, "YES") +} + +# # FFMPEG Bitrate from driver +record(ai, "S03SIM-EA-FSCN-02:FIMG:BITRATE_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.fimg 0)FFMPEG_BITRATE") +} + +# # FFMPEG Frames Per Second +record(ao, "S03SIM-EA-FSCN-02:FIMG:FPS") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg 0)FFMPEG_FPS") + field(VAL, "25") + field(PINI, "YES") +} + +# # FFMPEG Frames Per Second from driver +record(ai, "S03SIM-EA-FSCN-02:FIMG:FPS_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg 0)FFMPEG_FPS") +} + +# # FFMPEG Width +record(ao, "S03SIM-EA-FSCN-02:FIMG:WIDTH") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg 0)FFMPEG_WIDTH") + field(VAL, "640") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +# # FFMPEG Width from driver +record(ai, "S03SIM-EA-FSCN-02:FIMG:WIDTH_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg 0)FFMPEG_WIDTH") +} + +# # FFMPEG Height +record(ao, "S03SIM-EA-FSCN-02:FIMG:HEIGHT") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.fimg 0)FFMPEG_HEIGHT") + field(VAL, "480") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +# # FFMPEG Height from driver +record(ai, "S03SIM-EA-FSCN-02:FIMG:HEIGHT_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.fimg 0)FFMPEG_HEIGHT") +} +#=================================================================# +# Template file: NDFileTIFF.template +# Database for NDFileTIFF driver, which saves NDArray data +# in the TIFF file format +# Mark Rivers +# May 10, 2009 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name + +# This associates the template with an edm screen +# % gui, OAV.tiff, edmtab, NDFileTIFF.edl, P=S03SIM-DI-OAV-01,R=:TIFF: + +# This associates a BOY screen with the template +# % gui, OAV.tiff, boydetail,ADApp_opi/dls/tiff_detail.opi, P=S03SIM-DI-OAV-01, R=:TIFF:, DESC=TIFF File +# % gui, OAV.tiff, boyembed, ADApp_opi/dls/tiff_embed_box.opi, P=S03SIM-DI-OAV-01, R=:TIFF:, DESC=TIFF File +# % gui, OAV.tiff, boyembed, ADApp_opi/dls/tiff_embed.opi, P=S03SIM-DI-OAV-01, R=:TIFF:, DESC=TIFF File + +# Info +# % gui, OAV.tiff, groupHeading, Info +# % gui, OAV.tiff, readback, Port name, S03SIM-DI-OAV-01:TIFF:PortName_RBV +# % gui, OAV.tiff, readback, Plugin type, S03SIM-DI-OAV-01:TIFF:PluginType_RBV +# Input +# % gui, OAV.tiff, demandString, Input, S03SIM-DI-OAV-01:TIFF:NDArrayPort +# % gui, OAV.tiff, readback, Input, S03SIM-DI-OAV-01:TIFF:NDArrayPort_RBV + +# % gui, OAV.tiff, groupHeading, Callback +# % gui, OAV.tiff, enum, Callbacks, S03SIM-DI-OAV-01:TIFF:EnableCallbacks +# % gui, OAV.tiff, statusbits, Callbacks, S03SIM-DI-OAV-01:TIFF:EnableCallbacks_RBV +# % gui, OAV.tiff, demand, Min Callback Time, S03SIM-DI-OAV-01:TIFF:MinCallbackTime +# % gui, OAV.tiff, readback, Min Callback Time, S03SIM-DI-OAV-01:TIFF:MinCallbackTime_RBV +# % gui, OAV.tiff, enum, Block Callbacks, S03SIM-DI-OAV-01:TIFF:BlockingCallbacks +# % gui, OAV.tiff, statusbits, Block Callbacks, S03SIM-DI-OAV-01:TIFF:BlockingCallbacks_RBV + +# % gui, OAV.tiff, groupHeading, Counters +# % gui, OAV.tiff, demand, Array Counter, S03SIM-DI-OAV-01:TIFF:ArrayCounter +# % gui, OAV.tiff, readback, Array Counter, S03SIM-DI-OAV-01:TIFF:ArrayCounter_RBV +# % gui, OAV.tiff, readback, Array Rate (fps), S03SIM-DI-OAV-01:TIFF:ArrayRate_RBV +# % gui, OAV.tiff, readback, Queue Use, S03SIM-DI-OAV-01:TIFF:QueueUse +# % gui, OAV.tiff, readback, Queue Size, S03SIM-DI-OAV-01:TIFF:QueueSize +# % gui, OAV.tiff, demand, Dropped Arrays, S03SIM-DI-OAV-01:TIFF:DroppedArrays +# % gui, OAV.tiff, readback, Dropped Arrays, S03SIM-DI-OAV-01:TIFF:DroppedArrays_RBV + +# % gui, OAV.tiff, groupHeading, Array Settings +# % gui, OAV.tiff, readback, Num Dimensions, S03SIM-DI-OAV-01:TIFF:NDimensions_RBV +# % gui, OAV.tiff, readback, Dim 0 Size, S03SIM-DI-OAV-01:TIFF:ArraySize0_RBV +# % gui, OAV.tiff, readback, Dim 1 Size, S03SIM-DI-OAV-01:TIFF:ArraySize1_RBV +# % gui, OAV.tiff, readback, Dim 2 Size, S03SIM-DI-OAV-01:TIFF:ArraySize2_RBV +# % gui, OAV.tiff, readback, Input Data Type, S03SIM-DI-OAV-01:TIFF:DataType_RBV +# % gui, OAV.tiff, readback, Colour Mode, S03SIM-DI-OAV-01:TIFF:ColorMode_RBV +# % gui, OAV.tiff, readback, Bayer Pattern, S03SIM-DI-OAV-01:TIFF:BayerPattern_RBV +# % gui, OAV.tiff, readback, Unique id, S03SIM-DI-OAV-01:TIFF:UniqueId_RBV +# % gui, OAV.tiff, readback, Timestamp, S03SIM-DI-OAV-01:TIFF:TimeStamp_RBV +# File +# % gui, OAV.tiff, groupHeading, File +# % gui, OAV.tiff, demandString, File Path, S03SIM-DI-OAV-01:TIFF:FilePath +# % gui, OAV.tiff, readback, File Path, S03SIM-DI-OAV-01:TIFF:FilePath_RBV +# % gui, OAV.tiff, statusbits, File Path Exists, S03SIM-DI-OAV-01:TIFF:FilePathExists_RBV +# % gui, OAV.tiff, demand, File Name, S03SIM-DI-OAV-01:TIFF:FileName +# % gui, OAV.tiff, readback, File Name, S03SIM-DI-OAV-01:TIFF:FileName_RBV +# % gui, OAV.tiff, demand, File Number, S03SIM-DI-OAV-01:TIFF:FileNumber +# % gui, OAV.tiff, readback, File Number, S03SIM-DI-OAV-01:TIFF:FileNumber_RBV +# % gui, OAV.tiff, enum, Auto Increment, S03SIM-DI-OAV-01:TIFF:AutoIncrement +# % gui, OAV.tiff, statusbits, Auto Increment, S03SIM-DI-OAV-01:TIFF:AutoIncrement_RBV +# % gui, OAV.tiff, demand, File Format, S03SIM-DI-OAV-01:TIFF:FileTemplate +# % gui, OAV.tiff, readback, File Format, S03SIM-DI-OAV-01:TIFF:FileTemplate_RBV +# % gui, OAV.tiff, demand, N to Capture, S03SIM-DI-OAV-01:TIFF:NumCapture +# % gui, OAV.tiff, readback, N to Capture, S03SIM-DI-OAV-01:TIFF:NumCapture_RBV +# % gui, OAV.tiff, readback, N Captured, S03SIM-DI-OAV-01:TIFF:NumCaptured_RBV +# % gui, OAV.tiff, enum, Auto Save, S03SIM-DI-OAV-01:TIFF:AutoSave +# % gui, OAV.tiff, statusbits, Auto Save , S03SIM-DI-OAV-01:TIFF:AutoSave_RBV +# % gui, OAV.tiff, enum, Capture mode, S03SIM-DI-OAV-01:TIFF:FileWriteMode +# % gui, OAV.tiff, readback, Capture mode, S03SIM-DI-OAV-01:TIFF:FileWriteMode_RBV +# % gui, OAV.tiff, enum, Capture, S03SIM-DI-OAV-01:TIFF:Capture +# % gui, OAV.tiff, readback, Capture, S03SIM-DI-OAV-01:TIFF:Capture_RBV +# % gui, OAV.tiff, readback, Write Message, S03SIM-DI-OAV-01:TIFF:WriteMessage +# % gui, OAV.tiff, readback, Write Status, S03SIM-DI-OAV-01:TIFF:WriteStatus +# % gui, OAV.tiff, readback, Write Filename, S03SIM-DI-OAV-01:TIFF:FullFileName_RBV +# % gui, OAV.tiff, enum, Lazy Open, S03SIM-DI-OAV-01:TIFF:LazyOpen +# % gui, OAV.tiff, readback, Lazy Open, S03SIM-DI-OAV-01:TIFF:LazyOpen_RBV +# % gui, OAV.tiff, demand, Temporary Suffix, S03SIM-DI-OAV-01:TIFF:TempSuffix +# % gui, OAV.tiff, readback, Temporary Suffix, S03SIM-DI-OAV-01:TIFF:TempSuffix_RBV +# % gui, OAV.tiff, demand, Create Directories, S03SIM-DI-OAV-01:TIFF:CreateDirectory +# % gui, OAV.tiff, readback, Create Directories, S03SIM-DI-OAV-01:TIFF:CreateDirectory_RBV +# Memory +# % gui, OAV.tiff, groupHeading, Memory +# % gui, OAV.tiff, readback, Max memory, S03SIM-DI-OAV-01:TIFF:PoolMaxMem +# % gui, OAV.tiff, readback, Max buffers, S03SIM-DI-OAV-01:TIFF:PoolMaxBuffers +# % gui, OAV.tiff, readback, Used memory, S03SIM-DI-OAV-01:TIFF:PoolUsedMem +# % gui, OAV.tiff, readback, Allocated buffers, S03SIM-DI-OAV-01:TIFF:PoolAllocBuffers +# % gui, OAV.tiff, readback, Free buffers, S03SIM-DI-OAV-01:TIFF:PoolFreeBuffers +#=================================================================# +# Template file: NDFile.template +# Database for NDFile driver, which saves files for NDArray data. +# Mark Rivers +# April 7, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +################################################################### +# These records control file I/O # +################################################################### + +# File path. +record(waveform, "S03SIM-DI-OAV-01:TIFF:FilePath") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.tiff,0,1)FILE_PATH") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-DI-OAV-01:TIFF:FilePath_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.tiff,0,1)FILE_PATH") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-DI-OAV-01:TIFF:FilePathExists_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)FILE_PATH_EXISTS") + field(ZNAM, "No") + field(ZSV, "MAJOR") + field(ONAM, "Yes") + field(OSV, "NO_ALARM") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:TIFF:CreateDirectory") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)CREATE_DIR") + field(VAL, "0" ) + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:CreateDirectory_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)CREATE_DIR") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +# Filename +record(waveform, "S03SIM-DI-OAV-01:TIFF:FileName") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.tiff,0,1)FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-DI-OAV-01:TIFF:FileName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.tiff,0,1)FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:TIFF:FileNumber") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)FILE_NUMBER") + field(VAL, "1") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:FileNumber_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)FILE_NUMBER") + field(SCAN, "I/O Intr") +} + +# Autoincrement flag +record(bo, "S03SIM-DI-OAV-01:TIFF:AutoIncrement") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)AUTO_INCREMENT") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:TIFF:AutoIncrement_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)AUTO_INCREMENT") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# File template +record(waveform, "S03SIM-DI-OAV-01:TIFF:FileTemplate") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.tiff,0,1)FILE_TEMPLATE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-DI-OAV-01:TIFF:FileTemplate_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.tiff,0,1)FILE_TEMPLATE") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +# Full filename, including path +record(waveform, "S03SIM-DI-OAV-01:TIFF:FullFileName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.tiff,0,1)FULL_FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "512") + field(SCAN, "I/O Intr") +} + +# Autosave flag +record(bo, "S03SIM-DI-OAV-01:TIFF:AutoSave") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)AUTO_SAVE") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:TIFF:AutoSave_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)AUTO_SAVE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# Write file +record(ai, "S03SIM-DI-OAV-01:TIFF:WriteFile") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)WRITE_FILE") + field(ZNAM, "Done") + field(ONAM, "Write") +} + +record(bi, "S03SIM-DI-OAV-01:TIFF:WriteFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)WRITE_FILE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Writing") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +# Read file +record(ai, "S03SIM-DI-OAV-01:TIFF:ReadFile") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)READ_FILE") + field(ZNAM, "Done") + field(ONAM, "Read") +} + +record(bi, "S03SIM-DI-OAV-01:TIFF:ReadFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)READ_FILE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Reading") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +# File data format +record(mbbo, "S03SIM-DI-OAV-01:TIFF:FileFormat") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)FILE_FORMAT") + field(VAL, "0") + field(ZRST, "Undefined") + field(ZRVL, "0") + field(ONST, "Invalid") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:TIFF:FileFormat_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)FILE_FORMAT") + field(ZRST, "netCDF") + field(ZRVL, "0") + field(ONST, "Undefined") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +# File save mode +record(mbbo, "S03SIM-DI-OAV-01:TIFF:FileWriteMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)WRITE_MODE") + field(VAL, "0") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Capture") + field(ONVL, "1") + field(TWST, "Stream") + field(TWVL, "2") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:TIFF:FileWriteMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)WRITE_MODE") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Capture") + field(ONVL, "1") + field(TWST, "Stream") + field(TWVL, "2") + field(SCAN, "I/O Intr") +} + +# Capture data +record(ai, "S03SIM-DI-OAV-01:TIFF:Capture") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)CAPTURE") + field(ZNAM, "Done") + field(ONAM, "Capture") +} + +record(bi, "S03SIM-DI-OAV-01:TIFF:Capture_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)CAPTURE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Capturing") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:TIFF:NumCapture") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)NUM_CAPTURE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:NumCapture_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)NUM_CAPTURE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:NumCaptured_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)NUM_CAPTURED") + field(SCAN, "I/O Intr") +} + +# Delete driver file flag +record(bo, "S03SIM-DI-OAV-01:TIFF:DeleteDriverFile") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)DELETE_DRIVER_FILE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:TIFF:DeleteDriverFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)DELETE_DRIVER_FILE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-DI-OAV-01:TIFF:WriteStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)WRITE_STATUS") + field(ZNAM, "Write OK") + field(ZSV, "NO_ALARM") + field(ONAM, "Write error") + field(OSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:TIFF:WriteMessage") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.tiff,0,1)WRITE_MESSAGE") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:TIFF:LazyOpen") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)FILE_LAZY_OPEN") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:TIFF:LazyOpen_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)FILE_LAZY_OPEN") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:TIFF:TempSuffix") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.tiff,0,1)FILE_TEMP_SUFFIX") + field(VAL, "") +} + +record(stringin, "S03SIM-DI-OAV-01:TIFF:TempSuffix_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.tiff,0,1)FILE_TEMP_SUFFIX") + field(VAL, "") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:TIFF:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.tiff,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:TIFF:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.tiff,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:TIFF:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.tiff,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:TIFF:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.tiff,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:TIFF:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.tiff,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:TIFF:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.tiff,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:TIFF:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.tiff,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:TIFF:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.tiff,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:TIFF:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:TIFF:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:TIFF:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:TIFF:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:TIFF:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:TIFF:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:TIFF:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:TIFF:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:TIFF:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:TIFF:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:TIFF:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:TIFF:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:TIFF:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.tiff,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.tiff,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:TIFF:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:TIFF:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:TIFF:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.tiff,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:TIFF:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:TIFF:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:TIFF:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:TIFF:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:TIFF:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:TIFF:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.tiff,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:TIFF:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:TIFF:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:TIFF:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:TIFF:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:TIFF:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:TIFF:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:TIFF:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:TIFF:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.tiff,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:TIFF:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.tiff,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:TIFF:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:TIFF:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.tiff,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:TIFF:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.tiff,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:TIFF:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:TIFF:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:TIFF:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:TIFF:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:TIFF:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.tiff,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:TIFF:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.tiff,0,1)NDARRAY_PORT") + field(VAL, "OAV.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:TIFF:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.tiff,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:TIFF:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:TIFF:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:TIFF:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:TIFF:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.tiff,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:TIFF:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.tiff,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:TIFF:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:TIFF:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:TIFF:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:TIFF:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:TIFF:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:TIFF:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:TIFF:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:TIFF:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.tiff,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:TIFF:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.tiff,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:TIFF:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.tiff,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:TIFF:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:TIFF:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:TIFF:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:TIFF:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:TIFF:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:TIFF:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:TIFF:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:TIFF:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:TIFF:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:TIFF:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:TIFF:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:TIFF:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:TIFF:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:TIFF:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:TIFF:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:TIFF:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:TIFF:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:TIFF:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:TIFF:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:TIFF:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:TIFF:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.tiff,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:TIFF:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.tiff,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:TIFF:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:TIFF:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:TIFF:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:TIFF:SortSize") + field(OUT, "S03SIM-DI-OAV-01:TIFF:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:TIFF:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:TIFF:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.tiff,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:TIFF:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.tiff,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:TIFF:AsynIO") +{ + field(PORT, "OAV.tiff") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +# We replace some fields in records defined in NDFile.template +# File data format +record(mbbo, "S03SIM-DI-OAV-01:TIFF:FileFormat") +{ + field(ZRST, "TIFF") + field(ZRVL, "0") + field(ONST, "Invalid") + field(ONVL, "1") +} + +record(mbbi, "S03SIM-DI-OAV-01:TIFF:FileFormat_RBV") +{ + field(ZRST, "TIFF") + field(ZRVL, "0") + field(ONST, "Undefined") + field(ONVL, "1") +} + +#=================================================================# +# Template file: NDFileTIFF.template +# Database for NDFileTIFF driver, which saves NDArray data +# in the TIFF file format +# Mark Rivers +# May 10, 2009 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name + +# This associates the template with an edm screen +# % gui, FSCN1.tiff, edmtab, NDFileTIFF.edl, P=S03SIM-EA-FSCN-01,R=:TIFF: + +# This associates a BOY screen with the template +# % gui, FSCN1.tiff, boydetail,ADApp_opi/dls/tiff_detail.opi, P=S03SIM-EA-FSCN-01, R=:TIFF:, DESC=TIFF File +# % gui, FSCN1.tiff, boyembed, ADApp_opi/dls/tiff_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:TIFF:, DESC=TIFF File +# % gui, FSCN1.tiff, boyembed, ADApp_opi/dls/tiff_embed.opi, P=S03SIM-EA-FSCN-01, R=:TIFF:, DESC=TIFF File + +# Info +# % gui, FSCN1.tiff, groupHeading, Info +# % gui, FSCN1.tiff, readback, Port name, S03SIM-EA-FSCN-01:TIFF:PortName_RBV +# % gui, FSCN1.tiff, readback, Plugin type, S03SIM-EA-FSCN-01:TIFF:PluginType_RBV +# Input +# % gui, FSCN1.tiff, demandString, Input, S03SIM-EA-FSCN-01:TIFF:NDArrayPort +# % gui, FSCN1.tiff, readback, Input, S03SIM-EA-FSCN-01:TIFF:NDArrayPort_RBV + +# % gui, FSCN1.tiff, groupHeading, Callback +# % gui, FSCN1.tiff, enum, Callbacks, S03SIM-EA-FSCN-01:TIFF:EnableCallbacks +# % gui, FSCN1.tiff, statusbits, Callbacks, S03SIM-EA-FSCN-01:TIFF:EnableCallbacks_RBV +# % gui, FSCN1.tiff, demand, Min Callback Time, S03SIM-EA-FSCN-01:TIFF:MinCallbackTime +# % gui, FSCN1.tiff, readback, Min Callback Time, S03SIM-EA-FSCN-01:TIFF:MinCallbackTime_RBV +# % gui, FSCN1.tiff, enum, Block Callbacks, S03SIM-EA-FSCN-01:TIFF:BlockingCallbacks +# % gui, FSCN1.tiff, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:TIFF:BlockingCallbacks_RBV + +# % gui, FSCN1.tiff, groupHeading, Counters +# % gui, FSCN1.tiff, demand, Array Counter, S03SIM-EA-FSCN-01:TIFF:ArrayCounter +# % gui, FSCN1.tiff, readback, Array Counter, S03SIM-EA-FSCN-01:TIFF:ArrayCounter_RBV +# % gui, FSCN1.tiff, readback, Array Rate (fps), S03SIM-EA-FSCN-01:TIFF:ArrayRate_RBV +# % gui, FSCN1.tiff, readback, Queue Use, S03SIM-EA-FSCN-01:TIFF:QueueUse +# % gui, FSCN1.tiff, readback, Queue Size, S03SIM-EA-FSCN-01:TIFF:QueueSize +# % gui, FSCN1.tiff, demand, Dropped Arrays, S03SIM-EA-FSCN-01:TIFF:DroppedArrays +# % gui, FSCN1.tiff, readback, Dropped Arrays, S03SIM-EA-FSCN-01:TIFF:DroppedArrays_RBV + +# % gui, FSCN1.tiff, groupHeading, Array Settings +# % gui, FSCN1.tiff, readback, Num Dimensions, S03SIM-EA-FSCN-01:TIFF:NDimensions_RBV +# % gui, FSCN1.tiff, readback, Dim 0 Size, S03SIM-EA-FSCN-01:TIFF:ArraySize0_RBV +# % gui, FSCN1.tiff, readback, Dim 1 Size, S03SIM-EA-FSCN-01:TIFF:ArraySize1_RBV +# % gui, FSCN1.tiff, readback, Dim 2 Size, S03SIM-EA-FSCN-01:TIFF:ArraySize2_RBV +# % gui, FSCN1.tiff, readback, Input Data Type, S03SIM-EA-FSCN-01:TIFF:DataType_RBV +# % gui, FSCN1.tiff, readback, Colour Mode, S03SIM-EA-FSCN-01:TIFF:ColorMode_RBV +# % gui, FSCN1.tiff, readback, Bayer Pattern, S03SIM-EA-FSCN-01:TIFF:BayerPattern_RBV +# % gui, FSCN1.tiff, readback, Unique id, S03SIM-EA-FSCN-01:TIFF:UniqueId_RBV +# % gui, FSCN1.tiff, readback, Timestamp, S03SIM-EA-FSCN-01:TIFF:TimeStamp_RBV +# File +# % gui, FSCN1.tiff, groupHeading, File +# % gui, FSCN1.tiff, demandString, File Path, S03SIM-EA-FSCN-01:TIFF:FilePath +# % gui, FSCN1.tiff, readback, File Path, S03SIM-EA-FSCN-01:TIFF:FilePath_RBV +# % gui, FSCN1.tiff, statusbits, File Path Exists, S03SIM-EA-FSCN-01:TIFF:FilePathExists_RBV +# % gui, FSCN1.tiff, demand, File Name, S03SIM-EA-FSCN-01:TIFF:FileName +# % gui, FSCN1.tiff, readback, File Name, S03SIM-EA-FSCN-01:TIFF:FileName_RBV +# % gui, FSCN1.tiff, demand, File Number, S03SIM-EA-FSCN-01:TIFF:FileNumber +# % gui, FSCN1.tiff, readback, File Number, S03SIM-EA-FSCN-01:TIFF:FileNumber_RBV +# % gui, FSCN1.tiff, enum, Auto Increment, S03SIM-EA-FSCN-01:TIFF:AutoIncrement +# % gui, FSCN1.tiff, statusbits, Auto Increment, S03SIM-EA-FSCN-01:TIFF:AutoIncrement_RBV +# % gui, FSCN1.tiff, demand, File Format, S03SIM-EA-FSCN-01:TIFF:FileTemplate +# % gui, FSCN1.tiff, readback, File Format, S03SIM-EA-FSCN-01:TIFF:FileTemplate_RBV +# % gui, FSCN1.tiff, demand, N to Capture, S03SIM-EA-FSCN-01:TIFF:NumCapture +# % gui, FSCN1.tiff, readback, N to Capture, S03SIM-EA-FSCN-01:TIFF:NumCapture_RBV +# % gui, FSCN1.tiff, readback, N Captured, S03SIM-EA-FSCN-01:TIFF:NumCaptured_RBV +# % gui, FSCN1.tiff, enum, Auto Save, S03SIM-EA-FSCN-01:TIFF:AutoSave +# % gui, FSCN1.tiff, statusbits, Auto Save , S03SIM-EA-FSCN-01:TIFF:AutoSave_RBV +# % gui, FSCN1.tiff, enum, Capture mode, S03SIM-EA-FSCN-01:TIFF:FileWriteMode +# % gui, FSCN1.tiff, readback, Capture mode, S03SIM-EA-FSCN-01:TIFF:FileWriteMode_RBV +# % gui, FSCN1.tiff, enum, Capture, S03SIM-EA-FSCN-01:TIFF:Capture +# % gui, FSCN1.tiff, readback, Capture, S03SIM-EA-FSCN-01:TIFF:Capture_RBV +# % gui, FSCN1.tiff, readback, Write Message, S03SIM-EA-FSCN-01:TIFF:WriteMessage +# % gui, FSCN1.tiff, readback, Write Status, S03SIM-EA-FSCN-01:TIFF:WriteStatus +# % gui, FSCN1.tiff, readback, Write Filename, S03SIM-EA-FSCN-01:TIFF:FullFileName_RBV +# % gui, FSCN1.tiff, enum, Lazy Open, S03SIM-EA-FSCN-01:TIFF:LazyOpen +# % gui, FSCN1.tiff, readback, Lazy Open, S03SIM-EA-FSCN-01:TIFF:LazyOpen_RBV +# % gui, FSCN1.tiff, demand, Temporary Suffix, S03SIM-EA-FSCN-01:TIFF:TempSuffix +# % gui, FSCN1.tiff, readback, Temporary Suffix, S03SIM-EA-FSCN-01:TIFF:TempSuffix_RBV +# % gui, FSCN1.tiff, demand, Create Directories, S03SIM-EA-FSCN-01:TIFF:CreateDirectory +# % gui, FSCN1.tiff, readback, Create Directories, S03SIM-EA-FSCN-01:TIFF:CreateDirectory_RBV +# Memory +# % gui, FSCN1.tiff, groupHeading, Memory +# % gui, FSCN1.tiff, readback, Max memory, S03SIM-EA-FSCN-01:TIFF:PoolMaxMem +# % gui, FSCN1.tiff, readback, Max buffers, S03SIM-EA-FSCN-01:TIFF:PoolMaxBuffers +# % gui, FSCN1.tiff, readback, Used memory, S03SIM-EA-FSCN-01:TIFF:PoolUsedMem +# % gui, FSCN1.tiff, readback, Allocated buffers, S03SIM-EA-FSCN-01:TIFF:PoolAllocBuffers +# % gui, FSCN1.tiff, readback, Free buffers, S03SIM-EA-FSCN-01:TIFF:PoolFreeBuffers +#=================================================================# +# Template file: NDFile.template +# Database for NDFile driver, which saves files for NDArray data. +# Mark Rivers +# April 7, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +################################################################### +# These records control file I/O # +################################################################### + +# File path. +record(waveform, "S03SIM-EA-FSCN-01:TIFF:FilePath") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.tiff,0,1)FILE_PATH") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-01:TIFF:FilePath_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.tiff,0,1)FILE_PATH") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-01:TIFF:FilePathExists_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)FILE_PATH_EXISTS") + field(ZNAM, "No") + field(ZSV, "MAJOR") + field(ONAM, "Yes") + field(OSV, "NO_ALARM") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:TIFF:CreateDirectory") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)CREATE_DIR") + field(VAL, "0" ) + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:CreateDirectory_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)CREATE_DIR") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +# Filename +record(waveform, "S03SIM-EA-FSCN-01:TIFF:FileName") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.tiff,0,1)FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-01:TIFF:FileName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.tiff,0,1)FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:TIFF:FileNumber") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)FILE_NUMBER") + field(VAL, "1") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:FileNumber_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)FILE_NUMBER") + field(SCAN, "I/O Intr") +} + +# Autoincrement flag +record(bo, "S03SIM-EA-FSCN-01:TIFF:AutoIncrement") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)AUTO_INCREMENT") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:TIFF:AutoIncrement_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)AUTO_INCREMENT") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# File template +record(waveform, "S03SIM-EA-FSCN-01:TIFF:FileTemplate") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.tiff,0,1)FILE_TEMPLATE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-01:TIFF:FileTemplate_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.tiff,0,1)FILE_TEMPLATE") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +# Full filename, including path +record(waveform, "S03SIM-EA-FSCN-01:TIFF:FullFileName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.tiff,0,1)FULL_FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "512") + field(SCAN, "I/O Intr") +} + +# Autosave flag +record(bo, "S03SIM-EA-FSCN-01:TIFF:AutoSave") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)AUTO_SAVE") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:TIFF:AutoSave_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)AUTO_SAVE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# Write file +record(ai, "S03SIM-EA-FSCN-01:TIFF:WriteFile") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)WRITE_FILE") + field(ZNAM, "Done") + field(ONAM, "Write") +} + +record(bi, "S03SIM-EA-FSCN-01:TIFF:WriteFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)WRITE_FILE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Writing") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +# Read file +record(ai, "S03SIM-EA-FSCN-01:TIFF:ReadFile") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)READ_FILE") + field(ZNAM, "Done") + field(ONAM, "Read") +} + +record(bi, "S03SIM-EA-FSCN-01:TIFF:ReadFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)READ_FILE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Reading") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +# File data format +record(mbbo, "S03SIM-EA-FSCN-01:TIFF:FileFormat") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)FILE_FORMAT") + field(VAL, "0") + field(ZRST, "Undefined") + field(ZRVL, "0") + field(ONST, "Invalid") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:TIFF:FileFormat_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)FILE_FORMAT") + field(ZRST, "netCDF") + field(ZRVL, "0") + field(ONST, "Undefined") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +# File save mode +record(mbbo, "S03SIM-EA-FSCN-01:TIFF:FileWriteMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)WRITE_MODE") + field(VAL, "0") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Capture") + field(ONVL, "1") + field(TWST, "Stream") + field(TWVL, "2") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:TIFF:FileWriteMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)WRITE_MODE") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Capture") + field(ONVL, "1") + field(TWST, "Stream") + field(TWVL, "2") + field(SCAN, "I/O Intr") +} + +# Capture data +record(ai, "S03SIM-EA-FSCN-01:TIFF:Capture") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)CAPTURE") + field(ZNAM, "Done") + field(ONAM, "Capture") +} + +record(bi, "S03SIM-EA-FSCN-01:TIFF:Capture_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)CAPTURE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Capturing") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:TIFF:NumCapture") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)NUM_CAPTURE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:NumCapture_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)NUM_CAPTURE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:NumCaptured_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)NUM_CAPTURED") + field(SCAN, "I/O Intr") +} + +# Delete driver file flag +record(bo, "S03SIM-EA-FSCN-01:TIFF:DeleteDriverFile") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)DELETE_DRIVER_FILE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:TIFF:DeleteDriverFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)DELETE_DRIVER_FILE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-01:TIFF:WriteStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)WRITE_STATUS") + field(ZNAM, "Write OK") + field(ZSV, "NO_ALARM") + field(ONAM, "Write error") + field(OSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:TIFF:WriteMessage") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.tiff,0,1)WRITE_MESSAGE") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:TIFF:LazyOpen") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)FILE_LAZY_OPEN") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:TIFF:LazyOpen_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)FILE_LAZY_OPEN") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:TIFF:TempSuffix") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.tiff,0,1)FILE_TEMP_SUFFIX") + field(VAL, "") +} + +record(stringin, "S03SIM-EA-FSCN-01:TIFF:TempSuffix_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.tiff,0,1)FILE_TEMP_SUFFIX") + field(VAL, "") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:TIFF:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.tiff,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:TIFF:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.tiff,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:TIFF:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.tiff,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:TIFF:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.tiff,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:TIFF:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.tiff,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:TIFF:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.tiff,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:TIFF:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.tiff,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:TIFF:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.tiff,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:TIFF:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:TIFF:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:TIFF:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:TIFF:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:TIFF:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:TIFF:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:TIFF:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:TIFF:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:TIFF:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:TIFF:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:TIFF:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:TIFF:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:TIFF:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.tiff,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.tiff,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:TIFF:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:TIFF:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.tiff,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:TIFF:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:TIFF:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:TIFF:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:TIFF:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:TIFF:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:TIFF:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.tiff,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:TIFF:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:TIFF:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:TIFF:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:TIFF:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:TIFF:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:TIFF:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:TIFF:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:TIFF:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.tiff,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:TIFF:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.tiff,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:TIFF:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:TIFF:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.tiff,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:TIFF:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.tiff,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:TIFF:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:TIFF:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:TIFF:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:TIFF:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:TIFF:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.tiff,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:TIFF:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.tiff,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:TIFF:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.tiff,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:TIFF:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:TIFF:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:TIFF:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:TIFF:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.tiff,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:TIFF:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.tiff,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:TIFF:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:TIFF:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:TIFF:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:TIFF:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:TIFF:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:TIFF:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:TIFF:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:TIFF:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.tiff,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:TIFF:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.tiff,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:TIFF:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.tiff,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:TIFF:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:TIFF:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:TIFF:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:TIFF:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:TIFF:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:TIFF:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:TIFF:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:TIFF:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:TIFF:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:TIFF:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:TIFF:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:TIFF:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:TIFF:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:TIFF:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:TIFF:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:TIFF:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:TIFF:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:TIFF:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:TIFF:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:TIFF:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:TIFF:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.tiff,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:TIFF:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.tiff,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:TIFF:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:TIFF:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:TIFF:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:TIFF:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:TIFF:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:TIFF:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:TIFF:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.tiff,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:TIFF:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.tiff,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:TIFF:AsynIO") +{ + field(PORT, "FSCN1.tiff") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +# We replace some fields in records defined in NDFile.template +# File data format +record(mbbo, "S03SIM-EA-FSCN-01:TIFF:FileFormat") +{ + field(ZRST, "TIFF") + field(ZRVL, "0") + field(ONST, "Invalid") + field(ONVL, "1") +} + +record(mbbi, "S03SIM-EA-FSCN-01:TIFF:FileFormat_RBV") +{ + field(ZRST, "TIFF") + field(ZRVL, "0") + field(ONST, "Undefined") + field(ONVL, "1") +} + +#=================================================================# +# Template file: NDFileTIFF.template +# Database for NDFileTIFF driver, which saves NDArray data +# in the TIFF file format +# Mark Rivers +# May 10, 2009 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name + +# This associates the template with an edm screen +# % gui, FSCN2.tiff, edmtab, NDFileTIFF.edl, P=S03SIM-EA-FSCN-02,R=:TIFF: + +# This associates a BOY screen with the template +# % gui, FSCN2.tiff, boydetail,ADApp_opi/dls/tiff_detail.opi, P=S03SIM-EA-FSCN-02, R=:TIFF:, DESC=TIFF File +# % gui, FSCN2.tiff, boyembed, ADApp_opi/dls/tiff_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:TIFF:, DESC=TIFF File +# % gui, FSCN2.tiff, boyembed, ADApp_opi/dls/tiff_embed.opi, P=S03SIM-EA-FSCN-02, R=:TIFF:, DESC=TIFF File + +# Info +# % gui, FSCN2.tiff, groupHeading, Info +# % gui, FSCN2.tiff, readback, Port name, S03SIM-EA-FSCN-02:TIFF:PortName_RBV +# % gui, FSCN2.tiff, readback, Plugin type, S03SIM-EA-FSCN-02:TIFF:PluginType_RBV +# Input +# % gui, FSCN2.tiff, demandString, Input, S03SIM-EA-FSCN-02:TIFF:NDArrayPort +# % gui, FSCN2.tiff, readback, Input, S03SIM-EA-FSCN-02:TIFF:NDArrayPort_RBV + +# % gui, FSCN2.tiff, groupHeading, Callback +# % gui, FSCN2.tiff, enum, Callbacks, S03SIM-EA-FSCN-02:TIFF:EnableCallbacks +# % gui, FSCN2.tiff, statusbits, Callbacks, S03SIM-EA-FSCN-02:TIFF:EnableCallbacks_RBV +# % gui, FSCN2.tiff, demand, Min Callback Time, S03SIM-EA-FSCN-02:TIFF:MinCallbackTime +# % gui, FSCN2.tiff, readback, Min Callback Time, S03SIM-EA-FSCN-02:TIFF:MinCallbackTime_RBV +# % gui, FSCN2.tiff, enum, Block Callbacks, S03SIM-EA-FSCN-02:TIFF:BlockingCallbacks +# % gui, FSCN2.tiff, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:TIFF:BlockingCallbacks_RBV + +# % gui, FSCN2.tiff, groupHeading, Counters +# % gui, FSCN2.tiff, demand, Array Counter, S03SIM-EA-FSCN-02:TIFF:ArrayCounter +# % gui, FSCN2.tiff, readback, Array Counter, S03SIM-EA-FSCN-02:TIFF:ArrayCounter_RBV +# % gui, FSCN2.tiff, readback, Array Rate (fps), S03SIM-EA-FSCN-02:TIFF:ArrayRate_RBV +# % gui, FSCN2.tiff, readback, Queue Use, S03SIM-EA-FSCN-02:TIFF:QueueUse +# % gui, FSCN2.tiff, readback, Queue Size, S03SIM-EA-FSCN-02:TIFF:QueueSize +# % gui, FSCN2.tiff, demand, Dropped Arrays, S03SIM-EA-FSCN-02:TIFF:DroppedArrays +# % gui, FSCN2.tiff, readback, Dropped Arrays, S03SIM-EA-FSCN-02:TIFF:DroppedArrays_RBV + +# % gui, FSCN2.tiff, groupHeading, Array Settings +# % gui, FSCN2.tiff, readback, Num Dimensions, S03SIM-EA-FSCN-02:TIFF:NDimensions_RBV +# % gui, FSCN2.tiff, readback, Dim 0 Size, S03SIM-EA-FSCN-02:TIFF:ArraySize0_RBV +# % gui, FSCN2.tiff, readback, Dim 1 Size, S03SIM-EA-FSCN-02:TIFF:ArraySize1_RBV +# % gui, FSCN2.tiff, readback, Dim 2 Size, S03SIM-EA-FSCN-02:TIFF:ArraySize2_RBV +# % gui, FSCN2.tiff, readback, Input Data Type, S03SIM-EA-FSCN-02:TIFF:DataType_RBV +# % gui, FSCN2.tiff, readback, Colour Mode, S03SIM-EA-FSCN-02:TIFF:ColorMode_RBV +# % gui, FSCN2.tiff, readback, Bayer Pattern, S03SIM-EA-FSCN-02:TIFF:BayerPattern_RBV +# % gui, FSCN2.tiff, readback, Unique id, S03SIM-EA-FSCN-02:TIFF:UniqueId_RBV +# % gui, FSCN2.tiff, readback, Timestamp, S03SIM-EA-FSCN-02:TIFF:TimeStamp_RBV +# File +# % gui, FSCN2.tiff, groupHeading, File +# % gui, FSCN2.tiff, demandString, File Path, S03SIM-EA-FSCN-02:TIFF:FilePath +# % gui, FSCN2.tiff, readback, File Path, S03SIM-EA-FSCN-02:TIFF:FilePath_RBV +# % gui, FSCN2.tiff, statusbits, File Path Exists, S03SIM-EA-FSCN-02:TIFF:FilePathExists_RBV +# % gui, FSCN2.tiff, demand, File Name, S03SIM-EA-FSCN-02:TIFF:FileName +# % gui, FSCN2.tiff, readback, File Name, S03SIM-EA-FSCN-02:TIFF:FileName_RBV +# % gui, FSCN2.tiff, demand, File Number, S03SIM-EA-FSCN-02:TIFF:FileNumber +# % gui, FSCN2.tiff, readback, File Number, S03SIM-EA-FSCN-02:TIFF:FileNumber_RBV +# % gui, FSCN2.tiff, enum, Auto Increment, S03SIM-EA-FSCN-02:TIFF:AutoIncrement +# % gui, FSCN2.tiff, statusbits, Auto Increment, S03SIM-EA-FSCN-02:TIFF:AutoIncrement_RBV +# % gui, FSCN2.tiff, demand, File Format, S03SIM-EA-FSCN-02:TIFF:FileTemplate +# % gui, FSCN2.tiff, readback, File Format, S03SIM-EA-FSCN-02:TIFF:FileTemplate_RBV +# % gui, FSCN2.tiff, demand, N to Capture, S03SIM-EA-FSCN-02:TIFF:NumCapture +# % gui, FSCN2.tiff, readback, N to Capture, S03SIM-EA-FSCN-02:TIFF:NumCapture_RBV +# % gui, FSCN2.tiff, readback, N Captured, S03SIM-EA-FSCN-02:TIFF:NumCaptured_RBV +# % gui, FSCN2.tiff, enum, Auto Save, S03SIM-EA-FSCN-02:TIFF:AutoSave +# % gui, FSCN2.tiff, statusbits, Auto Save , S03SIM-EA-FSCN-02:TIFF:AutoSave_RBV +# % gui, FSCN2.tiff, enum, Capture mode, S03SIM-EA-FSCN-02:TIFF:FileWriteMode +# % gui, FSCN2.tiff, readback, Capture mode, S03SIM-EA-FSCN-02:TIFF:FileWriteMode_RBV +# % gui, FSCN2.tiff, enum, Capture, S03SIM-EA-FSCN-02:TIFF:Capture +# % gui, FSCN2.tiff, readback, Capture, S03SIM-EA-FSCN-02:TIFF:Capture_RBV +# % gui, FSCN2.tiff, readback, Write Message, S03SIM-EA-FSCN-02:TIFF:WriteMessage +# % gui, FSCN2.tiff, readback, Write Status, S03SIM-EA-FSCN-02:TIFF:WriteStatus +# % gui, FSCN2.tiff, readback, Write Filename, S03SIM-EA-FSCN-02:TIFF:FullFileName_RBV +# % gui, FSCN2.tiff, enum, Lazy Open, S03SIM-EA-FSCN-02:TIFF:LazyOpen +# % gui, FSCN2.tiff, readback, Lazy Open, S03SIM-EA-FSCN-02:TIFF:LazyOpen_RBV +# % gui, FSCN2.tiff, demand, Temporary Suffix, S03SIM-EA-FSCN-02:TIFF:TempSuffix +# % gui, FSCN2.tiff, readback, Temporary Suffix, S03SIM-EA-FSCN-02:TIFF:TempSuffix_RBV +# % gui, FSCN2.tiff, demand, Create Directories, S03SIM-EA-FSCN-02:TIFF:CreateDirectory +# % gui, FSCN2.tiff, readback, Create Directories, S03SIM-EA-FSCN-02:TIFF:CreateDirectory_RBV +# Memory +# % gui, FSCN2.tiff, groupHeading, Memory +# % gui, FSCN2.tiff, readback, Max memory, S03SIM-EA-FSCN-02:TIFF:PoolMaxMem +# % gui, FSCN2.tiff, readback, Max buffers, S03SIM-EA-FSCN-02:TIFF:PoolMaxBuffers +# % gui, FSCN2.tiff, readback, Used memory, S03SIM-EA-FSCN-02:TIFF:PoolUsedMem +# % gui, FSCN2.tiff, readback, Allocated buffers, S03SIM-EA-FSCN-02:TIFF:PoolAllocBuffers +# % gui, FSCN2.tiff, readback, Free buffers, S03SIM-EA-FSCN-02:TIFF:PoolFreeBuffers +#=================================================================# +# Template file: NDFile.template +# Database for NDFile driver, which saves files for NDArray data. +# Mark Rivers +# April 7, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +################################################################### +# These records control file I/O # +################################################################### + +# File path. +record(waveform, "S03SIM-EA-FSCN-02:TIFF:FilePath") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.tiff,0,1)FILE_PATH") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-02:TIFF:FilePath_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.tiff,0,1)FILE_PATH") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-02:TIFF:FilePathExists_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)FILE_PATH_EXISTS") + field(ZNAM, "No") + field(ZSV, "MAJOR") + field(ONAM, "Yes") + field(OSV, "NO_ALARM") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:TIFF:CreateDirectory") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)CREATE_DIR") + field(VAL, "0" ) + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:CreateDirectory_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)CREATE_DIR") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +# Filename +record(waveform, "S03SIM-EA-FSCN-02:TIFF:FileName") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.tiff,0,1)FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-02:TIFF:FileName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.tiff,0,1)FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:TIFF:FileNumber") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)FILE_NUMBER") + field(VAL, "1") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:FileNumber_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)FILE_NUMBER") + field(SCAN, "I/O Intr") +} + +# Autoincrement flag +record(bo, "S03SIM-EA-FSCN-02:TIFF:AutoIncrement") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)AUTO_INCREMENT") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:TIFF:AutoIncrement_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)AUTO_INCREMENT") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# File template +record(waveform, "S03SIM-EA-FSCN-02:TIFF:FileTemplate") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.tiff,0,1)FILE_TEMPLATE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-02:TIFF:FileTemplate_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.tiff,0,1)FILE_TEMPLATE") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +# Full filename, including path +record(waveform, "S03SIM-EA-FSCN-02:TIFF:FullFileName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.tiff,0,1)FULL_FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "512") + field(SCAN, "I/O Intr") +} + +# Autosave flag +record(bo, "S03SIM-EA-FSCN-02:TIFF:AutoSave") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)AUTO_SAVE") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:TIFF:AutoSave_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)AUTO_SAVE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# Write file +record(ai, "S03SIM-EA-FSCN-02:TIFF:WriteFile") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)WRITE_FILE") + field(ZNAM, "Done") + field(ONAM, "Write") +} + +record(bi, "S03SIM-EA-FSCN-02:TIFF:WriteFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)WRITE_FILE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Writing") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +# Read file +record(ai, "S03SIM-EA-FSCN-02:TIFF:ReadFile") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)READ_FILE") + field(ZNAM, "Done") + field(ONAM, "Read") +} + +record(bi, "S03SIM-EA-FSCN-02:TIFF:ReadFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)READ_FILE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Reading") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +# File data format +record(mbbo, "S03SIM-EA-FSCN-02:TIFF:FileFormat") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)FILE_FORMAT") + field(VAL, "0") + field(ZRST, "Undefined") + field(ZRVL, "0") + field(ONST, "Invalid") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:TIFF:FileFormat_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)FILE_FORMAT") + field(ZRST, "netCDF") + field(ZRVL, "0") + field(ONST, "Undefined") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +# File save mode +record(mbbo, "S03SIM-EA-FSCN-02:TIFF:FileWriteMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)WRITE_MODE") + field(VAL, "0") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Capture") + field(ONVL, "1") + field(TWST, "Stream") + field(TWVL, "2") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:TIFF:FileWriteMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)WRITE_MODE") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Capture") + field(ONVL, "1") + field(TWST, "Stream") + field(TWVL, "2") + field(SCAN, "I/O Intr") +} + +# Capture data +record(ai, "S03SIM-EA-FSCN-02:TIFF:Capture") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)CAPTURE") + field(ZNAM, "Done") + field(ONAM, "Capture") +} + +record(bi, "S03SIM-EA-FSCN-02:TIFF:Capture_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)CAPTURE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Capturing") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:TIFF:NumCapture") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)NUM_CAPTURE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:NumCapture_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)NUM_CAPTURE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:NumCaptured_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)NUM_CAPTURED") + field(SCAN, "I/O Intr") +} + +# Delete driver file flag +record(bo, "S03SIM-EA-FSCN-02:TIFF:DeleteDriverFile") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)DELETE_DRIVER_FILE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:TIFF:DeleteDriverFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)DELETE_DRIVER_FILE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-02:TIFF:WriteStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)WRITE_STATUS") + field(ZNAM, "Write OK") + field(ZSV, "NO_ALARM") + field(ONAM, "Write error") + field(OSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:TIFF:WriteMessage") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.tiff,0,1)WRITE_MESSAGE") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:TIFF:LazyOpen") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)FILE_LAZY_OPEN") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:TIFF:LazyOpen_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)FILE_LAZY_OPEN") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:TIFF:TempSuffix") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.tiff,0,1)FILE_TEMP_SUFFIX") + field(VAL, "") +} + +record(stringin, "S03SIM-EA-FSCN-02:TIFF:TempSuffix_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.tiff,0,1)FILE_TEMP_SUFFIX") + field(VAL, "") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:TIFF:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.tiff,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:TIFF:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.tiff,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:TIFF:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.tiff,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:TIFF:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.tiff,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:TIFF:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.tiff,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:TIFF:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.tiff,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:TIFF:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.tiff,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:TIFF:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.tiff,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:TIFF:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:TIFF:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:TIFF:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:TIFF:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:TIFF:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:TIFF:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:TIFF:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:TIFF:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:TIFF:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:TIFF:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:TIFF:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:TIFF:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:TIFF:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.tiff,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.tiff,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:TIFF:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:TIFF:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.tiff,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:TIFF:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:TIFF:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:TIFF:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:TIFF:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:TIFF:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:TIFF:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.tiff,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:TIFF:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:TIFF:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:TIFF:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:TIFF:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:TIFF:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:TIFF:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:TIFF:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:TIFF:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.tiff,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:TIFF:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.tiff,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:TIFF:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:TIFF:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.tiff,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:TIFF:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.tiff,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:TIFF:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:TIFF:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:TIFF:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:TIFF:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:TIFF:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.tiff,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:TIFF:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.tiff,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:TIFF:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.tiff,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:TIFF:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:TIFF:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:TIFF:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:TIFF:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.tiff,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:TIFF:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.tiff,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:TIFF:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:TIFF:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:TIFF:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:TIFF:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:TIFF:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:TIFF:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:TIFF:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:TIFF:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.tiff,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:TIFF:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.tiff,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:TIFF:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.tiff,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:TIFF:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:TIFF:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:TIFF:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:TIFF:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:TIFF:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:TIFF:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:TIFF:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:TIFF:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:TIFF:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:TIFF:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:TIFF:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:TIFF:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:TIFF:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:TIFF:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:TIFF:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:TIFF:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:TIFF:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:TIFF:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:TIFF:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:TIFF:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:TIFF:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.tiff,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:TIFF:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.tiff,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:TIFF:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:TIFF:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:TIFF:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:TIFF:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:TIFF:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:TIFF:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:TIFF:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.tiff,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:TIFF:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.tiff,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:TIFF:AsynIO") +{ + field(PORT, "FSCN2.tiff") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +# We replace some fields in records defined in NDFile.template +# File data format +record(mbbo, "S03SIM-EA-FSCN-02:TIFF:FileFormat") +{ + field(ZRST, "TIFF") + field(ZRVL, "0") + field(ONST, "Invalid") + field(ONVL, "1") +} + +record(mbbi, "S03SIM-EA-FSCN-02:TIFF:FileFormat_RBV") +{ + field(ZRST, "TIFF") + field(ZRVL, "0") + field(ONST, "Undefined") + field(ONVL, "1") +} + +#=================================================================# +# Template file: NDFileHDF5.template +# Database for NDFileHDF5 driver, which saves files for NDArray data. + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Asyn Port timeout +# % macro, XMLSIZE, Number of elements of the XML layout waveform record + +# This associates the template with an edm screen +# % gui, OAV.hdf, edmtab, NDFileHDF5.edl, P=S03SIM-DI-OAV-01,R=:HDF5: + +# This associates a BOY screen with the template +# % gui, OAV.hdf, boydetail,ADApp_opi/dls/hdf5_detail.opi, P=S03SIM-DI-OAV-01, R=:HDF5:, DESC=HDF5 File +# % gui, OAV.hdf, boyembed, ADApp_opi/dls/hdf5_embed_box.opi, P=S03SIM-DI-OAV-01, R=:HDF5:, DESC=HDF5 File +# % gui, OAV.hdf, boyembed, ADApp_opi/dls/hdf5_embed.opi, P=S03SIM-DI-OAV-01, R=:HDF5:, DESC=HDF5 File + +# Info +# % gui, OAV.hdf, groupHeading, Info +# % gui, OAV.hdf, readback, Port name, S03SIM-DI-OAV-01:HDF5:PortName_RBV +# % gui, OAV.hdf, readback, Plugin type, S03SIM-DI-OAV-01:HDF5:PluginType_RBV +# Input +# % gui, OAV.hdf, demandString, Input, S03SIM-DI-OAV-01:HDF5:NDArrayPort +# % gui, OAV.hdf, readback, Input, S03SIM-DI-OAV-01:HDF5:NDArrayPort_RBV + +# % gui, OAV.hdf, groupHeading, Callback +# % gui, OAV.hdf, enum, Callbacks, S03SIM-DI-OAV-01:HDF5:EnableCallbacks +# % gui, OAV.hdf, statusbits, Callbacks, S03SIM-DI-OAV-01:HDF5:EnableCallbacks_RBV +# % gui, OAV.hdf, demand, Min Callback Time, S03SIM-DI-OAV-01:HDF5:MinCallbackTime +# % gui, OAV.hdf, readback, Min Callback Time, S03SIM-DI-OAV-01:HDF5:MinCallbackTime_RBV +# % gui, OAV.hdf, enum, Block Callbacks, S03SIM-DI-OAV-01:HDF5:BlockingCallbacks +# % gui, OAV.hdf, statusbits, Block Callbacks, S03SIM-DI-OAV-01:HDF5:BlockingCallbacks_RBV + +# % gui, OAV.hdf, groupHeading, Counters +# % gui, OAV.hdf, demand, Array Counter, S03SIM-DI-OAV-01:HDF5:ArrayCounter +# % gui, OAV.hdf, readback, Array Counter, S03SIM-DI-OAV-01:HDF5:ArrayCounter_RBV +# % gui, OAV.hdf, readback, Array Rate (fps), S03SIM-DI-OAV-01:HDF5:ArrayRate_RBV +# % gui, OAV.hdf, readback, Queue Use, S03SIM-DI-OAV-01:HDF5:QueueUse +# % gui, OAV.hdf, readback, Queue Size, S03SIM-DI-OAV-01:HDF5:QueueSize +# % gui, OAV.hdf, demand, Dropped Arrays, S03SIM-DI-OAV-01:HDF5:DroppedArrays +# % gui, OAV.hdf, readback, Dropped Arrays, S03SIM-DI-OAV-01:HDF5:DroppedArrays_RBV + +# % gui, OAV.hdf, groupHeading, Array Settings +# % gui, OAV.hdf, readback, Num Dimensions, S03SIM-DI-OAV-01:HDF5:NDimensions_RBV +# % gui, OAV.hdf, readback, Dim 0 Size, S03SIM-DI-OAV-01:HDF5:ArraySize0_RBV +# % gui, OAV.hdf, readback, Dim 1 Size, S03SIM-DI-OAV-01:HDF5:ArraySize1_RBV +# % gui, OAV.hdf, readback, Dim 2 Size, S03SIM-DI-OAV-01:HDF5:ArraySize2_RBV +# % gui, OAV.hdf, readback, Input Data Type, S03SIM-DI-OAV-01:HDF5:DataType_RBV +# % gui, OAV.hdf, readback, Colour Mode, S03SIM-DI-OAV-01:HDF5:ColorMode_RBV +# % gui, OAV.hdf, readback, Bayer Pattern, S03SIM-DI-OAV-01:HDF5:BayerPattern_RBV +# % gui, OAV.hdf, readback, Unique id, S03SIM-DI-OAV-01:HDF5:UniqueId_RBV +# % gui, OAV.hdf, readback, Timestamp, S03SIM-DI-OAV-01:HDF5:TimeStamp_RBV +# File +# % gui, OAV.hdf, groupHeading, File +# % gui, OAV.hdf, demandString, File Path, S03SIM-DI-OAV-01:HDF5:FilePath +# % gui, OAV.hdf, readback, File Path, S03SIM-DI-OAV-01:HDF5:FilePath_RBV +# % gui, OAV.hdf, statusbits, File Path Exists, S03SIM-DI-OAV-01:HDF5:FilePathExists_RBV +# % gui, OAV.hdf, demand, File Name, S03SIM-DI-OAV-01:HDF5:FileName +# % gui, OAV.hdf, readback, File Name, S03SIM-DI-OAV-01:HDF5:FileName_RBV +# % gui, OAV.hdf, demand, File Number, S03SIM-DI-OAV-01:HDF5:FileNumber +# % gui, OAV.hdf, readback, File Number, S03SIM-DI-OAV-01:HDF5:FileNumber_RBV +# % gui, OAV.hdf, enum, Auto Increment, S03SIM-DI-OAV-01:HDF5:AutoIncrement +# % gui, OAV.hdf, statusbits, Auto Increment, S03SIM-DI-OAV-01:HDF5:AutoIncrement_RBV +# % gui, OAV.hdf, demand, File Format, S03SIM-DI-OAV-01:HDF5:FileTemplate +# % gui, OAV.hdf, readback, File Format, S03SIM-DI-OAV-01:HDF5:FileTemplate_RBV +# % gui, OAV.hdf, demand, N to Capture, S03SIM-DI-OAV-01:HDF5:NumCapture +# % gui, OAV.hdf, readback, N to Capture, S03SIM-DI-OAV-01:HDF5:NumCapture_RBV +# % gui, OAV.hdf, readback, N Captured, S03SIM-DI-OAV-01:HDF5:NumCaptured_RBV +# % gui, OAV.hdf, enum, Auto Save, S03SIM-DI-OAV-01:HDF5:AutoSave +# % gui, OAV.hdf, statusbits, Auto Save , S03SIM-DI-OAV-01:HDF5:AutoSave_RBV +# % gui, OAV.hdf, enum, Capture mode, S03SIM-DI-OAV-01:HDF5:FileWriteMode +# % gui, OAV.hdf, readback, Capture mode, S03SIM-DI-OAV-01:HDF5:FileWriteMode_RBV +# % gui, OAV.hdf, enum, Capture, S03SIM-DI-OAV-01:HDF5:Capture +# % gui, OAV.hdf, readback, Capture, S03SIM-DI-OAV-01:HDF5:Capture_RBV +# % gui, OAV.hdf, readback, Write Message, S03SIM-DI-OAV-01:HDF5:WriteMessage +# % gui, OAV.hdf, readback, Write Status, S03SIM-DI-OAV-01:HDF5:WriteStatus +# % gui, OAV.hdf, readback, Write Filename, S03SIM-DI-OAV-01:HDF5:FullFileName_RBV +# % gui, OAV.hdf, enum, Lazy Open, S03SIM-DI-OAV-01:HDF5:LazyOpen +# % gui, OAV.hdf, readback, Lazy Open, S03SIM-DI-OAV-01:HDF5:LazyOpen_RBV +# % gui, OAV.hdf, demand, Temporary Suffix, S03SIM-DI-OAV-01:HDF5:TempSuffix +# % gui, OAV.hdf, readback, Temporary Suffix, S03SIM-DI-OAV-01:HDF5:TempSuffix_RBV +# % gui, OAV.hdf, demand, Create Directories, S03SIM-DI-OAV-01:HDF5:CreateDirectory +# % gui, OAV.hdf, readback, Create Directories, S03SIM-DI-OAV-01:HDF5:CreateDirectory_RBV +# HDF5 +# % gui, OAV.hdf, groupHeading, HDF5 +# % gui, OAV.hdf, demand, Extra Dimensions, S03SIM-DI-OAV-01:HDF5:NumExtraDims +# % gui, OAV.hdf, readback, Extra Dimensions, S03SIM-DI-OAV-01:HDF5:NumExtraDims_RBV +# % gui, OAV.hdf, demand, Rows per Chunk, S03SIM-DI-OAV-01:HDF5:NumRowChunks +# % gui, OAV.hdf, readback, Rows per Chunk, S03SIM-DI-OAV-01:HDF5:NumRowChunks_RBV +# % gui, OAV.hdf, demand, Cols per Chunk, S03SIM-DI-OAV-01:HDF5:NumColChunks +# % gui, OAV.hdf, readback, Cols per Chunk, S03SIM-DI-OAV-01:HDF5:NumColChunks_RBV +# % gui, OAV.hdf, demand, Frames per Chunk, S03SIM-DI-OAV-01:HDF5:NumFramesChunks +# % gui, OAV.hdf, readback, Frames per Chunk, S03SIM-DI-OAV-01:HDF5:NumFramesChunks_RBV +# % gui, OAV.hdf, demand, Boundary Alignment, S03SIM-DI-OAV-01:HDF5:BoundaryAlign +# % gui, OAV.hdf, readback, Boundary Alignment, S03SIM-DI-OAV-01:HDF5:BoundaryAlign_RBV +# % gui, OAV.hdf, demand, Boundary Threshold, S03SIM-DI-OAV-01:HDF5:BoundaryThreshold +# % gui, OAV.hdf, readback, Boundary Threshold, S03SIM-DI-OAV-01:HDF5:BoundaryThreshold_RBV +# % gui, OAV.hdf, demand, Flush on Nth Frame, S03SIM-DI-OAV-01:HDF5:NumFramesFlush +# % gui, OAV.hdf, readback, Flush on Nth Frame, S03SIM-DI-OAV-01:HDF5:NumFramesFlush_RBV +# % gui, OAV.hdf, enum, Store Attribute Data, S03SIM-DI-OAV-01:HDF5:StoreAttr +# % gui, OAV.hdf, readback, Store Attribute Data, S03SIM-DI-OAV-01:HDF5:StoreAttr_RBV +# % gui, OAV.hdf, enum, Store Performance Data, S03SIM-DI-OAV-01:HDF5:StorePerform +# % gui, OAV.hdf, readback, Store Performance Data, S03SIM-DI-OAV-01:HDF5:StorePerform_RBV +# % gui, OAV.hdf, readback, Total Write Time, S03SIM-DI-OAV-01:HDF5:RunTime +# % gui, OAV.hdf, readback, Total Write Speed, S03SIM-DI-OAV-01:HDF5:IOSpeed +# % gui, OAV.hdf, enum, Compression Type, S03SIM-DI-OAV-01:HDF5:Compression +# % gui, OAV.hdf, readback, Compression Type, S03SIM-DI-OAV-01:HDF5:Compression_RBV +# % gui, OAV.hdf, demand, N-bit bits per Pixel, S03SIM-DI-OAV-01:HDF5:NumDataBits +# % gui, OAV.hdf, readback, N-bit bits per Pixel, S03SIM-DI-OAV-01:HDF5:NumDataBits_RBV +# % gui, OAV.hdf, demand, N-bit Offset, S03SIM-DI-OAV-01:HDF5:DataBitsOffset +# % gui, OAV.hdf, readback, N-bit Offset, S03SIM-DI-OAV-01:HDF5:DataBitsOffset_RBV +# % gui, OAV.hdf, demand, Szip Filter Size, S03SIM-DI-OAV-01:HDF5:SZipNumPixels +# % gui, OAV.hdf, readback, Szip Filter Size, S03SIM-DI-OAV-01:HDF5:SZipNumPixels_RBV +# % gui, OAV.hdf, demand, Zlib Deflate Level, S03SIM-DI-OAV-01:HDF5:ZLevel +# % gui, OAV.hdf, readback, Zlib Deflate Level, S03SIM-DI-OAV-01:HDF5:ZLevel_RBV + +# Memory +# % gui, OAV.hdf, groupHeading, Memory +# % gui, OAV.hdf, readback, Max memory, S03SIM-DI-OAV-01:HDF5:PoolMaxMem +# % gui, OAV.hdf, readback, Max buffers, S03SIM-DI-OAV-01:HDF5:PoolMaxBuffers +# % gui, OAV.hdf, readback, Used memory, S03SIM-DI-OAV-01:HDF5:PoolUsedMem +# % gui, OAV.hdf, readback, Allocated buffers, S03SIM-DI-OAV-01:HDF5:PoolAllocBuffers +# % gui, OAV.hdf, readback, Free buffers, S03SIM-DI-OAV-01:HDF5:PoolFreeBuffers + +#=================================================================# +# Template file: NDFile.template +# Database for NDFile driver, which saves files for NDArray data. +# Mark Rivers +# April 7, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +################################################################### +# These records control file I/O # +################################################################### + +# File path. +record(waveform, "S03SIM-DI-OAV-01:HDF5:FilePath") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.hdf,0,1)FILE_PATH") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-DI-OAV-01:HDF5:FilePath_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)FILE_PATH") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:FilePathExists_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)FILE_PATH_EXISTS") + field(ZNAM, "No") + field(ZSV, "MAJOR") + field(ONAM, "Yes") + field(OSV, "NO_ALARM") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:CreateDirectory") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)CREATE_DIR") + field(VAL, "0" ) + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:CreateDirectory_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)CREATE_DIR") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +# Filename +record(waveform, "S03SIM-DI-OAV-01:HDF5:FileName") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.hdf,0,1)FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-DI-OAV-01:HDF5:FileName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:FileNumber") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)FILE_NUMBER") + field(VAL, "1") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:FileNumber_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)FILE_NUMBER") + field(SCAN, "I/O Intr") +} + +# Autoincrement flag +record(bo, "S03SIM-DI-OAV-01:HDF5:AutoIncrement") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)AUTO_INCREMENT") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:AutoIncrement_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)AUTO_INCREMENT") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# File template +record(waveform, "S03SIM-DI-OAV-01:HDF5:FileTemplate") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.hdf,0,1)FILE_TEMPLATE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-DI-OAV-01:HDF5:FileTemplate_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)FILE_TEMPLATE") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +# Full filename, including path +record(waveform, "S03SIM-DI-OAV-01:HDF5:FullFileName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)FULL_FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "512") + field(SCAN, "I/O Intr") +} + +# Autosave flag +record(bo, "S03SIM-DI-OAV-01:HDF5:AutoSave") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)AUTO_SAVE") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:AutoSave_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)AUTO_SAVE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# Write file +record(ai, "S03SIM-DI-OAV-01:HDF5:WriteFile") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)WRITE_FILE") + field(ZNAM, "Done") + field(ONAM, "Write") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:WriteFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)WRITE_FILE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Writing") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +# Read file +record(ai, "S03SIM-DI-OAV-01:HDF5:ReadFile") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)READ_FILE") + field(ZNAM, "Done") + field(ONAM, "Read") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:ReadFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)READ_FILE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Reading") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +# File data format +record(mbbo, "S03SIM-DI-OAV-01:HDF5:FileFormat") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)FILE_FORMAT") + field(VAL, "0") + field(ZRST, "Undefined") + field(ZRVL, "0") + field(ONST, "Invalid") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:HDF5:FileFormat_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)FILE_FORMAT") + field(ZRST, "netCDF") + field(ZRVL, "0") + field(ONST, "Undefined") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +# File save mode +record(mbbo, "S03SIM-DI-OAV-01:HDF5:FileWriteMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)WRITE_MODE") + field(VAL, "0") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Capture") + field(ONVL, "1") + field(TWST, "Stream") + field(TWVL, "2") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:HDF5:FileWriteMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)WRITE_MODE") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Capture") + field(ONVL, "1") + field(TWST, "Stream") + field(TWVL, "2") + field(SCAN, "I/O Intr") +} + +# Capture data +record(ai, "S03SIM-DI-OAV-01:HDF5:Capture") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)CAPTURE") + field(ZNAM, "Done") + field(ONAM, "Capture") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:Capture_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)CAPTURE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Capturing") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:NumCapture") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)NUM_CAPTURE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:NumCapture_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)NUM_CAPTURE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:NumCaptured_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)NUM_CAPTURED") + field(SCAN, "I/O Intr") +} + +# Delete driver file flag +record(bo, "S03SIM-DI-OAV-01:HDF5:DeleteDriverFile") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)DELETE_DRIVER_FILE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:DeleteDriverFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)DELETE_DRIVER_FILE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:WriteStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)WRITE_STATUS") + field(ZNAM, "Write OK") + field(ZSV, "NO_ALARM") + field(ONAM, "Write error") + field(OSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-DI-OAV-01:HDF5:WriteMessage") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)WRITE_MESSAGE") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:HDF5:LazyOpen") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)FILE_LAZY_OPEN") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:LazyOpen_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)FILE_LAZY_OPEN") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:HDF5:TempSuffix") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)FILE_TEMP_SUFFIX") + field(VAL, "") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:TempSuffix_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)FILE_TEMP_SUFFIX") + field(VAL, "") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:HDF5:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:HDF5:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:HDF5:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:HDF5:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:HDF5:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:HDF5:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:HDF5:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:HDF5:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:HDF5:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:HDF5:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:HDF5:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:HDF5:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:HDF5:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:HDF5:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.hdf,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.hdf,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:HDF5:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:HDF5:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:HDF5:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:HDF5:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:HDF5:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:HDF5:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:HDF5:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:HDF5:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:HDF5:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.hdf,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:HDF5:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:HDF5:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:HDF5:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:HDF5:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:HDF5:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:HDF5:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:HDF5:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.hdf,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:HDF5:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.hdf,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:HDF5:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:HDF5:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.hdf,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:HDF5:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.hdf,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:HDF5:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:HDF5:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:HDF5:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:HDF5:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:HDF5:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)NDARRAY_PORT") + field(VAL, "OAV.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:HDF5:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:HDF5:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.hdf,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:HDF5:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.hdf,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:HDF5:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:HDF5:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:HDF5:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:HDF5:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:HDF5:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:HDF5:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:HDF5:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:HDF5:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.hdf,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:HDF5:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.hdf,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:HDF5:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.hdf,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:HDF5:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:HDF5:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:HDF5:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:HDF5:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:HDF5:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:HDF5:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:HDF5:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:HDF5:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:HDF5:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:HDF5:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:HDF5:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:HDF5:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:HDF5:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:HDF5:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:HDF5:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:HDF5:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:HDF5:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:HDF5:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.hdf,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:HDF5:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.hdf,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:HDF5:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:HDF5:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:HDF5:SortSize") + field(OUT, "S03SIM-DI-OAV-01:HDF5:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:HDF5:AsynIO") +{ + field(PORT, "OAV.hdf") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +# Flush data to file +record(ai, "S03SIM-DI-OAV-01:HDF5:FlushNow") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_SWMRFlushNow") + field(ZNAM, "Done") + field(ONAM, "Flush") +} + +# We replace some fields in records defined in NDFile.template +# File data format +record(mbbo, "S03SIM-DI-OAV-01:HDF5:FileFormat") +{ + field(ZRST, "HDF5") + field(ZRVL, "0") + field(ONST, "Invalid") + field(ONVL, "1") +} + +record(mbbi, "S03SIM-DI-OAV-01:HDF5:FileFormat_RBV") +{ + field(ZRST, "HDF5") + field(ZRVL, "0") + field(ONST, "Undefined") + field(ONVL, "1") +} + +record(bo, "S03SIM-DI-OAV-01:HDF5:ChunkSizeAuto") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkSizeAuto") + field(PINI, "YES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:ChunkSizeAuto_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkSizeAuto") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:NumRowChunks") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_nRowChunks") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:NumRowChunks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_nRowChunks") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:NumColChunks") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_nColChunks") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:NumColChunks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_nColChunks") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ChunkSize2") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkSize2") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ChunkSize2_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkSize2") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ChunkSize3") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkSize3") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ChunkSize3_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkSize3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ChunkSize4") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkSize4") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ChunkSize4_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkSize4") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ChunkSize5") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkSize5") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ChunkSize5_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkSize5") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ChunkSize6") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkSize6") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ChunkSize6_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkSize6") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ChunkSize7") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkSize7") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ChunkSize7_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkSize7") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ChunkSize8") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkSize8") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ChunkSize8_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkSize8") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ChunkSize9") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkSize9") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ChunkSize9_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkSize9") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:NumFramesChunks") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_nFramesChunks") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:NumFramesChunks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_nFramesChunks") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:NDAttributeChunk") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_NDAttributeChunk") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:NDAttributeChunk_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_NDAttributeChunk") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:BoundaryAlign") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkBoundaryAlign") + field(PINI, "YES") + field(VAL, "0") + field(EGU, "bytes") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:BoundaryAlign_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkBoundaryAlign") + field(SCAN, "I/O Intr") + field(EGU, "bytes") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:BoundaryThreshold") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkBoundaryThreshold") + field(PINI, "YES") + field(VAL, "1") + field(EGU, "bytes") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:BoundaryThreshold_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkBoundaryThreshold") + field(SCAN, "I/O Intr") + field(EGU, "bytes") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:NumExtraDims") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_nExtraDims") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:NumExtraDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_nExtraDims") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimSizeN") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimSizeN") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimSizeN_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimSizeN") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:ExtraDimNameN_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimNameN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimSizeX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimSizeX") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimSizeX") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:ExtraDimNameX_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimNameX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimSizeY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimSizeY") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimSizeY") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:ExtraDimNameY_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimNameY") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize3") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize3") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize3_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize3") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:ExtraDimName3_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimName3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize4") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize4") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize4_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize4") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:ExtraDimName4_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimName4") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize5") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize5") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize5_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize5") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:ExtraDimName5_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimName5") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize6") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize6") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize6_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize6") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:ExtraDimName6_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimName6") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize7") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize7") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize7_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize7") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:ExtraDimName7_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimName7") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize8") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize8") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize8_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize8") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:ExtraDimName8_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimName8") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize9") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize9") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize9_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize9") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:ExtraDimName9_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimName9") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:HDF5:StoreAttr") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_storeAttributes") + field(PINI, "YES") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:StoreAttr_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_storeAttributes") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +record(bo, "S03SIM-DI-OAV-01:HDF5:StorePerform") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_storePerformance") + field(PINI, "YES") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:StorePerform_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_storePerformance") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +record(ai, "S03SIM-DI-OAV-01:HDF5:RunTime") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_totalRuntime") + field(SCAN, "I/O Intr") + field(PREC, "3") + field(EGU, "s") +} + +record(ai, "S03SIM-DI-OAV-01:HDF5:IOSpeed") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_totalIoSpeed") + field(SCAN, "I/O Intr") + field(PREC, "1") + field(EGU, "Mbit/s") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:NumFramesFlush") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_flushNthFrame") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:NumFramesFlush_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_flushNthFrame") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:HDF5:Compression") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_compressionType") + field(PINI, "YES") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "N-bit") + field(ONVL, "1") + field(TWST, "szip") + field(TWVL, "2") + field(THST, "zlib") + field(THVL, "3") + field(FRST, "Blosc") + field(FRVL, "4") + field(FVST, "BSLZ4") + field(FVVL, "5") + field(SXST, "LZ4") + field(SXVL, "6") + field(SVST, "JPEG") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:HDF5:Compression_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_compressionType") + field(SCAN, "I/O Intr") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "N-bit") + field(ONVL, "1") + field(TWST, "szip") + field(TWVL, "2") + field(THST, "zlib") + field(THVL, "3") + field(FRST, "Blosc") + field(FRVL, "4") + field(FVST, "BSLZ4") + field(FVVL, "5") + field(SXST, "LZ4") + field(SXVL, "6") + field(SVST, "JPEG") + field(SVVL, "7") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:NumDataBits") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_nbitsPrecision") + field(PINI, "YES") + field(EGU, "bit") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:NumDataBits_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_nbitsPrecision") + field(SCAN, "I/O Intr") + field(EGU, "bit") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:DataBitsOffset") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_nbitsOffset") + field(PINI, "YES") + field(EGU, "bit") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:DataBitsOffset_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_nbitsOffset") + field(SCAN, "I/O Intr") + field(EGU, "bit") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:SZipNumPixels") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_szipNumPixels") + field(PINI, "YES") + field(EGU, "bit") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:SZipNumPixels_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_szipNumPixels") + field(SCAN, "I/O Intr") + field(EGU, "bit") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ZLevel") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_zCompressLevel") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ZLevel_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_zCompressLevel") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:HDF5:BloscShuffle") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_bloscShuffleType") + field(PINI, "YES") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "Byte") + field(ONVL, "1") + field(TWST, "Bit") + field(TWVL, "2") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:HDF5:BloscShuffle_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_bloscShuffleType") + field(SCAN, "I/O Intr") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "Byte") + field(ONVL, "1") + field(TWST, "Bit") + field(TWVL, "2") +} + +record(mbbo, "S03SIM-DI-OAV-01:HDF5:BloscCompressor") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_bloscCompressor") + field(PINI, "YES") + field(ZRST, "BloscLZ") + field(ZRVL, "0") + field(ONST, "LZ4") + field(ONVL, "1") + field(TWST, "LZ4HC") + field(TWVL, "2") + field(THST, "SNAPPY") + field(THVL, "3") + field(FRST, "ZLIB") + field(FRVL, "4") + field(FVST, "ZSTD") + field(FVVL, "5") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:HDF5:BloscCompressor_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_bloscCompressor") + field(SCAN, "I/O Intr") + field(ZRST, "BloscLZ") + field(ZRVL, "0") + field(ONST, "LZ4") + field(ONVL, "1") + field(TWST, "LZ4HC") + field(TWVL, "2") + field(THST, "SNAPPY") + field(THVL, "3") + field(FRST, "ZLIB") + field(FRVL, "4") + field(FVST, "ZSTD") + field(FVVL, "5") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:BloscLevel") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_bloscCompressLevel") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:BloscLevel_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_bloscCompressLevel") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:JPEGQuality") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_jpegQuality") + field(VAL, "90") + field(DRVL, "1") + field(DRVH, "100") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:JPEGQuality_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_jpegQuality") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:HDF5:DimAttDatasets") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_dimAttDatasets") + field(PINI, "YES") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:DimAttDatasets_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_dimAttDatasets") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# File path. +# % autosave 2 +#record(waveform, "S03SIM-DI-OAV-01:HDF5:XMLPath") +#{ +# field(PINI, "YES") +# field(DTYP, "asynOctetWrite") +# field(INP, "@asyn(OAV.hdf,0,1)HDF5_layoutDirectory") +# field(FTVL, "CHAR") +# field(NELM, "256") +#} + +record(waveform, "S03SIM-DI-OAV-01:HDF5:XMLErrorMsg_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_layoutErrorMsg") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:XMLValid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_layoutValid") + field(ZNAM, "No") + field(ZSV, "MAJOR") + field(ONAM, "Yes") + field(OSV, "NO_ALARM") + field(SCAN, "I/O Intr") +} + +# Filename +# % autosave 2 +record(waveform, "S03SIM-DI-OAV-01:HDF5:XMLFileName") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_layoutFilename") + field(FTVL, "CHAR") + field(NELM, "2048") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-DI-OAV-01:HDF5:XMLFileName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_layoutFilename") + field(FTVL, "CHAR") + field(NELM, "2048") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:SWMRSupported_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_SWMRSupported") + field(SCAN, "I/O Intr") + field(ZNAM, "Not Supported") + field(ONAM, "Supported") +} + +record(bo, "S03SIM-DI-OAV-01:HDF5:SWMRMode") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_SWMRMode") + field(PINI, "YES") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:SWMRMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_SWMRMode") + field(SCAN, "I/O Intr") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:SWMRActive_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_SWMRRunning") + field(SCAN, "I/O Intr") + field(ZNAM, "Off") + field(ONAM, "Active") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:SWMRCbCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_SWMRCbCounter") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:HDF5:PositionMode") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posRunning") + field(PINI, "YES") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "S03SIM-DI-OAV-01:HDF5:PositionMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_posRunning") + field(SCAN, "I/O Intr") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(stringout, "S03SIM-DI-OAV-01:HDF5:PosNameDimN") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posNameDimN") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PosNameDimN_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_posNameDimN") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:HDF5:PosNameDimX") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posNameDimX") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PosNameDimX_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_posNameDimX") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:HDF5:PosNameDimY") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posNameDimY") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PosNameDimY_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_posNameDimY") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:HDF5:PosNameDim3") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posNameDim3") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PosNameDim3_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_posNameDim3") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:HDF5:PosNameDim4") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posNameDim4") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PosNameDim4_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_posNameDim4") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:HDF5:PosNameDim5") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posNameDim5") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PosNameDim5_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_posNameDim5") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:HDF5:PosNameDim6") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posNameDim6") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PosNameDim6_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_posNameDim6") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:HDF5:PosNameDim7") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posNameDim7") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PosNameDim7_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_posNameDim7") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:HDF5:PosNameDim8") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posNameDim8") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PosNameDim8_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_posNameDim8") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:HDF5:PosNameDim9") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posNameDim9") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PosNameDim9_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_posNameDim9") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:HDF5:PosIndexDimN") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posIndexDimN") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PosIndexDimN_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_posIndexDimN") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:HDF5:PosIndexDimX") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posIndexDimX") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PosIndexDimX_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_posIndexDimX") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:HDF5:PosIndexDimY") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posIndexDimY") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PosIndexDimY_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_posIndexDimY") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:HDF5:PosIndexDim3") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim3") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PosIndexDim3_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim3") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:HDF5:PosIndexDim4") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim4") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PosIndexDim4_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim4") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:HDF5:PosIndexDim5") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim5") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PosIndexDim5_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim5") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:HDF5:PosIndexDim6") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim6") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PosIndexDim6_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim6") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:HDF5:PosIndexDim7") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim7") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PosIndexDim7_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim7") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:HDF5:PosIndexDim8") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim8") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PosIndexDim8_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim8") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:HDF5:PosIndexDim9") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim9") + field(PINI, "YES") +} + +record(stringin, "S03SIM-DI-OAV-01:HDF5:PosIndexDim9_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim9") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:HDF5:FillValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_fillValue") + field(PINI, "YES") + field(PREC, "1") +} + +record(ai, "S03SIM-DI-OAV-01:HDF5:FillValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_fillValue") + field(SCAN, "I/O Intr") + field(PREC, "1") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunkX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunkX") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunkX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunkX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunkY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunkY") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunkY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunkY") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk3") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk3") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk3_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk4") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk4") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk4_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk4") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk5") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk5") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk5_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk5") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk6") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk6") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk6_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk6") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk7") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk7") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk7_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk7") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk8") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk8") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk8_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk8") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk9") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk9") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk9_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk9") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDFileHDF5.template +# Database for NDFileHDF5 driver, which saves files for NDArray data. + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Asyn Port timeout +# % macro, XMLSIZE, Number of elements of the XML layout waveform record + +# This associates the template with an edm screen +# % gui, FSCN1.hdf, edmtab, NDFileHDF5.edl, P=S03SIM-EA-FSCN-01,R=:HDF5: + +# This associates a BOY screen with the template +# % gui, FSCN1.hdf, boydetail,ADApp_opi/dls/hdf5_detail.opi, P=S03SIM-EA-FSCN-01, R=:HDF5:, DESC=HDF5 File +# % gui, FSCN1.hdf, boyembed, ADApp_opi/dls/hdf5_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:HDF5:, DESC=HDF5 File +# % gui, FSCN1.hdf, boyembed, ADApp_opi/dls/hdf5_embed.opi, P=S03SIM-EA-FSCN-01, R=:HDF5:, DESC=HDF5 File + +# Info +# % gui, FSCN1.hdf, groupHeading, Info +# % gui, FSCN1.hdf, readback, Port name, S03SIM-EA-FSCN-01:HDF5:PortName_RBV +# % gui, FSCN1.hdf, readback, Plugin type, S03SIM-EA-FSCN-01:HDF5:PluginType_RBV +# Input +# % gui, FSCN1.hdf, demandString, Input, S03SIM-EA-FSCN-01:HDF5:NDArrayPort +# % gui, FSCN1.hdf, readback, Input, S03SIM-EA-FSCN-01:HDF5:NDArrayPort_RBV + +# % gui, FSCN1.hdf, groupHeading, Callback +# % gui, FSCN1.hdf, enum, Callbacks, S03SIM-EA-FSCN-01:HDF5:EnableCallbacks +# % gui, FSCN1.hdf, statusbits, Callbacks, S03SIM-EA-FSCN-01:HDF5:EnableCallbacks_RBV +# % gui, FSCN1.hdf, demand, Min Callback Time, S03SIM-EA-FSCN-01:HDF5:MinCallbackTime +# % gui, FSCN1.hdf, readback, Min Callback Time, S03SIM-EA-FSCN-01:HDF5:MinCallbackTime_RBV +# % gui, FSCN1.hdf, enum, Block Callbacks, S03SIM-EA-FSCN-01:HDF5:BlockingCallbacks +# % gui, FSCN1.hdf, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:HDF5:BlockingCallbacks_RBV + +# % gui, FSCN1.hdf, groupHeading, Counters +# % gui, FSCN1.hdf, demand, Array Counter, S03SIM-EA-FSCN-01:HDF5:ArrayCounter +# % gui, FSCN1.hdf, readback, Array Counter, S03SIM-EA-FSCN-01:HDF5:ArrayCounter_RBV +# % gui, FSCN1.hdf, readback, Array Rate (fps), S03SIM-EA-FSCN-01:HDF5:ArrayRate_RBV +# % gui, FSCN1.hdf, readback, Queue Use, S03SIM-EA-FSCN-01:HDF5:QueueUse +# % gui, FSCN1.hdf, readback, Queue Size, S03SIM-EA-FSCN-01:HDF5:QueueSize +# % gui, FSCN1.hdf, demand, Dropped Arrays, S03SIM-EA-FSCN-01:HDF5:DroppedArrays +# % gui, FSCN1.hdf, readback, Dropped Arrays, S03SIM-EA-FSCN-01:HDF5:DroppedArrays_RBV + +# % gui, FSCN1.hdf, groupHeading, Array Settings +# % gui, FSCN1.hdf, readback, Num Dimensions, S03SIM-EA-FSCN-01:HDF5:NDimensions_RBV +# % gui, FSCN1.hdf, readback, Dim 0 Size, S03SIM-EA-FSCN-01:HDF5:ArraySize0_RBV +# % gui, FSCN1.hdf, readback, Dim 1 Size, S03SIM-EA-FSCN-01:HDF5:ArraySize1_RBV +# % gui, FSCN1.hdf, readback, Dim 2 Size, S03SIM-EA-FSCN-01:HDF5:ArraySize2_RBV +# % gui, FSCN1.hdf, readback, Input Data Type, S03SIM-EA-FSCN-01:HDF5:DataType_RBV +# % gui, FSCN1.hdf, readback, Colour Mode, S03SIM-EA-FSCN-01:HDF5:ColorMode_RBV +# % gui, FSCN1.hdf, readback, Bayer Pattern, S03SIM-EA-FSCN-01:HDF5:BayerPattern_RBV +# % gui, FSCN1.hdf, readback, Unique id, S03SIM-EA-FSCN-01:HDF5:UniqueId_RBV +# % gui, FSCN1.hdf, readback, Timestamp, S03SIM-EA-FSCN-01:HDF5:TimeStamp_RBV +# File +# % gui, FSCN1.hdf, groupHeading, File +# % gui, FSCN1.hdf, demandString, File Path, S03SIM-EA-FSCN-01:HDF5:FilePath +# % gui, FSCN1.hdf, readback, File Path, S03SIM-EA-FSCN-01:HDF5:FilePath_RBV +# % gui, FSCN1.hdf, statusbits, File Path Exists, S03SIM-EA-FSCN-01:HDF5:FilePathExists_RBV +# % gui, FSCN1.hdf, demand, File Name, S03SIM-EA-FSCN-01:HDF5:FileName +# % gui, FSCN1.hdf, readback, File Name, S03SIM-EA-FSCN-01:HDF5:FileName_RBV +# % gui, FSCN1.hdf, demand, File Number, S03SIM-EA-FSCN-01:HDF5:FileNumber +# % gui, FSCN1.hdf, readback, File Number, S03SIM-EA-FSCN-01:HDF5:FileNumber_RBV +# % gui, FSCN1.hdf, enum, Auto Increment, S03SIM-EA-FSCN-01:HDF5:AutoIncrement +# % gui, FSCN1.hdf, statusbits, Auto Increment, S03SIM-EA-FSCN-01:HDF5:AutoIncrement_RBV +# % gui, FSCN1.hdf, demand, File Format, S03SIM-EA-FSCN-01:HDF5:FileTemplate +# % gui, FSCN1.hdf, readback, File Format, S03SIM-EA-FSCN-01:HDF5:FileTemplate_RBV +# % gui, FSCN1.hdf, demand, N to Capture, S03SIM-EA-FSCN-01:HDF5:NumCapture +# % gui, FSCN1.hdf, readback, N to Capture, S03SIM-EA-FSCN-01:HDF5:NumCapture_RBV +# % gui, FSCN1.hdf, readback, N Captured, S03SIM-EA-FSCN-01:HDF5:NumCaptured_RBV +# % gui, FSCN1.hdf, enum, Auto Save, S03SIM-EA-FSCN-01:HDF5:AutoSave +# % gui, FSCN1.hdf, statusbits, Auto Save , S03SIM-EA-FSCN-01:HDF5:AutoSave_RBV +# % gui, FSCN1.hdf, enum, Capture mode, S03SIM-EA-FSCN-01:HDF5:FileWriteMode +# % gui, FSCN1.hdf, readback, Capture mode, S03SIM-EA-FSCN-01:HDF5:FileWriteMode_RBV +# % gui, FSCN1.hdf, enum, Capture, S03SIM-EA-FSCN-01:HDF5:Capture +# % gui, FSCN1.hdf, readback, Capture, S03SIM-EA-FSCN-01:HDF5:Capture_RBV +# % gui, FSCN1.hdf, readback, Write Message, S03SIM-EA-FSCN-01:HDF5:WriteMessage +# % gui, FSCN1.hdf, readback, Write Status, S03SIM-EA-FSCN-01:HDF5:WriteStatus +# % gui, FSCN1.hdf, readback, Write Filename, S03SIM-EA-FSCN-01:HDF5:FullFileName_RBV +# % gui, FSCN1.hdf, enum, Lazy Open, S03SIM-EA-FSCN-01:HDF5:LazyOpen +# % gui, FSCN1.hdf, readback, Lazy Open, S03SIM-EA-FSCN-01:HDF5:LazyOpen_RBV +# % gui, FSCN1.hdf, demand, Temporary Suffix, S03SIM-EA-FSCN-01:HDF5:TempSuffix +# % gui, FSCN1.hdf, readback, Temporary Suffix, S03SIM-EA-FSCN-01:HDF5:TempSuffix_RBV +# % gui, FSCN1.hdf, demand, Create Directories, S03SIM-EA-FSCN-01:HDF5:CreateDirectory +# % gui, FSCN1.hdf, readback, Create Directories, S03SIM-EA-FSCN-01:HDF5:CreateDirectory_RBV +# HDF5 +# % gui, FSCN1.hdf, groupHeading, HDF5 +# % gui, FSCN1.hdf, demand, Extra Dimensions, S03SIM-EA-FSCN-01:HDF5:NumExtraDims +# % gui, FSCN1.hdf, readback, Extra Dimensions, S03SIM-EA-FSCN-01:HDF5:NumExtraDims_RBV +# % gui, FSCN1.hdf, demand, Rows per Chunk, S03SIM-EA-FSCN-01:HDF5:NumRowChunks +# % gui, FSCN1.hdf, readback, Rows per Chunk, S03SIM-EA-FSCN-01:HDF5:NumRowChunks_RBV +# % gui, FSCN1.hdf, demand, Cols per Chunk, S03SIM-EA-FSCN-01:HDF5:NumColChunks +# % gui, FSCN1.hdf, readback, Cols per Chunk, S03SIM-EA-FSCN-01:HDF5:NumColChunks_RBV +# % gui, FSCN1.hdf, demand, Frames per Chunk, S03SIM-EA-FSCN-01:HDF5:NumFramesChunks +# % gui, FSCN1.hdf, readback, Frames per Chunk, S03SIM-EA-FSCN-01:HDF5:NumFramesChunks_RBV +# % gui, FSCN1.hdf, demand, Boundary Alignment, S03SIM-EA-FSCN-01:HDF5:BoundaryAlign +# % gui, FSCN1.hdf, readback, Boundary Alignment, S03SIM-EA-FSCN-01:HDF5:BoundaryAlign_RBV +# % gui, FSCN1.hdf, demand, Boundary Threshold, S03SIM-EA-FSCN-01:HDF5:BoundaryThreshold +# % gui, FSCN1.hdf, readback, Boundary Threshold, S03SIM-EA-FSCN-01:HDF5:BoundaryThreshold_RBV +# % gui, FSCN1.hdf, demand, Flush on Nth Frame, S03SIM-EA-FSCN-01:HDF5:NumFramesFlush +# % gui, FSCN1.hdf, readback, Flush on Nth Frame, S03SIM-EA-FSCN-01:HDF5:NumFramesFlush_RBV +# % gui, FSCN1.hdf, enum, Store Attribute Data, S03SIM-EA-FSCN-01:HDF5:StoreAttr +# % gui, FSCN1.hdf, readback, Store Attribute Data, S03SIM-EA-FSCN-01:HDF5:StoreAttr_RBV +# % gui, FSCN1.hdf, enum, Store Performance Data, S03SIM-EA-FSCN-01:HDF5:StorePerform +# % gui, FSCN1.hdf, readback, Store Performance Data, S03SIM-EA-FSCN-01:HDF5:StorePerform_RBV +# % gui, FSCN1.hdf, readback, Total Write Time, S03SIM-EA-FSCN-01:HDF5:RunTime +# % gui, FSCN1.hdf, readback, Total Write Speed, S03SIM-EA-FSCN-01:HDF5:IOSpeed +# % gui, FSCN1.hdf, enum, Compression Type, S03SIM-EA-FSCN-01:HDF5:Compression +# % gui, FSCN1.hdf, readback, Compression Type, S03SIM-EA-FSCN-01:HDF5:Compression_RBV +# % gui, FSCN1.hdf, demand, N-bit bits per Pixel, S03SIM-EA-FSCN-01:HDF5:NumDataBits +# % gui, FSCN1.hdf, readback, N-bit bits per Pixel, S03SIM-EA-FSCN-01:HDF5:NumDataBits_RBV +# % gui, FSCN1.hdf, demand, N-bit Offset, S03SIM-EA-FSCN-01:HDF5:DataBitsOffset +# % gui, FSCN1.hdf, readback, N-bit Offset, S03SIM-EA-FSCN-01:HDF5:DataBitsOffset_RBV +# % gui, FSCN1.hdf, demand, Szip Filter Size, S03SIM-EA-FSCN-01:HDF5:SZipNumPixels +# % gui, FSCN1.hdf, readback, Szip Filter Size, S03SIM-EA-FSCN-01:HDF5:SZipNumPixels_RBV +# % gui, FSCN1.hdf, demand, Zlib Deflate Level, S03SIM-EA-FSCN-01:HDF5:ZLevel +# % gui, FSCN1.hdf, readback, Zlib Deflate Level, S03SIM-EA-FSCN-01:HDF5:ZLevel_RBV + +# Memory +# % gui, FSCN1.hdf, groupHeading, Memory +# % gui, FSCN1.hdf, readback, Max memory, S03SIM-EA-FSCN-01:HDF5:PoolMaxMem +# % gui, FSCN1.hdf, readback, Max buffers, S03SIM-EA-FSCN-01:HDF5:PoolMaxBuffers +# % gui, FSCN1.hdf, readback, Used memory, S03SIM-EA-FSCN-01:HDF5:PoolUsedMem +# % gui, FSCN1.hdf, readback, Allocated buffers, S03SIM-EA-FSCN-01:HDF5:PoolAllocBuffers +# % gui, FSCN1.hdf, readback, Free buffers, S03SIM-EA-FSCN-01:HDF5:PoolFreeBuffers + +#=================================================================# +# Template file: NDFile.template +# Database for NDFile driver, which saves files for NDArray data. +# Mark Rivers +# April 7, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +################################################################### +# These records control file I/O # +################################################################### + +# File path. +record(waveform, "S03SIM-EA-FSCN-01:HDF5:FilePath") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.hdf,0,1)FILE_PATH") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-01:HDF5:FilePath_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)FILE_PATH") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:FilePathExists_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)FILE_PATH_EXISTS") + field(ZNAM, "No") + field(ZSV, "MAJOR") + field(ONAM, "Yes") + field(OSV, "NO_ALARM") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:CreateDirectory") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)CREATE_DIR") + field(VAL, "0" ) + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:CreateDirectory_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)CREATE_DIR") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +# Filename +record(waveform, "S03SIM-EA-FSCN-01:HDF5:FileName") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.hdf,0,1)FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-01:HDF5:FileName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:FileNumber") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)FILE_NUMBER") + field(VAL, "1") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:FileNumber_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)FILE_NUMBER") + field(SCAN, "I/O Intr") +} + +# Autoincrement flag +record(bo, "S03SIM-EA-FSCN-01:HDF5:AutoIncrement") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)AUTO_INCREMENT") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:AutoIncrement_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)AUTO_INCREMENT") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# File template +record(waveform, "S03SIM-EA-FSCN-01:HDF5:FileTemplate") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.hdf,0,1)FILE_TEMPLATE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-01:HDF5:FileTemplate_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)FILE_TEMPLATE") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +# Full filename, including path +record(waveform, "S03SIM-EA-FSCN-01:HDF5:FullFileName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)FULL_FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "512") + field(SCAN, "I/O Intr") +} + +# Autosave flag +record(bo, "S03SIM-EA-FSCN-01:HDF5:AutoSave") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)AUTO_SAVE") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:AutoSave_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)AUTO_SAVE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# Write file +record(ai, "S03SIM-EA-FSCN-01:HDF5:WriteFile") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)WRITE_FILE") + field(ZNAM, "Done") + field(ONAM, "Write") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:WriteFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)WRITE_FILE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Writing") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +# Read file +record(ai, "S03SIM-EA-FSCN-01:HDF5:ReadFile") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)READ_FILE") + field(ZNAM, "Done") + field(ONAM, "Read") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:ReadFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)READ_FILE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Reading") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +# File data format +record(mbbo, "S03SIM-EA-FSCN-01:HDF5:FileFormat") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)FILE_FORMAT") + field(VAL, "0") + field(ZRST, "Undefined") + field(ZRVL, "0") + field(ONST, "Invalid") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:HDF5:FileFormat_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)FILE_FORMAT") + field(ZRST, "netCDF") + field(ZRVL, "0") + field(ONST, "Undefined") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +# File save mode +record(mbbo, "S03SIM-EA-FSCN-01:HDF5:FileWriteMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)WRITE_MODE") + field(VAL, "0") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Capture") + field(ONVL, "1") + field(TWST, "Stream") + field(TWVL, "2") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:HDF5:FileWriteMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)WRITE_MODE") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Capture") + field(ONVL, "1") + field(TWST, "Stream") + field(TWVL, "2") + field(SCAN, "I/O Intr") +} + +# Capture data +record(ai, "S03SIM-EA-FSCN-01:HDF5:Capture") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)CAPTURE") + field(ZNAM, "Done") + field(ONAM, "Capture") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:Capture_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)CAPTURE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Capturing") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:NumCapture") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)NUM_CAPTURE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:NumCapture_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)NUM_CAPTURE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:NumCaptured_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)NUM_CAPTURED") + field(SCAN, "I/O Intr") +} + +# Delete driver file flag +record(bo, "S03SIM-EA-FSCN-01:HDF5:DeleteDriverFile") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)DELETE_DRIVER_FILE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:DeleteDriverFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)DELETE_DRIVER_FILE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:WriteStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)WRITE_STATUS") + field(ZNAM, "Write OK") + field(ZSV, "NO_ALARM") + field(ONAM, "Write error") + field(OSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-01:HDF5:WriteMessage") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)WRITE_MESSAGE") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:HDF5:LazyOpen") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)FILE_LAZY_OPEN") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:LazyOpen_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)FILE_LAZY_OPEN") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:HDF5:TempSuffix") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)FILE_TEMP_SUFFIX") + field(VAL, "") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:TempSuffix_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)FILE_TEMP_SUFFIX") + field(VAL, "") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:HDF5:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:HDF5:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:HDF5:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:HDF5:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:HDF5:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:HDF5:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:HDF5:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:HDF5:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:HDF5:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:HDF5:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:HDF5:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.hdf,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.hdf,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:HDF5:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:HDF5:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:HDF5:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:HDF5:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:HDF5:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:HDF5:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:HDF5:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:HDF5:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.hdf,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:HDF5:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:HDF5:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:HDF5:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:HDF5:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:HDF5:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:HDF5:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:HDF5:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.hdf,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:HDF5:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.hdf,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:HDF5:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:HDF5:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.hdf,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:HDF5:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.hdf,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:HDF5:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:HDF5:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:HDF5:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:HDF5:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:HDF5:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:HDF5:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:HDF5:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.hdf,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:HDF5:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.hdf,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:HDF5:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:HDF5:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:HDF5:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:HDF5:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:HDF5:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:HDF5:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:HDF5:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:HDF5:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.hdf,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:HDF5:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.hdf,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:HDF5:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.hdf,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:HDF5:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:HDF5:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:HDF5:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:HDF5:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:HDF5:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:HDF5:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:HDF5:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:HDF5:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:HDF5:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:HDF5:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:HDF5:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:HDF5:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:HDF5:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:HDF5:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:HDF5:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:HDF5:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:HDF5:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:HDF5:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.hdf,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:HDF5:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.hdf,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:HDF5:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:HDF5:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:HDF5:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:HDF5:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:HDF5:AsynIO") +{ + field(PORT, "FSCN1.hdf") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +# Flush data to file +record(ai, "S03SIM-EA-FSCN-01:HDF5:FlushNow") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_SWMRFlushNow") + field(ZNAM, "Done") + field(ONAM, "Flush") +} + +# We replace some fields in records defined in NDFile.template +# File data format +record(mbbo, "S03SIM-EA-FSCN-01:HDF5:FileFormat") +{ + field(ZRST, "HDF5") + field(ZRVL, "0") + field(ONST, "Invalid") + field(ONVL, "1") +} + +record(mbbi, "S03SIM-EA-FSCN-01:HDF5:FileFormat_RBV") +{ + field(ZRST, "HDF5") + field(ZRVL, "0") + field(ONST, "Undefined") + field(ONVL, "1") +} + +record(bo, "S03SIM-EA-FSCN-01:HDF5:ChunkSizeAuto") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSizeAuto") + field(PINI, "YES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:ChunkSizeAuto_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSizeAuto") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:NumRowChunks") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_nRowChunks") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:NumRowChunks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_nRowChunks") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:NumColChunks") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_nColChunks") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:NumColChunks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_nColChunks") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ChunkSize2") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize2") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ChunkSize2_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize2") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ChunkSize3") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize3") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ChunkSize3_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ChunkSize4") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize4") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ChunkSize4_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize4") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ChunkSize5") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize5") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ChunkSize5_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize5") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ChunkSize6") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize6") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ChunkSize6_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize6") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ChunkSize7") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize7") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ChunkSize7_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize7") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ChunkSize8") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize8") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ChunkSize8_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize8") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ChunkSize9") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize9") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ChunkSize9_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize9") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:NumFramesChunks") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_nFramesChunks") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:NumFramesChunks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_nFramesChunks") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:NDAttributeChunk") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_NDAttributeChunk") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:NDAttributeChunk_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_NDAttributeChunk") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:BoundaryAlign") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkBoundaryAlign") + field(PINI, "YES") + field(VAL, "0") + field(EGU, "bytes") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:BoundaryAlign_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkBoundaryAlign") + field(SCAN, "I/O Intr") + field(EGU, "bytes") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:BoundaryThreshold") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkBoundaryThreshold") + field(PINI, "YES") + field(VAL, "1") + field(EGU, "bytes") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:BoundaryThreshold_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkBoundaryThreshold") + field(SCAN, "I/O Intr") + field(EGU, "bytes") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:NumExtraDims") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_nExtraDims") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:NumExtraDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_nExtraDims") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSizeN") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSizeN") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSizeN_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSizeN") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimNameN_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimNameN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSizeX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSizeX") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSizeX") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimNameX_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimNameX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSizeY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSizeY") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSizeY") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimNameY_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimNameY") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize3") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize3") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize3_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize3") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimName3_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimName3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize4") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize4") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize4_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize4") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimName4_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimName4") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize5") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize5") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize5_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize5") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimName5_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimName5") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize6") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize6") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize6_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize6") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimName6_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimName6") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize7") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize7") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize7_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize7") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimName7_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimName7") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize8") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize8") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize8_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize8") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimName8_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimName8") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize9") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize9") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize9_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize9") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimName9_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimName9") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:HDF5:StoreAttr") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_storeAttributes") + field(PINI, "YES") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:StoreAttr_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_storeAttributes") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +record(bo, "S03SIM-EA-FSCN-01:HDF5:StorePerform") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_storePerformance") + field(PINI, "YES") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:StorePerform_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_storePerformance") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +record(ai, "S03SIM-EA-FSCN-01:HDF5:RunTime") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_totalRuntime") + field(SCAN, "I/O Intr") + field(PREC, "3") + field(EGU, "s") +} + +record(ai, "S03SIM-EA-FSCN-01:HDF5:IOSpeed") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_totalIoSpeed") + field(SCAN, "I/O Intr") + field(PREC, "1") + field(EGU, "Mbit/s") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:NumFramesFlush") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_flushNthFrame") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:NumFramesFlush_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_flushNthFrame") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:HDF5:Compression") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_compressionType") + field(PINI, "YES") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "N-bit") + field(ONVL, "1") + field(TWST, "szip") + field(TWVL, "2") + field(THST, "zlib") + field(THVL, "3") + field(FRST, "Blosc") + field(FRVL, "4") + field(FVST, "BSLZ4") + field(FVVL, "5") + field(SXST, "LZ4") + field(SXVL, "6") + field(SVST, "JPEG") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:HDF5:Compression_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_compressionType") + field(SCAN, "I/O Intr") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "N-bit") + field(ONVL, "1") + field(TWST, "szip") + field(TWVL, "2") + field(THST, "zlib") + field(THVL, "3") + field(FRST, "Blosc") + field(FRVL, "4") + field(FVST, "BSLZ4") + field(FVVL, "5") + field(SXST, "LZ4") + field(SXVL, "6") + field(SVST, "JPEG") + field(SVVL, "7") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:NumDataBits") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_nbitsPrecision") + field(PINI, "YES") + field(EGU, "bit") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:NumDataBits_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_nbitsPrecision") + field(SCAN, "I/O Intr") + field(EGU, "bit") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:DataBitsOffset") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_nbitsOffset") + field(PINI, "YES") + field(EGU, "bit") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:DataBitsOffset_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_nbitsOffset") + field(SCAN, "I/O Intr") + field(EGU, "bit") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:SZipNumPixels") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_szipNumPixels") + field(PINI, "YES") + field(EGU, "bit") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:SZipNumPixels_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_szipNumPixels") + field(SCAN, "I/O Intr") + field(EGU, "bit") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ZLevel") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_zCompressLevel") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ZLevel_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_zCompressLevel") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-01:HDF5:BloscShuffle") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_bloscShuffleType") + field(PINI, "YES") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "Byte") + field(ONVL, "1") + field(TWST, "Bit") + field(TWVL, "2") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:HDF5:BloscShuffle_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_bloscShuffleType") + field(SCAN, "I/O Intr") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "Byte") + field(ONVL, "1") + field(TWST, "Bit") + field(TWVL, "2") +} + +record(mbbo, "S03SIM-EA-FSCN-01:HDF5:BloscCompressor") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_bloscCompressor") + field(PINI, "YES") + field(ZRST, "BloscLZ") + field(ZRVL, "0") + field(ONST, "LZ4") + field(ONVL, "1") + field(TWST, "LZ4HC") + field(TWVL, "2") + field(THST, "SNAPPY") + field(THVL, "3") + field(FRST, "ZLIB") + field(FRVL, "4") + field(FVST, "ZSTD") + field(FVVL, "5") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:HDF5:BloscCompressor_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_bloscCompressor") + field(SCAN, "I/O Intr") + field(ZRST, "BloscLZ") + field(ZRVL, "0") + field(ONST, "LZ4") + field(ONVL, "1") + field(TWST, "LZ4HC") + field(TWVL, "2") + field(THST, "SNAPPY") + field(THVL, "3") + field(FRST, "ZLIB") + field(FRVL, "4") + field(FVST, "ZSTD") + field(FVVL, "5") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:BloscLevel") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_bloscCompressLevel") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:BloscLevel_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_bloscCompressLevel") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:JPEGQuality") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_jpegQuality") + field(VAL, "90") + field(DRVL, "1") + field(DRVH, "100") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:JPEGQuality_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_jpegQuality") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:HDF5:DimAttDatasets") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_dimAttDatasets") + field(PINI, "YES") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:DimAttDatasets_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_dimAttDatasets") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# File path. +# % autosave 2 +#record(waveform, "S03SIM-EA-FSCN-01:HDF5:XMLPath") +#{ +# field(PINI, "YES") +# field(DTYP, "asynOctetWrite") +# field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_layoutDirectory") +# field(FTVL, "CHAR") +# field(NELM, "256") +#} + +record(waveform, "S03SIM-EA-FSCN-01:HDF5:XMLErrorMsg_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_layoutErrorMsg") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:XMLValid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_layoutValid") + field(ZNAM, "No") + field(ZSV, "MAJOR") + field(ONAM, "Yes") + field(OSV, "NO_ALARM") + field(SCAN, "I/O Intr") +} + +# Filename +# % autosave 2 +record(waveform, "S03SIM-EA-FSCN-01:HDF5:XMLFileName") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_layoutFilename") + field(FTVL, "CHAR") + field(NELM, "2048") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-01:HDF5:XMLFileName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_layoutFilename") + field(FTVL, "CHAR") + field(NELM, "2048") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:SWMRSupported_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_SWMRSupported") + field(SCAN, "I/O Intr") + field(ZNAM, "Not Supported") + field(ONAM, "Supported") +} + +record(bo, "S03SIM-EA-FSCN-01:HDF5:SWMRMode") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_SWMRMode") + field(PINI, "YES") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:SWMRMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_SWMRMode") + field(SCAN, "I/O Intr") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:SWMRActive_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_SWMRRunning") + field(SCAN, "I/O Intr") + field(ZNAM, "Off") + field(ONAM, "Active") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:SWMRCbCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_SWMRCbCounter") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:HDF5:PositionMode") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posRunning") + field(PINI, "YES") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "S03SIM-EA-FSCN-01:HDF5:PositionMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posRunning") + field(SCAN, "I/O Intr") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosNameDimN") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDimN") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosNameDimN_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDimN") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosNameDimX") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDimX") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosNameDimX_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDimX") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosNameDimY") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDimY") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosNameDimY_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDimY") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosNameDim3") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim3") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosNameDim3_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim3") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosNameDim4") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim4") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosNameDim4_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim4") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosNameDim5") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim5") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosNameDim5_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim5") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosNameDim6") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim6") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosNameDim6_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim6") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosNameDim7") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim7") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosNameDim7_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim7") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosNameDim8") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim8") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosNameDim8_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim8") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosNameDim9") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim9") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosNameDim9_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim9") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosIndexDimN") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDimN") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosIndexDimN_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDimN") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosIndexDimX") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDimX") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosIndexDimX_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDimX") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosIndexDimY") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDimY") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosIndexDimY_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDimY") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim3") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim3") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim3_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim3") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim4") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim4") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim4_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim4") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim5") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim5") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim5_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim5") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim6") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim6") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim6_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim6") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim7") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim7") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim7_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim7") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim8") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim8") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim8_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim8") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim9") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim9") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim9_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim9") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:HDF5:FillValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_fillValue") + field(PINI, "YES") + field(PREC, "1") +} + +record(ai, "S03SIM-EA-FSCN-01:HDF5:FillValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_fillValue") + field(SCAN, "I/O Intr") + field(PREC, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunkX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunkX") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunkX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunkX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunkY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunkY") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunkY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunkY") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk3") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk3") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk3_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk4") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk4") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk4_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk4") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk5") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk5") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk5_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk5") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk6") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk6") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk6_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk6") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk7") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk7") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk7_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk7") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk8") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk8") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk8_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk8") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk9") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk9") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk9_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk9") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDFileHDF5.template +# Database for NDFileHDF5 driver, which saves files for NDArray data. + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, ADDR, Asyn Port address +# % macro, TIMEOUT, Asyn Port timeout +# % macro, XMLSIZE, Number of elements of the XML layout waveform record + +# This associates the template with an edm screen +# % gui, FSCN2.hdf, edmtab, NDFileHDF5.edl, P=S03SIM-EA-FSCN-02,R=:HDF5: + +# This associates a BOY screen with the template +# % gui, FSCN2.hdf, boydetail,ADApp_opi/dls/hdf5_detail.opi, P=S03SIM-EA-FSCN-02, R=:HDF5:, DESC=HDF5 File +# % gui, FSCN2.hdf, boyembed, ADApp_opi/dls/hdf5_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:HDF5:, DESC=HDF5 File +# % gui, FSCN2.hdf, boyembed, ADApp_opi/dls/hdf5_embed.opi, P=S03SIM-EA-FSCN-02, R=:HDF5:, DESC=HDF5 File + +# Info +# % gui, FSCN2.hdf, groupHeading, Info +# % gui, FSCN2.hdf, readback, Port name, S03SIM-EA-FSCN-02:HDF5:PortName_RBV +# % gui, FSCN2.hdf, readback, Plugin type, S03SIM-EA-FSCN-02:HDF5:PluginType_RBV +# Input +# % gui, FSCN2.hdf, demandString, Input, S03SIM-EA-FSCN-02:HDF5:NDArrayPort +# % gui, FSCN2.hdf, readback, Input, S03SIM-EA-FSCN-02:HDF5:NDArrayPort_RBV + +# % gui, FSCN2.hdf, groupHeading, Callback +# % gui, FSCN2.hdf, enum, Callbacks, S03SIM-EA-FSCN-02:HDF5:EnableCallbacks +# % gui, FSCN2.hdf, statusbits, Callbacks, S03SIM-EA-FSCN-02:HDF5:EnableCallbacks_RBV +# % gui, FSCN2.hdf, demand, Min Callback Time, S03SIM-EA-FSCN-02:HDF5:MinCallbackTime +# % gui, FSCN2.hdf, readback, Min Callback Time, S03SIM-EA-FSCN-02:HDF5:MinCallbackTime_RBV +# % gui, FSCN2.hdf, enum, Block Callbacks, S03SIM-EA-FSCN-02:HDF5:BlockingCallbacks +# % gui, FSCN2.hdf, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:HDF5:BlockingCallbacks_RBV + +# % gui, FSCN2.hdf, groupHeading, Counters +# % gui, FSCN2.hdf, demand, Array Counter, S03SIM-EA-FSCN-02:HDF5:ArrayCounter +# % gui, FSCN2.hdf, readback, Array Counter, S03SIM-EA-FSCN-02:HDF5:ArrayCounter_RBV +# % gui, FSCN2.hdf, readback, Array Rate (fps), S03SIM-EA-FSCN-02:HDF5:ArrayRate_RBV +# % gui, FSCN2.hdf, readback, Queue Use, S03SIM-EA-FSCN-02:HDF5:QueueUse +# % gui, FSCN2.hdf, readback, Queue Size, S03SIM-EA-FSCN-02:HDF5:QueueSize +# % gui, FSCN2.hdf, demand, Dropped Arrays, S03SIM-EA-FSCN-02:HDF5:DroppedArrays +# % gui, FSCN2.hdf, readback, Dropped Arrays, S03SIM-EA-FSCN-02:HDF5:DroppedArrays_RBV + +# % gui, FSCN2.hdf, groupHeading, Array Settings +# % gui, FSCN2.hdf, readback, Num Dimensions, S03SIM-EA-FSCN-02:HDF5:NDimensions_RBV +# % gui, FSCN2.hdf, readback, Dim 0 Size, S03SIM-EA-FSCN-02:HDF5:ArraySize0_RBV +# % gui, FSCN2.hdf, readback, Dim 1 Size, S03SIM-EA-FSCN-02:HDF5:ArraySize1_RBV +# % gui, FSCN2.hdf, readback, Dim 2 Size, S03SIM-EA-FSCN-02:HDF5:ArraySize2_RBV +# % gui, FSCN2.hdf, readback, Input Data Type, S03SIM-EA-FSCN-02:HDF5:DataType_RBV +# % gui, FSCN2.hdf, readback, Colour Mode, S03SIM-EA-FSCN-02:HDF5:ColorMode_RBV +# % gui, FSCN2.hdf, readback, Bayer Pattern, S03SIM-EA-FSCN-02:HDF5:BayerPattern_RBV +# % gui, FSCN2.hdf, readback, Unique id, S03SIM-EA-FSCN-02:HDF5:UniqueId_RBV +# % gui, FSCN2.hdf, readback, Timestamp, S03SIM-EA-FSCN-02:HDF5:TimeStamp_RBV +# File +# % gui, FSCN2.hdf, groupHeading, File +# % gui, FSCN2.hdf, demandString, File Path, S03SIM-EA-FSCN-02:HDF5:FilePath +# % gui, FSCN2.hdf, readback, File Path, S03SIM-EA-FSCN-02:HDF5:FilePath_RBV +# % gui, FSCN2.hdf, statusbits, File Path Exists, S03SIM-EA-FSCN-02:HDF5:FilePathExists_RBV +# % gui, FSCN2.hdf, demand, File Name, S03SIM-EA-FSCN-02:HDF5:FileName +# % gui, FSCN2.hdf, readback, File Name, S03SIM-EA-FSCN-02:HDF5:FileName_RBV +# % gui, FSCN2.hdf, demand, File Number, S03SIM-EA-FSCN-02:HDF5:FileNumber +# % gui, FSCN2.hdf, readback, File Number, S03SIM-EA-FSCN-02:HDF5:FileNumber_RBV +# % gui, FSCN2.hdf, enum, Auto Increment, S03SIM-EA-FSCN-02:HDF5:AutoIncrement +# % gui, FSCN2.hdf, statusbits, Auto Increment, S03SIM-EA-FSCN-02:HDF5:AutoIncrement_RBV +# % gui, FSCN2.hdf, demand, File Format, S03SIM-EA-FSCN-02:HDF5:FileTemplate +# % gui, FSCN2.hdf, readback, File Format, S03SIM-EA-FSCN-02:HDF5:FileTemplate_RBV +# % gui, FSCN2.hdf, demand, N to Capture, S03SIM-EA-FSCN-02:HDF5:NumCapture +# % gui, FSCN2.hdf, readback, N to Capture, S03SIM-EA-FSCN-02:HDF5:NumCapture_RBV +# % gui, FSCN2.hdf, readback, N Captured, S03SIM-EA-FSCN-02:HDF5:NumCaptured_RBV +# % gui, FSCN2.hdf, enum, Auto Save, S03SIM-EA-FSCN-02:HDF5:AutoSave +# % gui, FSCN2.hdf, statusbits, Auto Save , S03SIM-EA-FSCN-02:HDF5:AutoSave_RBV +# % gui, FSCN2.hdf, enum, Capture mode, S03SIM-EA-FSCN-02:HDF5:FileWriteMode +# % gui, FSCN2.hdf, readback, Capture mode, S03SIM-EA-FSCN-02:HDF5:FileWriteMode_RBV +# % gui, FSCN2.hdf, enum, Capture, S03SIM-EA-FSCN-02:HDF5:Capture +# % gui, FSCN2.hdf, readback, Capture, S03SIM-EA-FSCN-02:HDF5:Capture_RBV +# % gui, FSCN2.hdf, readback, Write Message, S03SIM-EA-FSCN-02:HDF5:WriteMessage +# % gui, FSCN2.hdf, readback, Write Status, S03SIM-EA-FSCN-02:HDF5:WriteStatus +# % gui, FSCN2.hdf, readback, Write Filename, S03SIM-EA-FSCN-02:HDF5:FullFileName_RBV +# % gui, FSCN2.hdf, enum, Lazy Open, S03SIM-EA-FSCN-02:HDF5:LazyOpen +# % gui, FSCN2.hdf, readback, Lazy Open, S03SIM-EA-FSCN-02:HDF5:LazyOpen_RBV +# % gui, FSCN2.hdf, demand, Temporary Suffix, S03SIM-EA-FSCN-02:HDF5:TempSuffix +# % gui, FSCN2.hdf, readback, Temporary Suffix, S03SIM-EA-FSCN-02:HDF5:TempSuffix_RBV +# % gui, FSCN2.hdf, demand, Create Directories, S03SIM-EA-FSCN-02:HDF5:CreateDirectory +# % gui, FSCN2.hdf, readback, Create Directories, S03SIM-EA-FSCN-02:HDF5:CreateDirectory_RBV +# HDF5 +# % gui, FSCN2.hdf, groupHeading, HDF5 +# % gui, FSCN2.hdf, demand, Extra Dimensions, S03SIM-EA-FSCN-02:HDF5:NumExtraDims +# % gui, FSCN2.hdf, readback, Extra Dimensions, S03SIM-EA-FSCN-02:HDF5:NumExtraDims_RBV +# % gui, FSCN2.hdf, demand, Rows per Chunk, S03SIM-EA-FSCN-02:HDF5:NumRowChunks +# % gui, FSCN2.hdf, readback, Rows per Chunk, S03SIM-EA-FSCN-02:HDF5:NumRowChunks_RBV +# % gui, FSCN2.hdf, demand, Cols per Chunk, S03SIM-EA-FSCN-02:HDF5:NumColChunks +# % gui, FSCN2.hdf, readback, Cols per Chunk, S03SIM-EA-FSCN-02:HDF5:NumColChunks_RBV +# % gui, FSCN2.hdf, demand, Frames per Chunk, S03SIM-EA-FSCN-02:HDF5:NumFramesChunks +# % gui, FSCN2.hdf, readback, Frames per Chunk, S03SIM-EA-FSCN-02:HDF5:NumFramesChunks_RBV +# % gui, FSCN2.hdf, demand, Boundary Alignment, S03SIM-EA-FSCN-02:HDF5:BoundaryAlign +# % gui, FSCN2.hdf, readback, Boundary Alignment, S03SIM-EA-FSCN-02:HDF5:BoundaryAlign_RBV +# % gui, FSCN2.hdf, demand, Boundary Threshold, S03SIM-EA-FSCN-02:HDF5:BoundaryThreshold +# % gui, FSCN2.hdf, readback, Boundary Threshold, S03SIM-EA-FSCN-02:HDF5:BoundaryThreshold_RBV +# % gui, FSCN2.hdf, demand, Flush on Nth Frame, S03SIM-EA-FSCN-02:HDF5:NumFramesFlush +# % gui, FSCN2.hdf, readback, Flush on Nth Frame, S03SIM-EA-FSCN-02:HDF5:NumFramesFlush_RBV +# % gui, FSCN2.hdf, enum, Store Attribute Data, S03SIM-EA-FSCN-02:HDF5:StoreAttr +# % gui, FSCN2.hdf, readback, Store Attribute Data, S03SIM-EA-FSCN-02:HDF5:StoreAttr_RBV +# % gui, FSCN2.hdf, enum, Store Performance Data, S03SIM-EA-FSCN-02:HDF5:StorePerform +# % gui, FSCN2.hdf, readback, Store Performance Data, S03SIM-EA-FSCN-02:HDF5:StorePerform_RBV +# % gui, FSCN2.hdf, readback, Total Write Time, S03SIM-EA-FSCN-02:HDF5:RunTime +# % gui, FSCN2.hdf, readback, Total Write Speed, S03SIM-EA-FSCN-02:HDF5:IOSpeed +# % gui, FSCN2.hdf, enum, Compression Type, S03SIM-EA-FSCN-02:HDF5:Compression +# % gui, FSCN2.hdf, readback, Compression Type, S03SIM-EA-FSCN-02:HDF5:Compression_RBV +# % gui, FSCN2.hdf, demand, N-bit bits per Pixel, S03SIM-EA-FSCN-02:HDF5:NumDataBits +# % gui, FSCN2.hdf, readback, N-bit bits per Pixel, S03SIM-EA-FSCN-02:HDF5:NumDataBits_RBV +# % gui, FSCN2.hdf, demand, N-bit Offset, S03SIM-EA-FSCN-02:HDF5:DataBitsOffset +# % gui, FSCN2.hdf, readback, N-bit Offset, S03SIM-EA-FSCN-02:HDF5:DataBitsOffset_RBV +# % gui, FSCN2.hdf, demand, Szip Filter Size, S03SIM-EA-FSCN-02:HDF5:SZipNumPixels +# % gui, FSCN2.hdf, readback, Szip Filter Size, S03SIM-EA-FSCN-02:HDF5:SZipNumPixels_RBV +# % gui, FSCN2.hdf, demand, Zlib Deflate Level, S03SIM-EA-FSCN-02:HDF5:ZLevel +# % gui, FSCN2.hdf, readback, Zlib Deflate Level, S03SIM-EA-FSCN-02:HDF5:ZLevel_RBV + +# Memory +# % gui, FSCN2.hdf, groupHeading, Memory +# % gui, FSCN2.hdf, readback, Max memory, S03SIM-EA-FSCN-02:HDF5:PoolMaxMem +# % gui, FSCN2.hdf, readback, Max buffers, S03SIM-EA-FSCN-02:HDF5:PoolMaxBuffers +# % gui, FSCN2.hdf, readback, Used memory, S03SIM-EA-FSCN-02:HDF5:PoolUsedMem +# % gui, FSCN2.hdf, readback, Allocated buffers, S03SIM-EA-FSCN-02:HDF5:PoolAllocBuffers +# % gui, FSCN2.hdf, readback, Free buffers, S03SIM-EA-FSCN-02:HDF5:PoolFreeBuffers + +#=================================================================# +# Template file: NDFile.template +# Database for NDFile driver, which saves files for NDArray data. +# Mark Rivers +# April 7, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +################################################################### +# These records control file I/O # +################################################################### + +# File path. +record(waveform, "S03SIM-EA-FSCN-02:HDF5:FilePath") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.hdf,0,1)FILE_PATH") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-02:HDF5:FilePath_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)FILE_PATH") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:FilePathExists_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)FILE_PATH_EXISTS") + field(ZNAM, "No") + field(ZSV, "MAJOR") + field(ONAM, "Yes") + field(OSV, "NO_ALARM") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:CreateDirectory") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)CREATE_DIR") + field(VAL, "0" ) + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:CreateDirectory_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)CREATE_DIR") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +# Filename +record(waveform, "S03SIM-EA-FSCN-02:HDF5:FileName") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.hdf,0,1)FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-02:HDF5:FileName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:FileNumber") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)FILE_NUMBER") + field(VAL, "1") + info(ai:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:FileNumber_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)FILE_NUMBER") + field(SCAN, "I/O Intr") +} + +# Autoincrement flag +record(bo, "S03SIM-EA-FSCN-02:HDF5:AutoIncrement") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)AUTO_INCREMENT") + field(VAL, "1") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:AutoIncrement_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)AUTO_INCREMENT") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# File template +record(waveform, "S03SIM-EA-FSCN-02:HDF5:FileTemplate") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.hdf,0,1)FILE_TEMPLATE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-02:HDF5:FileTemplate_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)FILE_TEMPLATE") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +# Full filename, including path +record(waveform, "S03SIM-EA-FSCN-02:HDF5:FullFileName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)FULL_FILE_NAME") + field(FTVL, "CHAR") + field(NELM, "512") + field(SCAN, "I/O Intr") +} + +# Autosave flag +record(bo, "S03SIM-EA-FSCN-02:HDF5:AutoSave") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)AUTO_SAVE") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:AutoSave_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)AUTO_SAVE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# Write file +record(ai, "S03SIM-EA-FSCN-02:HDF5:WriteFile") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)WRITE_FILE") + field(ZNAM, "Done") + field(ONAM, "Write") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:WriteFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)WRITE_FILE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Writing") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + + +# Read file +record(ai, "S03SIM-EA-FSCN-02:HDF5:ReadFile") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)READ_FILE") + field(ZNAM, "Done") + field(ONAM, "Read") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:ReadFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)READ_FILE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Reading") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +# File data format +record(mbbo, "S03SIM-EA-FSCN-02:HDF5:FileFormat") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)FILE_FORMAT") + field(VAL, "0") + field(ZRST, "Undefined") + field(ZRVL, "0") + field(ONST, "Invalid") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:HDF5:FileFormat_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)FILE_FORMAT") + field(ZRST, "netCDF") + field(ZRVL, "0") + field(ONST, "Undefined") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +# File save mode +record(mbbo, "S03SIM-EA-FSCN-02:HDF5:FileWriteMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)WRITE_MODE") + field(VAL, "0") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Capture") + field(ONVL, "1") + field(TWST, "Stream") + field(TWVL, "2") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:HDF5:FileWriteMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)WRITE_MODE") + field(ZRST, "Single") + field(ZRVL, "0") + field(ONST, "Capture") + field(ONVL, "1") + field(TWST, "Stream") + field(TWVL, "2") + field(SCAN, "I/O Intr") +} + +# Capture data +record(ai, "S03SIM-EA-FSCN-02:HDF5:Capture") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)CAPTURE") + field(ZNAM, "Done") + field(ONAM, "Capture") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:Capture_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)CAPTURE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Capturing") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:NumCapture") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)NUM_CAPTURE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:NumCapture_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)NUM_CAPTURE") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:NumCaptured_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)NUM_CAPTURED") + field(SCAN, "I/O Intr") +} + +# Delete driver file flag +record(bo, "S03SIM-EA-FSCN-02:HDF5:DeleteDriverFile") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)DELETE_DRIVER_FILE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:DeleteDriverFile_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)DELETE_DRIVER_FILE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:WriteStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)WRITE_STATUS") + field(ZNAM, "Write OK") + field(ZSV, "NO_ALARM") + field(ONAM, "Write error") + field(OSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +record(waveform, "S03SIM-EA-FSCN-02:HDF5:WriteMessage") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)WRITE_MESSAGE") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:HDF5:LazyOpen") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)FILE_LAZY_OPEN") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:LazyOpen_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)FILE_LAZY_OPEN") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:HDF5:TempSuffix") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)FILE_TEMP_SUFFIX") + field(VAL, "") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:TempSuffix_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)FILE_TEMP_SUFFIX") + field(VAL, "") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:HDF5:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:HDF5:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:HDF5:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:HDF5:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:HDF5:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:HDF5:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:HDF5:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:HDF5:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:HDF5:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:HDF5:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:HDF5:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.hdf,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.hdf,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:HDF5:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:HDF5:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:HDF5:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:HDF5:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:HDF5:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:HDF5:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:HDF5:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:HDF5:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.hdf,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:HDF5:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:HDF5:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:HDF5:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:HDF5:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:HDF5:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:HDF5:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:HDF5:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.hdf,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:HDF5:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.hdf,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:HDF5:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:HDF5:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.hdf,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:HDF5:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.hdf,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:HDF5:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:HDF5:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:HDF5:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:HDF5:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:HDF5:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:HDF5:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:HDF5:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.hdf,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:HDF5:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.hdf,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:HDF5:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:HDF5:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:HDF5:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:HDF5:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:HDF5:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:HDF5:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:HDF5:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:HDF5:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.hdf,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:HDF5:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.hdf,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:HDF5:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.hdf,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:HDF5:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:HDF5:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:HDF5:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:HDF5:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:HDF5:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:HDF5:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:HDF5:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:HDF5:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:HDF5:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:HDF5:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:HDF5:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:HDF5:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:HDF5:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:HDF5:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:HDF5:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:HDF5:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:HDF5:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:HDF5:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.hdf,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:HDF5:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.hdf,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:HDF5:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:HDF5:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:HDF5:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:HDF5:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:HDF5:AsynIO") +{ + field(PORT, "FSCN2.hdf") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +# Flush data to file +record(ai, "S03SIM-EA-FSCN-02:HDF5:FlushNow") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_SWMRFlushNow") + field(ZNAM, "Done") + field(ONAM, "Flush") +} + +# We replace some fields in records defined in NDFile.template +# File data format +record(mbbo, "S03SIM-EA-FSCN-02:HDF5:FileFormat") +{ + field(ZRST, "HDF5") + field(ZRVL, "0") + field(ONST, "Invalid") + field(ONVL, "1") +} + +record(mbbi, "S03SIM-EA-FSCN-02:HDF5:FileFormat_RBV") +{ + field(ZRST, "HDF5") + field(ZRVL, "0") + field(ONST, "Undefined") + field(ONVL, "1") +} + +record(bo, "S03SIM-EA-FSCN-02:HDF5:ChunkSizeAuto") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSizeAuto") + field(PINI, "YES") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:ChunkSizeAuto_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSizeAuto") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:NumRowChunks") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_nRowChunks") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:NumRowChunks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_nRowChunks") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:NumColChunks") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_nColChunks") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:NumColChunks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_nColChunks") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ChunkSize2") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize2") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ChunkSize2_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize2") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ChunkSize3") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize3") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ChunkSize3_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ChunkSize4") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize4") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ChunkSize4_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize4") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ChunkSize5") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize5") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ChunkSize5_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize5") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ChunkSize6") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize6") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ChunkSize6_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize6") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ChunkSize7") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize7") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ChunkSize7_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize7") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ChunkSize8") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize8") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ChunkSize8_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize8") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ChunkSize9") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize9") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ChunkSize9_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize9") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:NumFramesChunks") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_nFramesChunks") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:NumFramesChunks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_nFramesChunks") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:NDAttributeChunk") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_NDAttributeChunk") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:NDAttributeChunk_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_NDAttributeChunk") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:BoundaryAlign") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkBoundaryAlign") + field(PINI, "YES") + field(VAL, "0") + field(EGU, "bytes") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:BoundaryAlign_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkBoundaryAlign") + field(SCAN, "I/O Intr") + field(EGU, "bytes") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:BoundaryThreshold") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkBoundaryThreshold") + field(PINI, "YES") + field(VAL, "1") + field(EGU, "bytes") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:BoundaryThreshold_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkBoundaryThreshold") + field(SCAN, "I/O Intr") + field(EGU, "bytes") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:NumExtraDims") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_nExtraDims") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:NumExtraDims_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_nExtraDims") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSizeN") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSizeN") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSizeN_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSizeN") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimNameN_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimNameN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSizeX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSizeX") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSizeX") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimNameX_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimNameX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSizeY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSizeY") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSizeY") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimNameY_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimNameY") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize3") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize3") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize3_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize3") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimName3_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimName3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize4") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize4") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize4_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize4") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimName4_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimName4") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize5") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize5") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize5_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize5") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimName5_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimName5") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize6") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize6") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize6_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize6") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimName6_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimName6") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize7") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize7") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize7_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize7") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimName7_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimName7") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize8") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize8") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize8_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize8") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimName8_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimName8") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize9") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize9") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize9_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize9") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimName9_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimName9") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:HDF5:StoreAttr") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_storeAttributes") + field(PINI, "YES") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:StoreAttr_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_storeAttributes") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +record(bo, "S03SIM-EA-FSCN-02:HDF5:StorePerform") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_storePerformance") + field(PINI, "YES") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:StorePerform_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_storePerformance") + field(SCAN, "I/O Intr") + field(ZNAM, "No") + field(ONAM, "Yes") +} + +record(ai, "S03SIM-EA-FSCN-02:HDF5:RunTime") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_totalRuntime") + field(SCAN, "I/O Intr") + field(PREC, "3") + field(EGU, "s") +} + +record(ai, "S03SIM-EA-FSCN-02:HDF5:IOSpeed") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_totalIoSpeed") + field(SCAN, "I/O Intr") + field(PREC, "1") + field(EGU, "Mbit/s") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:NumFramesFlush") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_flushNthFrame") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:NumFramesFlush_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_flushNthFrame") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:HDF5:Compression") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_compressionType") + field(PINI, "YES") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "N-bit") + field(ONVL, "1") + field(TWST, "szip") + field(TWVL, "2") + field(THST, "zlib") + field(THVL, "3") + field(FRST, "Blosc") + field(FRVL, "4") + field(FVST, "BSLZ4") + field(FVVL, "5") + field(SXST, "LZ4") + field(SXVL, "6") + field(SVST, "JPEG") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:HDF5:Compression_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_compressionType") + field(SCAN, "I/O Intr") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "N-bit") + field(ONVL, "1") + field(TWST, "szip") + field(TWVL, "2") + field(THST, "zlib") + field(THVL, "3") + field(FRST, "Blosc") + field(FRVL, "4") + field(FVST, "BSLZ4") + field(FVVL, "5") + field(SXST, "LZ4") + field(SXVL, "6") + field(SVST, "JPEG") + field(SVVL, "7") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:NumDataBits") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_nbitsPrecision") + field(PINI, "YES") + field(EGU, "bit") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:NumDataBits_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_nbitsPrecision") + field(SCAN, "I/O Intr") + field(EGU, "bit") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:DataBitsOffset") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_nbitsOffset") + field(PINI, "YES") + field(EGU, "bit") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:DataBitsOffset_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_nbitsOffset") + field(SCAN, "I/O Intr") + field(EGU, "bit") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:SZipNumPixels") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_szipNumPixels") + field(PINI, "YES") + field(EGU, "bit") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:SZipNumPixels_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_szipNumPixels") + field(SCAN, "I/O Intr") + field(EGU, "bit") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ZLevel") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_zCompressLevel") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ZLevel_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_zCompressLevel") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-EA-FSCN-02:HDF5:BloscShuffle") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_bloscShuffleType") + field(PINI, "YES") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "Byte") + field(ONVL, "1") + field(TWST, "Bit") + field(TWVL, "2") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:HDF5:BloscShuffle_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_bloscShuffleType") + field(SCAN, "I/O Intr") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "Byte") + field(ONVL, "1") + field(TWST, "Bit") + field(TWVL, "2") +} + +record(mbbo, "S03SIM-EA-FSCN-02:HDF5:BloscCompressor") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_bloscCompressor") + field(PINI, "YES") + field(ZRST, "BloscLZ") + field(ZRVL, "0") + field(ONST, "LZ4") + field(ONVL, "1") + field(TWST, "LZ4HC") + field(TWVL, "2") + field(THST, "SNAPPY") + field(THVL, "3") + field(FRST, "ZLIB") + field(FRVL, "4") + field(FVST, "ZSTD") + field(FVVL, "5") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:HDF5:BloscCompressor_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_bloscCompressor") + field(SCAN, "I/O Intr") + field(ZRST, "BloscLZ") + field(ZRVL, "0") + field(ONST, "LZ4") + field(ONVL, "1") + field(TWST, "LZ4HC") + field(TWVL, "2") + field(THST, "SNAPPY") + field(THVL, "3") + field(FRST, "ZLIB") + field(FRVL, "4") + field(FVST, "ZSTD") + field(FVVL, "5") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:BloscLevel") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_bloscCompressLevel") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:BloscLevel_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_bloscCompressLevel") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:JPEGQuality") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_jpegQuality") + field(VAL, "90") + field(DRVL, "1") + field(DRVH, "100") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:JPEGQuality_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_jpegQuality") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:HDF5:DimAttDatasets") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_dimAttDatasets") + field(PINI, "YES") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:DimAttDatasets_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_dimAttDatasets") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + +# File path. +# % autosave 2 +#record(waveform, "S03SIM-EA-FSCN-02:HDF5:XMLPath") +#{ +# field(PINI, "YES") +# field(DTYP, "asynOctetWrite") +# field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_layoutDirectory") +# field(FTVL, "CHAR") +# field(NELM, "256") +#} + +record(waveform, "S03SIM-EA-FSCN-02:HDF5:XMLErrorMsg_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_layoutErrorMsg") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:XMLValid_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_layoutValid") + field(ZNAM, "No") + field(ZSV, "MAJOR") + field(ONAM, "Yes") + field(OSV, "NO_ALARM") + field(SCAN, "I/O Intr") +} + +# Filename +# % autosave 2 +record(waveform, "S03SIM-EA-FSCN-02:HDF5:XMLFileName") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_layoutFilename") + field(FTVL, "CHAR") + field(NELM, "2048") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-EA-FSCN-02:HDF5:XMLFileName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_layoutFilename") + field(FTVL, "CHAR") + field(NELM, "2048") + field(SCAN, "I/O Intr") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:SWMRSupported_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_SWMRSupported") + field(SCAN, "I/O Intr") + field(ZNAM, "Not Supported") + field(ONAM, "Supported") +} + +record(bo, "S03SIM-EA-FSCN-02:HDF5:SWMRMode") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_SWMRMode") + field(PINI, "YES") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:SWMRMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_SWMRMode") + field(SCAN, "I/O Intr") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:SWMRActive_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_SWMRRunning") + field(SCAN, "I/O Intr") + field(ZNAM, "Off") + field(ONAM, "Active") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:SWMRCbCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_SWMRCbCounter") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-02:HDF5:PositionMode") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posRunning") + field(PINI, "YES") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "S03SIM-EA-FSCN-02:HDF5:PositionMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posRunning") + field(SCAN, "I/O Intr") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosNameDimN") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDimN") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosNameDimN_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDimN") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosNameDimX") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDimX") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosNameDimX_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDimX") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosNameDimY") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDimY") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosNameDimY_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDimY") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosNameDim3") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim3") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosNameDim3_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim3") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosNameDim4") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim4") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosNameDim4_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim4") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosNameDim5") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim5") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosNameDim5_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim5") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosNameDim6") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim6") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosNameDim6_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim6") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosNameDim7") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim7") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosNameDim7_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim7") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosNameDim8") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim8") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosNameDim8_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim8") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosNameDim9") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim9") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosNameDim9_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim9") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosIndexDimN") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDimN") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosIndexDimN_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDimN") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosIndexDimX") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDimX") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosIndexDimX_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDimX") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosIndexDimY") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDimY") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosIndexDimY_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDimY") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim3") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim3") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim3_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim3") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim4") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim4") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim4_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim4") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim5") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim5") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim5_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim5") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim6") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim6") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim6_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim6") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim7") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim7") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim7_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim7") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim8") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim8") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim8_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim8") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim9") +{ + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim9") + field(PINI, "YES") +} + +record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim9_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim9") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:HDF5:FillValue") +{ + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_fillValue") + field(PINI, "YES") + field(PREC, "1") +} + +record(ai, "S03SIM-EA-FSCN-02:HDF5:FillValue_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_fillValue") + field(SCAN, "I/O Intr") + field(PREC, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunkX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunkX") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunkX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunkX") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunkY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunkY") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunkY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunkY") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk3") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk3") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk3_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk4") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk4") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk4_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk4") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk5") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk5") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk5_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk5") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk6") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk6") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk6_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk6") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk7") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk7") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk7_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk7") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk8") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk8") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk8_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk8") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk9") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk9") + field(PINI, "YES") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk9_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk9") + field(SCAN, "I/O Intr") +} +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, QUALITY, Jpeg Quality in percent +# % macro, MAXW, Maximum Jpeg Width +# % macro, MAXH, Maximum Jpeg Height +# % macro, SETW, Set initial Jpeg Width +# % macro, SETH, Set initial Jpeg Height +# % gui, OAV.mjpg, edmtab, ffmpegStream.edl, P=S03SIM-DI-OAV-01,R=:MJPG: + + +# # \file +# # ffmpegServer contains a very simple http server based on +# # nullhttpd. If a file named +# # \.jpg is requested for any ffmpegStream object named \, then it +# # will return the last NDArray received by the object compressed to jpeg. If +# # \.mjpg is requested then it will return an mjpg stream over http to the +# # client. Otherwise, it will return an index page listing all the available +# # streams. +# # \section ffmpegStream_setup Setup +# # - In the database, an instance of NDPluginBase is required, followed by an +# # instance of this template. +# # - In the startup scripts, call ffmpegServerConfigure() once per IOC to setup +# # the http server, then call ffmpegStreamConfigure() once per ffmpegStream +# # instance to setup the areadetector plugin +# # - see \ref build_instructions +# # \section ffmpegStream_screenshots Screenshots +# # \image html server.png "Index page for ffmpegServer" +# # \image html ffmpegStreamEdm.png "Edm screen for ffmpegStream" + +# This associates a BOY screen with the template +# % gui, OAV.mjpg, boydetail,ffmpegServerApp_opi/mjpg_detail.opi, P=S03SIM-DI-OAV-01, R=:MJPG:, DESC=MPEG Viewer +# % gui, OAV.mjpg, boyembed, ffmpegServerApp_opi/mjpg_embed_box.opi, P=S03SIM-DI-OAV-01, R=:MJPG:, DESC=MPEG Viewer +# % gui, OAV.mjpg, boyembed, ffmpegServerApp_opi/mjpg_embed.opi, P=S03SIM-DI-OAV-01, R=:MJPG:, DESC=MPEG Viewer + +# Info +# % gui, OAV.mjpg, groupHeading, Info +# % gui, OAV.mjpg, readback, Port name, S03SIM-DI-OAV-01:MJPG:PortName_RBV +# % gui, OAV.mjpg, readback, Plugin type, S03SIM-DI-OAV-01:MJPG:PluginType_RBV +# Input +# % gui, OAV.mjpg, demandString, Input, S03SIM-DI-OAV-01:MJPG:NDArrayPort +# % gui, OAV.mjpg, readback, Input, S03SIM-DI-OAV-01:MJPG:NDArrayPort_RBV + +# % gui, OAV.mjpg, groupHeading, Callback +# % gui, OAV.mjpg, enum, Callbacks, S03SIM-DI-OAV-01:MJPG:EnableCallbacks +# % gui, OAV.mjpg, statusbits, Callbacks, S03SIM-DI-OAV-01:MJPG:EnableCallbacks_RBV +# % gui, OAV.mjpg, demand, Min Callback Time, S03SIM-DI-OAV-01:MJPG:MinCallbackTime +# % gui, OAV.mjpg, readback, Min Callback Time, S03SIM-DI-OAV-01:MJPG:MinCallbackTime_RBV +# % gui, OAV.mjpg, enum, Block Callbacks, S03SIM-DI-OAV-01:MJPG:BlockingCallbacks +# % gui, OAV.mjpg, statusbits, Block Callbacks, S03SIM-DI-OAV-01:MJPG:BlockingCallbacks_RBV + +# % gui, OAV.mjpg, groupHeading, Counters +# % gui, OAV.mjpg, demand, Array Counter, S03SIM-DI-OAV-01:MJPG:ArrayCounter +# % gui, OAV.mjpg, readback, Array Counter, S03SIM-DI-OAV-01:MJPG:ArrayCounter_RBV +# % gui, OAV.mjpg, readback, Array Rate (fps), S03SIM-DI-OAV-01:MJPG:ArrayRate_RBV +# % gui, OAV.mjpg, readback, Queue Use, S03SIM-DI-OAV-01:MJPG:QueueUse +# % gui, OAV.mjpg, readback, Queue Size, S03SIM-DI-OAV-01:MJPG:QueueSize +# % gui, OAV.mjpg, demand, Dropped Arrays, S03SIM-DI-OAV-01:MJPG:DroppedArrays +# % gui, OAV.mjpg, readback, Dropped Arrays, S03SIM-DI-OAV-01:MJPG:DroppedArrays_RBV + +# % gui, OAV.mjpg, groupHeading, Array Settings +# % gui, OAV.mjpg, readback, Num Dimensions, S03SIM-DI-OAV-01:MJPG:NDimensions_RBV +# % gui, OAV.mjpg, readback, Dim 0 Size, S03SIM-DI-OAV-01:MJPG:ArraySize0_RBV +# % gui, OAV.mjpg, readback, Dim 1 Size, S03SIM-DI-OAV-01:MJPG:ArraySize1_RBV +# % gui, OAV.mjpg, readback, Dim 2 Size, S03SIM-DI-OAV-01:MJPG:ArraySize2_RBV +# % gui, OAV.mjpg, readback, Input Data Type, S03SIM-DI-OAV-01:MJPG:DataType_RBV +# % gui, OAV.mjpg, readback, Colour Mode, S03SIM-DI-OAV-01:MJPG:ColorMode_RBV +# % gui, OAV.mjpg, readback, Bayer Pattern, S03SIM-DI-OAV-01:MJPG:BayerPattern_RBV +# % gui, OAV.mjpg, readback, Unique id, S03SIM-DI-OAV-01:MJPG:UniqueId_RBV +# % gui, OAV.mjpg, readback, Timestamp, S03SIM-DI-OAV-01:MJPG:TimeStamp_RBV + +# Video +# % gui, OAV.mjpg, groupHeading, Video Settings +# % gui, OAV.mjpg, readback, Host, S03SIM-DI-OAV-01:MJPG:HOST_RBV +# % gui, OAV.mjpg, readback, Host port, S03SIM-DI-OAV-01:MJPG:HTTP_PORT_RBV +# % gui, OAV.mjpg, readback, Num clients, S03SIM-DI-OAV-01:MJPG:CLIENTS_RBV +# % gui, OAV.mjpg, demand, JPEG Quality, S03SIM-DI-OAV-01:MJPG:QUALITY +# % gui, OAV.mjpg, readback, JPEG Quality, S03SIM-DI-OAV-01:MJPG:QUALITY_RBV +# % gui, OAV.mjpg, demand, Max Width, S03SIM-DI-OAV-01:MJPG:MAXW +# % gui, OAV.mjpg, readback, Max Width, S03SIM-DI-OAV-01:MJPG:MAXW_RBV +# % gui, OAV.mjpg, demand, Max Height, S03SIM-DI-OAV-01:MJPG:MAXH +# % gui, OAV.mjpg, readback, Max Height, S03SIM-DI-OAV-01:MJPG:MAXH_RBV +# % gui, OAV.mjpg, enum, Always On, S03SIM-DI-OAV-01:MJPG:ALWAYS_ON +# % gui, OAV.mjpg, readback, Always On, S03SIM-DI-OAV-01:MJPG:ALWAYS_ON_RBV +# % gui, OAV.mjpg, readback, Snapshot URL, S03SIM-DI-OAV-01:MJPG:JPG_URL_RBV +# % gui, OAV.mjpg, readback, Streaming URL, S03SIM-DI-OAV-01:MJPG:MJPG_URL_RBV +# % gui, OAV.mjpg, enum, Show Grid, S03SIM-DI-OAV-01:MJPG:GRID +# % gui, OAV.mjpg, demand, X Position, S03SIM-DI-OAV-01:MJPG:GX +# % gui, OAV.mjpg, demand, Y Position, S03SIM-DI-OAV-01:MJPG:GY +# % gui, OAV.mjpg, demand, Spacing, S03SIM-DI-OAV-01:MJPG:GS +# % gui, OAV.mjpg, demand, Colour RGB, S03SIM-DI-OAV-01:MJPG:GCOL +# % gui, OAV.mjpg, command, Fast Viewer +# % gui, OAV.mjpg, command, Fallback Viewer +# % gui, OAV.mjpg, command, Firefox (slow) +# % gui, OAV.mjpg, command, Firefox (snapshot) + + +# Memory +# % gui, OAV.mjpg, groupHeading, Memory +# % gui, OAV.mjpg, readback, Max memory, S03SIM-DI-OAV-01:MJPG:PoolMaxMem +# % gui, OAV.mjpg, readback, Max buffers, S03SIM-DI-OAV-01:MJPG:PoolMaxBuffers +# % gui, OAV.mjpg, readback, Used memory, S03SIM-DI-OAV-01:MJPG:PoolUsedMem +# % gui, OAV.mjpg, readback, Allocated buffers, S03SIM-DI-OAV-01:MJPG:PoolAllocBuffers +# % gui, OAV.mjpg, readback, Free buffers, S03SIM-DI-OAV-01:MJPG:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:MJPG:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.mjpg,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:MJPG:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.mjpg,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:MJPG:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.mjpg,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:MJPG:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.mjpg,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:MJPG:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.mjpg,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:MJPG:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.mjpg,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:MJPG:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.mjpg,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:MJPG:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.mjpg,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:MJPG:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:MJPG:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:MJPG:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:MJPG:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:MJPG:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:MJPG:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:MJPG:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:MJPG:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:MJPG:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:MJPG:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:MJPG:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:MJPG:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:MJPG:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.mjpg,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.mjpg,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:MJPG:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:MJPG:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.mjpg,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:MJPG:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:MJPG:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:MJPG:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:MJPG:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:MJPG:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:MJPG:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.mjpg,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:MJPG:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:MJPG:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:MJPG:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:MJPG:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:MJPG:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:MJPG:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:MJPG:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:MJPG:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.mjpg,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:MJPG:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.mjpg,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:MJPG:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:MJPG:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.mjpg,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:MJPG:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.mjpg,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:MJPG:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:MJPG:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:MJPG:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:MJPG:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:MJPG:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.mjpg,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:MJPG:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.mjpg,0,1)NDARRAY_PORT") + field(VAL, "OAV.over") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:MJPG:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.mjpg,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:MJPG:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:MJPG:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:MJPG:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:MJPG:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.mjpg,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:MJPG:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.mjpg,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:MJPG:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:MJPG:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:MJPG:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:MJPG:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:MJPG:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:MJPG:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:MJPG:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:MJPG:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.mjpg,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:MJPG:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.mjpg,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:MJPG:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.mjpg,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:MJPG:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:MJPG:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:MJPG:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:MJPG:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:MJPG:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:MJPG:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:MJPG:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:MJPG:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:MJPG:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:MJPG:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:MJPG:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:MJPG:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:MJPG:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:MJPG:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:MJPG:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:MJPG:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:MJPG:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:MJPG:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:MJPG:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:MJPG:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:MJPG:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.mjpg,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:MJPG:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.mjpg,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:MJPG:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:MJPG:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:MJPG:SortSize") + field(OUT, "S03SIM-DI-OAV-01:MJPG:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:MJPG:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:MJPG:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:MJPG:AsynIO") +{ + field(PORT, "OAV.mjpg") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +# # JPEG Quality +record(ao, "S03SIM-DI-OAV-01:MJPG:QUALITY") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg 0)FFMPEG_QUALITY") + field(VAL, "100") + field(DRVH, "100") + field(DRVL, "0") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +# # JPEG Quality Readback from driver +record(ai, "S03SIM-DI-OAV-01:MJPG:QUALITY_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg 0)FFMPEG_QUALITY") +} + +# # Maximum jpg width +record(ao, "S03SIM-DI-OAV-01:MJPG:MAXW") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg 0)FFMPEG_MAXW") + field(VAL, "1600") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +# # Maximum jpg width Readback from driver +record(ai, "S03SIM-DI-OAV-01:MJPG:MAXW_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg 0)FFMPEG_MAXW") +} + +# # Maximum jpg height +record(ao, "S03SIM-DI-OAV-01:MJPG:MAXH") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg 0)FFMPEG_MAXH") + field(VAL, "1200") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +# # Maximum jpg height Readback from driver +record(ai, "S03SIM-DI-OAV-01:MJPG:MAXH_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg 0)FFMPEG_MAXH") +} + +# # Set jpg width +record(ao, "S03SIM-DI-OAV-01:MJPG:SETW") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg 0)FFMPEG_SETW") + field(VAL, "0") + field(PINI, "1") +} + +# # Set jpg width Readback from driver +record(ai, "S03SIM-DI-OAV-01:MJPG:SETW_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg 0)FFMPEG_SETW") +} + +# # Set jpg height +record(ao, "S03SIM-DI-OAV-01:MJPG:SETH") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg 0)FFMPEG_SETH") + field(VAL, "0") + field(PINI, "1") +} + +# # Set jpg height Readback from driver +record(ai, "S03SIM-DI-OAV-01:MJPG:SETH_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg 0)FFMPEG_SETH") +} + +# # Toggle False colour mode +record(bo, "S03SIM-DI-OAV-01:MJPG:FALSE_COL") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg 0)FFMPEG_FALSE_COL") + field(ZNAM, "Off") + field(ONAM, "On") + field(VAL, "0") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +# # False colour mode readback from driver +record(bi, "S03SIM-DI-OAV-01:MJPG:FALSE_COL_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg 0)FFMPEG_FALSE_COL") + field(ZNAM, "Off") + field(ONAM, "On") +} + +# # Always produce jpegs, even when no-one is listening +record(bo, "S03SIM-DI-OAV-01:MJPG:ALWAYS_ON") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.mjpg 0)FFMPEG_ALWAYS_ON") + field(ZNAM, "Off") + field(ONAM, "On") + field(VAL, "0") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +# # Always on readback from driver +record(bi, "S03SIM-DI-OAV-01:MJPG:ALWAYS_ON_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg 0)FFMPEG_ALWAYS_ON") + field(ZNAM, "Off") + field(ONAM, "On") +} + +# # HTTP Port to connect an mjpg viewer to +record(ai, "S03SIM-DI-OAV-01:MJPG:HTTP_PORT_RBV") +{ + field(PINI, "1") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg 0)FFMPEG_HTTP_PORT") + field(SCAN, "I/O Intr") +} + +# # Hostname of the HTTP server +record(stringin, "S03SIM-DI-OAV-01:MJPG:HOST_RBV") +{ + field(PINI, "1") + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.mjpg 0)FFMPEG_HOST") + field(SCAN, "I/O Intr") +} + +# # Number of clients +record(ai, "S03SIM-DI-OAV-01:MJPG:CLIENTS_RBV") +{ + field(PINI, "1") + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.mjpg 0)FFMPEG_CLIENTS") + field(SCAN, "I/O Intr") +} + +# # URL of the jpg snapshot +record(waveform, "S03SIM-DI-OAV-01:MJPG:JPG_URL_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.mjpg 0)FFMPEG_JPG_URL") + field(FTVL, "UCHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +# # URL of the mjpg stream +record(waveform, "S03SIM-DI-OAV-01:MJPG:MJPG_URL_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.mjpg 0)FFMPEG_MJPG_URL") + field(FTVL, "UCHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +#% autosave 2 +#% archiver 10 Monitor +record(longout, "S03SIM-DI-OAV-01:MJPG:GX") { + field(VAL, "100") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +#% autosave 2 +#% archiver 10 Monitor +record(longout, "S03SIM-DI-OAV-01:MJPG:GY") { + field(VAL, "100") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +#% autosave 2 +#% archiver 10 Monitor +record(bo, "S03SIM-DI-OAV-01:MJPG:GRID") { + field(VAL, "0") + field(ZNAM, "Off") + field(ONAM, "On") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +#% autosave 2 +#% archiver 10 Monitor +# default white +record(longout, "S03SIM-DI-OAV-01:MJPG:GCOL") { + field(VAL, "0xFFFFFF") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +#% autosave 2 +#% archiver 10 Monitor +record(longout, "S03SIM-DI-OAV-01:MJPG:GS") { + field(VAL, "200") + field(DRVL, "10") + field(DRVH, "2000") + field(PINI, "1") + info(autosaveFields, "VAL") +} +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, QUALITY, Jpeg Quality in percent +# % macro, MAXW, Maximum Jpeg Width +# % macro, MAXH, Maximum Jpeg Height +# % macro, SETW, Set initial Jpeg Width +# % macro, SETH, Set initial Jpeg Height +# % gui, FSCN1.mjpg, edmtab, ffmpegStream.edl, P=S03SIM-EA-FSCN-01,R=:MJPG: + + +# # \file +# # ffmpegServer contains a very simple http server based on +# # nullhttpd. If a file named +# # \.jpg is requested for any ffmpegStream object named \, then it +# # will return the last NDArray received by the object compressed to jpeg. If +# # \.mjpg is requested then it will return an mjpg stream over http to the +# # client. Otherwise, it will return an index page listing all the available +# # streams. +# # \section ffmpegStream_setup Setup +# # - In the database, an instance of NDPluginBase is required, followed by an +# # instance of this template. +# # - In the startup scripts, call ffmpegServerConfigure() once per IOC to setup +# # the http server, then call ffmpegStreamConfigure() once per ffmpegStream +# # instance to setup the areadetector plugin +# # - see \ref build_instructions +# # \section ffmpegStream_screenshots Screenshots +# # \image html server.png "Index page for ffmpegServer" +# # \image html ffmpegStreamEdm.png "Edm screen for ffmpegStream" + +# This associates a BOY screen with the template +# % gui, FSCN1.mjpg, boydetail,ffmpegServerApp_opi/mjpg_detail.opi, P=S03SIM-EA-FSCN-01, R=:MJPG:, DESC=MPEG Viewer +# % gui, FSCN1.mjpg, boyembed, ffmpegServerApp_opi/mjpg_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:MJPG:, DESC=MPEG Viewer +# % gui, FSCN1.mjpg, boyembed, ffmpegServerApp_opi/mjpg_embed.opi, P=S03SIM-EA-FSCN-01, R=:MJPG:, DESC=MPEG Viewer + +# Info +# % gui, FSCN1.mjpg, groupHeading, Info +# % gui, FSCN1.mjpg, readback, Port name, S03SIM-EA-FSCN-01:MJPG:PortName_RBV +# % gui, FSCN1.mjpg, readback, Plugin type, S03SIM-EA-FSCN-01:MJPG:PluginType_RBV +# Input +# % gui, FSCN1.mjpg, demandString, Input, S03SIM-EA-FSCN-01:MJPG:NDArrayPort +# % gui, FSCN1.mjpg, readback, Input, S03SIM-EA-FSCN-01:MJPG:NDArrayPort_RBV + +# % gui, FSCN1.mjpg, groupHeading, Callback +# % gui, FSCN1.mjpg, enum, Callbacks, S03SIM-EA-FSCN-01:MJPG:EnableCallbacks +# % gui, FSCN1.mjpg, statusbits, Callbacks, S03SIM-EA-FSCN-01:MJPG:EnableCallbacks_RBV +# % gui, FSCN1.mjpg, demand, Min Callback Time, S03SIM-EA-FSCN-01:MJPG:MinCallbackTime +# % gui, FSCN1.mjpg, readback, Min Callback Time, S03SIM-EA-FSCN-01:MJPG:MinCallbackTime_RBV +# % gui, FSCN1.mjpg, enum, Block Callbacks, S03SIM-EA-FSCN-01:MJPG:BlockingCallbacks +# % gui, FSCN1.mjpg, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:MJPG:BlockingCallbacks_RBV + +# % gui, FSCN1.mjpg, groupHeading, Counters +# % gui, FSCN1.mjpg, demand, Array Counter, S03SIM-EA-FSCN-01:MJPG:ArrayCounter +# % gui, FSCN1.mjpg, readback, Array Counter, S03SIM-EA-FSCN-01:MJPG:ArrayCounter_RBV +# % gui, FSCN1.mjpg, readback, Array Rate (fps), S03SIM-EA-FSCN-01:MJPG:ArrayRate_RBV +# % gui, FSCN1.mjpg, readback, Queue Use, S03SIM-EA-FSCN-01:MJPG:QueueUse +# % gui, FSCN1.mjpg, readback, Queue Size, S03SIM-EA-FSCN-01:MJPG:QueueSize +# % gui, FSCN1.mjpg, demand, Dropped Arrays, S03SIM-EA-FSCN-01:MJPG:DroppedArrays +# % gui, FSCN1.mjpg, readback, Dropped Arrays, S03SIM-EA-FSCN-01:MJPG:DroppedArrays_RBV + +# % gui, FSCN1.mjpg, groupHeading, Array Settings +# % gui, FSCN1.mjpg, readback, Num Dimensions, S03SIM-EA-FSCN-01:MJPG:NDimensions_RBV +# % gui, FSCN1.mjpg, readback, Dim 0 Size, S03SIM-EA-FSCN-01:MJPG:ArraySize0_RBV +# % gui, FSCN1.mjpg, readback, Dim 1 Size, S03SIM-EA-FSCN-01:MJPG:ArraySize1_RBV +# % gui, FSCN1.mjpg, readback, Dim 2 Size, S03SIM-EA-FSCN-01:MJPG:ArraySize2_RBV +# % gui, FSCN1.mjpg, readback, Input Data Type, S03SIM-EA-FSCN-01:MJPG:DataType_RBV +# % gui, FSCN1.mjpg, readback, Colour Mode, S03SIM-EA-FSCN-01:MJPG:ColorMode_RBV +# % gui, FSCN1.mjpg, readback, Bayer Pattern, S03SIM-EA-FSCN-01:MJPG:BayerPattern_RBV +# % gui, FSCN1.mjpg, readback, Unique id, S03SIM-EA-FSCN-01:MJPG:UniqueId_RBV +# % gui, FSCN1.mjpg, readback, Timestamp, S03SIM-EA-FSCN-01:MJPG:TimeStamp_RBV + +# Video +# % gui, FSCN1.mjpg, groupHeading, Video Settings +# % gui, FSCN1.mjpg, readback, Host, S03SIM-EA-FSCN-01:MJPG:HOST_RBV +# % gui, FSCN1.mjpg, readback, Host port, S03SIM-EA-FSCN-01:MJPG:HTTP_PORT_RBV +# % gui, FSCN1.mjpg, readback, Num clients, S03SIM-EA-FSCN-01:MJPG:CLIENTS_RBV +# % gui, FSCN1.mjpg, demand, JPEG Quality, S03SIM-EA-FSCN-01:MJPG:QUALITY +# % gui, FSCN1.mjpg, readback, JPEG Quality, S03SIM-EA-FSCN-01:MJPG:QUALITY_RBV +# % gui, FSCN1.mjpg, demand, Max Width, S03SIM-EA-FSCN-01:MJPG:MAXW +# % gui, FSCN1.mjpg, readback, Max Width, S03SIM-EA-FSCN-01:MJPG:MAXW_RBV +# % gui, FSCN1.mjpg, demand, Max Height, S03SIM-EA-FSCN-01:MJPG:MAXH +# % gui, FSCN1.mjpg, readback, Max Height, S03SIM-EA-FSCN-01:MJPG:MAXH_RBV +# % gui, FSCN1.mjpg, enum, Always On, S03SIM-EA-FSCN-01:MJPG:ALWAYS_ON +# % gui, FSCN1.mjpg, readback, Always On, S03SIM-EA-FSCN-01:MJPG:ALWAYS_ON_RBV +# % gui, FSCN1.mjpg, readback, Snapshot URL, S03SIM-EA-FSCN-01:MJPG:JPG_URL_RBV +# % gui, FSCN1.mjpg, readback, Streaming URL, S03SIM-EA-FSCN-01:MJPG:MJPG_URL_RBV +# % gui, FSCN1.mjpg, enum, Show Grid, S03SIM-EA-FSCN-01:MJPG:GRID +# % gui, FSCN1.mjpg, demand, X Position, S03SIM-EA-FSCN-01:MJPG:GX +# % gui, FSCN1.mjpg, demand, Y Position, S03SIM-EA-FSCN-01:MJPG:GY +# % gui, FSCN1.mjpg, demand, Spacing, S03SIM-EA-FSCN-01:MJPG:GS +# % gui, FSCN1.mjpg, demand, Colour RGB, S03SIM-EA-FSCN-01:MJPG:GCOL +# % gui, FSCN1.mjpg, command, Fast Viewer +# % gui, FSCN1.mjpg, command, Fallback Viewer +# % gui, FSCN1.mjpg, command, Firefox (slow) +# % gui, FSCN1.mjpg, command, Firefox (snapshot) + + +# Memory +# % gui, FSCN1.mjpg, groupHeading, Memory +# % gui, FSCN1.mjpg, readback, Max memory, S03SIM-EA-FSCN-01:MJPG:PoolMaxMem +# % gui, FSCN1.mjpg, readback, Max buffers, S03SIM-EA-FSCN-01:MJPG:PoolMaxBuffers +# % gui, FSCN1.mjpg, readback, Used memory, S03SIM-EA-FSCN-01:MJPG:PoolUsedMem +# % gui, FSCN1.mjpg, readback, Allocated buffers, S03SIM-EA-FSCN-01:MJPG:PoolAllocBuffers +# % gui, FSCN1.mjpg, readback, Free buffers, S03SIM-EA-FSCN-01:MJPG:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:MJPG:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.mjpg,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:MJPG:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.mjpg,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:MJPG:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.mjpg,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:MJPG:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.mjpg,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:MJPG:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.mjpg,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:MJPG:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.mjpg,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:MJPG:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.mjpg,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:MJPG:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.mjpg,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:MJPG:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:MJPG:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:MJPG:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:MJPG:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:MJPG:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:MJPG:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:MJPG:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:MJPG:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:MJPG:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:MJPG:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:MJPG:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:MJPG:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:MJPG:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.mjpg,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.mjpg,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:MJPG:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:MJPG:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.mjpg,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:MJPG:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:MJPG:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:MJPG:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:MJPG:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:MJPG:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:MJPG:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.mjpg,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:MJPG:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:MJPG:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:MJPG:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:MJPG:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:MJPG:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:MJPG:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:MJPG:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:MJPG:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.mjpg,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:MJPG:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.mjpg,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:MJPG:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:MJPG:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.mjpg,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:MJPG:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.mjpg,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:MJPG:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:MJPG:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:MJPG:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:MJPG:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:MJPG:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.mjpg,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:MJPG:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.mjpg,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.over") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:MJPG:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.mjpg,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:MJPG:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:MJPG:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:MJPG:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:MJPG:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.mjpg,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:MJPG:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.mjpg,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:MJPG:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:MJPG:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:MJPG:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:MJPG:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:MJPG:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:MJPG:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:MJPG:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:MJPG:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.mjpg,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:MJPG:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.mjpg,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:MJPG:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.mjpg,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:MJPG:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:MJPG:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:MJPG:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:MJPG:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:MJPG:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:MJPG:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:MJPG:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:MJPG:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:MJPG:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:MJPG:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:MJPG:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:MJPG:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:MJPG:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:MJPG:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:MJPG:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:MJPG:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:MJPG:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:MJPG:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:MJPG:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:MJPG:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:MJPG:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.mjpg,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:MJPG:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.mjpg,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:MJPG:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:MJPG:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:MJPG:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:MJPG:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:MJPG:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:MJPG:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:MJPG:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:MJPG:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:MJPG:AsynIO") +{ + field(PORT, "FSCN1.mjpg") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +# # JPEG Quality +record(ao, "S03SIM-EA-FSCN-01:MJPG:QUALITY") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg 0)FFMPEG_QUALITY") + field(VAL, "100") + field(DRVH, "100") + field(DRVL, "0") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +# # JPEG Quality Readback from driver +record(ai, "S03SIM-EA-FSCN-01:MJPG:QUALITY_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_QUALITY") +} + +# # Maximum jpg width +record(ao, "S03SIM-EA-FSCN-01:MJPG:MAXW") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg 0)FFMPEG_MAXW") + field(VAL, "1600") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +# # Maximum jpg width Readback from driver +record(ai, "S03SIM-EA-FSCN-01:MJPG:MAXW_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_MAXW") +} + +# # Maximum jpg height +record(ao, "S03SIM-EA-FSCN-01:MJPG:MAXH") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg 0)FFMPEG_MAXH") + field(VAL, "1200") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +# # Maximum jpg height Readback from driver +record(ai, "S03SIM-EA-FSCN-01:MJPG:MAXH_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_MAXH") +} + +# # Set jpg width +record(ao, "S03SIM-EA-FSCN-01:MJPG:SETW") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg 0)FFMPEG_SETW") + field(VAL, "0") + field(PINI, "1") +} + +# # Set jpg width Readback from driver +record(ai, "S03SIM-EA-FSCN-01:MJPG:SETW_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_SETW") +} + +# # Set jpg height +record(ao, "S03SIM-EA-FSCN-01:MJPG:SETH") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg 0)FFMPEG_SETH") + field(VAL, "0") + field(PINI, "1") +} + +# # Set jpg height Readback from driver +record(ai, "S03SIM-EA-FSCN-01:MJPG:SETH_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_SETH") +} + +# # Toggle False colour mode +record(bo, "S03SIM-EA-FSCN-01:MJPG:FALSE_COL") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg 0)FFMPEG_FALSE_COL") + field(ZNAM, "Off") + field(ONAM, "On") + field(VAL, "0") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +# # False colour mode readback from driver +record(bi, "S03SIM-EA-FSCN-01:MJPG:FALSE_COL_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_FALSE_COL") + field(ZNAM, "Off") + field(ONAM, "On") +} + +# # Always produce jpegs, even when no-one is listening +record(bo, "S03SIM-EA-FSCN-01:MJPG:ALWAYS_ON") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.mjpg 0)FFMPEG_ALWAYS_ON") + field(ZNAM, "Off") + field(ONAM, "On") + field(VAL, "0") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +# # Always on readback from driver +record(bi, "S03SIM-EA-FSCN-01:MJPG:ALWAYS_ON_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_ALWAYS_ON") + field(ZNAM, "Off") + field(ONAM, "On") +} + +# # HTTP Port to connect an mjpg viewer to +record(ai, "S03SIM-EA-FSCN-01:MJPG:HTTP_PORT_RBV") +{ + field(PINI, "1") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_HTTP_PORT") + field(SCAN, "I/O Intr") +} + +# # Hostname of the HTTP server +record(stringin, "S03SIM-EA-FSCN-01:MJPG:HOST_RBV") +{ + field(PINI, "1") + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_HOST") + field(SCAN, "I/O Intr") +} + +# # Number of clients +record(ai, "S03SIM-EA-FSCN-01:MJPG:CLIENTS_RBV") +{ + field(PINI, "1") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_CLIENTS") + field(SCAN, "I/O Intr") +} + +# # URL of the jpg snapshot +record(waveform, "S03SIM-EA-FSCN-01:MJPG:JPG_URL_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_JPG_URL") + field(FTVL, "UCHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +# # URL of the mjpg stream +record(waveform, "S03SIM-EA-FSCN-01:MJPG:MJPG_URL_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_MJPG_URL") + field(FTVL, "UCHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +#% autosave 2 +#% archiver 10 Monitor +record(longout, "S03SIM-EA-FSCN-01:MJPG:GX") { + field(VAL, "100") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +#% autosave 2 +#% archiver 10 Monitor +record(longout, "S03SIM-EA-FSCN-01:MJPG:GY") { + field(VAL, "100") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +#% autosave 2 +#% archiver 10 Monitor +record(bo, "S03SIM-EA-FSCN-01:MJPG:GRID") { + field(VAL, "0") + field(ZNAM, "Off") + field(ONAM, "On") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +#% autosave 2 +#% archiver 10 Monitor +# default white +record(longout, "S03SIM-EA-FSCN-01:MJPG:GCOL") { + field(VAL, "0xFFFFFF") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +#% autosave 2 +#% archiver 10 Monitor +record(longout, "S03SIM-EA-FSCN-01:MJPG:GS") { + field(VAL, "200") + field(DRVL, "10") + field(DRVH, "2000") + field(PINI, "1") + info(autosaveFields, "VAL") +} +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, QUALITY, Jpeg Quality in percent +# % macro, MAXW, Maximum Jpeg Width +# % macro, MAXH, Maximum Jpeg Height +# % macro, SETW, Set initial Jpeg Width +# % macro, SETH, Set initial Jpeg Height +# % gui, FSCN2.mjpg, edmtab, ffmpegStream.edl, P=S03SIM-EA-FSCN-02,R=:MJPG: + + +# # \file +# # ffmpegServer contains a very simple http server based on +# # nullhttpd. If a file named +# # \.jpg is requested for any ffmpegStream object named \, then it +# # will return the last NDArray received by the object compressed to jpeg. If +# # \.mjpg is requested then it will return an mjpg stream over http to the +# # client. Otherwise, it will return an index page listing all the available +# # streams. +# # \section ffmpegStream_setup Setup +# # - In the database, an instance of NDPluginBase is required, followed by an +# # instance of this template. +# # - In the startup scripts, call ffmpegServerConfigure() once per IOC to setup +# # the http server, then call ffmpegStreamConfigure() once per ffmpegStream +# # instance to setup the areadetector plugin +# # - see \ref build_instructions +# # \section ffmpegStream_screenshots Screenshots +# # \image html server.png "Index page for ffmpegServer" +# # \image html ffmpegStreamEdm.png "Edm screen for ffmpegStream" + +# This associates a BOY screen with the template +# % gui, FSCN2.mjpg, boydetail,ffmpegServerApp_opi/mjpg_detail.opi, P=S03SIM-EA-FSCN-02, R=:MJPG:, DESC=MPEG Viewer +# % gui, FSCN2.mjpg, boyembed, ffmpegServerApp_opi/mjpg_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:MJPG:, DESC=MPEG Viewer +# % gui, FSCN2.mjpg, boyembed, ffmpegServerApp_opi/mjpg_embed.opi, P=S03SIM-EA-FSCN-02, R=:MJPG:, DESC=MPEG Viewer + +# Info +# % gui, FSCN2.mjpg, groupHeading, Info +# % gui, FSCN2.mjpg, readback, Port name, S03SIM-EA-FSCN-02:MJPG:PortName_RBV +# % gui, FSCN2.mjpg, readback, Plugin type, S03SIM-EA-FSCN-02:MJPG:PluginType_RBV +# Input +# % gui, FSCN2.mjpg, demandString, Input, S03SIM-EA-FSCN-02:MJPG:NDArrayPort +# % gui, FSCN2.mjpg, readback, Input, S03SIM-EA-FSCN-02:MJPG:NDArrayPort_RBV + +# % gui, FSCN2.mjpg, groupHeading, Callback +# % gui, FSCN2.mjpg, enum, Callbacks, S03SIM-EA-FSCN-02:MJPG:EnableCallbacks +# % gui, FSCN2.mjpg, statusbits, Callbacks, S03SIM-EA-FSCN-02:MJPG:EnableCallbacks_RBV +# % gui, FSCN2.mjpg, demand, Min Callback Time, S03SIM-EA-FSCN-02:MJPG:MinCallbackTime +# % gui, FSCN2.mjpg, readback, Min Callback Time, S03SIM-EA-FSCN-02:MJPG:MinCallbackTime_RBV +# % gui, FSCN2.mjpg, enum, Block Callbacks, S03SIM-EA-FSCN-02:MJPG:BlockingCallbacks +# % gui, FSCN2.mjpg, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:MJPG:BlockingCallbacks_RBV + +# % gui, FSCN2.mjpg, groupHeading, Counters +# % gui, FSCN2.mjpg, demand, Array Counter, S03SIM-EA-FSCN-02:MJPG:ArrayCounter +# % gui, FSCN2.mjpg, readback, Array Counter, S03SIM-EA-FSCN-02:MJPG:ArrayCounter_RBV +# % gui, FSCN2.mjpg, readback, Array Rate (fps), S03SIM-EA-FSCN-02:MJPG:ArrayRate_RBV +# % gui, FSCN2.mjpg, readback, Queue Use, S03SIM-EA-FSCN-02:MJPG:QueueUse +# % gui, FSCN2.mjpg, readback, Queue Size, S03SIM-EA-FSCN-02:MJPG:QueueSize +# % gui, FSCN2.mjpg, demand, Dropped Arrays, S03SIM-EA-FSCN-02:MJPG:DroppedArrays +# % gui, FSCN2.mjpg, readback, Dropped Arrays, S03SIM-EA-FSCN-02:MJPG:DroppedArrays_RBV + +# % gui, FSCN2.mjpg, groupHeading, Array Settings +# % gui, FSCN2.mjpg, readback, Num Dimensions, S03SIM-EA-FSCN-02:MJPG:NDimensions_RBV +# % gui, FSCN2.mjpg, readback, Dim 0 Size, S03SIM-EA-FSCN-02:MJPG:ArraySize0_RBV +# % gui, FSCN2.mjpg, readback, Dim 1 Size, S03SIM-EA-FSCN-02:MJPG:ArraySize1_RBV +# % gui, FSCN2.mjpg, readback, Dim 2 Size, S03SIM-EA-FSCN-02:MJPG:ArraySize2_RBV +# % gui, FSCN2.mjpg, readback, Input Data Type, S03SIM-EA-FSCN-02:MJPG:DataType_RBV +# % gui, FSCN2.mjpg, readback, Colour Mode, S03SIM-EA-FSCN-02:MJPG:ColorMode_RBV +# % gui, FSCN2.mjpg, readback, Bayer Pattern, S03SIM-EA-FSCN-02:MJPG:BayerPattern_RBV +# % gui, FSCN2.mjpg, readback, Unique id, S03SIM-EA-FSCN-02:MJPG:UniqueId_RBV +# % gui, FSCN2.mjpg, readback, Timestamp, S03SIM-EA-FSCN-02:MJPG:TimeStamp_RBV + +# Video +# % gui, FSCN2.mjpg, groupHeading, Video Settings +# % gui, FSCN2.mjpg, readback, Host, S03SIM-EA-FSCN-02:MJPG:HOST_RBV +# % gui, FSCN2.mjpg, readback, Host port, S03SIM-EA-FSCN-02:MJPG:HTTP_PORT_RBV +# % gui, FSCN2.mjpg, readback, Num clients, S03SIM-EA-FSCN-02:MJPG:CLIENTS_RBV +# % gui, FSCN2.mjpg, demand, JPEG Quality, S03SIM-EA-FSCN-02:MJPG:QUALITY +# % gui, FSCN2.mjpg, readback, JPEG Quality, S03SIM-EA-FSCN-02:MJPG:QUALITY_RBV +# % gui, FSCN2.mjpg, demand, Max Width, S03SIM-EA-FSCN-02:MJPG:MAXW +# % gui, FSCN2.mjpg, readback, Max Width, S03SIM-EA-FSCN-02:MJPG:MAXW_RBV +# % gui, FSCN2.mjpg, demand, Max Height, S03SIM-EA-FSCN-02:MJPG:MAXH +# % gui, FSCN2.mjpg, readback, Max Height, S03SIM-EA-FSCN-02:MJPG:MAXH_RBV +# % gui, FSCN2.mjpg, enum, Always On, S03SIM-EA-FSCN-02:MJPG:ALWAYS_ON +# % gui, FSCN2.mjpg, readback, Always On, S03SIM-EA-FSCN-02:MJPG:ALWAYS_ON_RBV +# % gui, FSCN2.mjpg, readback, Snapshot URL, S03SIM-EA-FSCN-02:MJPG:JPG_URL_RBV +# % gui, FSCN2.mjpg, readback, Streaming URL, S03SIM-EA-FSCN-02:MJPG:MJPG_URL_RBV +# % gui, FSCN2.mjpg, enum, Show Grid, S03SIM-EA-FSCN-02:MJPG:GRID +# % gui, FSCN2.mjpg, demand, X Position, S03SIM-EA-FSCN-02:MJPG:GX +# % gui, FSCN2.mjpg, demand, Y Position, S03SIM-EA-FSCN-02:MJPG:GY +# % gui, FSCN2.mjpg, demand, Spacing, S03SIM-EA-FSCN-02:MJPG:GS +# % gui, FSCN2.mjpg, demand, Colour RGB, S03SIM-EA-FSCN-02:MJPG:GCOL +# % gui, FSCN2.mjpg, command, Fast Viewer +# % gui, FSCN2.mjpg, command, Fallback Viewer +# % gui, FSCN2.mjpg, command, Firefox (slow) +# % gui, FSCN2.mjpg, command, Firefox (snapshot) + + +# Memory +# % gui, FSCN2.mjpg, groupHeading, Memory +# % gui, FSCN2.mjpg, readback, Max memory, S03SIM-EA-FSCN-02:MJPG:PoolMaxMem +# % gui, FSCN2.mjpg, readback, Max buffers, S03SIM-EA-FSCN-02:MJPG:PoolMaxBuffers +# % gui, FSCN2.mjpg, readback, Used memory, S03SIM-EA-FSCN-02:MJPG:PoolUsedMem +# % gui, FSCN2.mjpg, readback, Allocated buffers, S03SIM-EA-FSCN-02:MJPG:PoolAllocBuffers +# % gui, FSCN2.mjpg, readback, Free buffers, S03SIM-EA-FSCN-02:MJPG:PoolFreeBuffers + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:MJPG:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.mjpg,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:MJPG:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.mjpg,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:MJPG:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.mjpg,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:MJPG:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.mjpg,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:MJPG:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.mjpg,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:MJPG:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.mjpg,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:MJPG:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.mjpg,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:MJPG:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.mjpg,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:MJPG:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:MJPG:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:MJPG:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:MJPG:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:MJPG:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:MJPG:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:MJPG:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:MJPG:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:MJPG:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:MJPG:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:MJPG:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:MJPG:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:MJPG:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.mjpg,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.mjpg,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:MJPG:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:MJPG:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.mjpg,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:MJPG:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:MJPG:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:MJPG:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:MJPG:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:MJPG:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:MJPG:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.mjpg,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:MJPG:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:MJPG:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:MJPG:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:MJPG:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:MJPG:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:MJPG:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:MJPG:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:MJPG:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.mjpg,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:MJPG:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.mjpg,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:MJPG:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:MJPG:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.mjpg,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:MJPG:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.mjpg,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:MJPG:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:MJPG:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:MJPG:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:MJPG:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:MJPG:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.mjpg,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:MJPG:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.mjpg,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.over") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:MJPG:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.mjpg,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:MJPG:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:MJPG:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:MJPG:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:MJPG:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.mjpg,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:MJPG:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.mjpg,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:MJPG:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:MJPG:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:MJPG:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:MJPG:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:MJPG:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:MJPG:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:MJPG:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:MJPG:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.mjpg,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:MJPG:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.mjpg,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:MJPG:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.mjpg,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:MJPG:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:MJPG:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:MJPG:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:MJPG:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:MJPG:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:MJPG:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:MJPG:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:MJPG:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:MJPG:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:MJPG:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:MJPG:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:MJPG:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:MJPG:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:MJPG:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:MJPG:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:MJPG:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:MJPG:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:MJPG:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:MJPG:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:MJPG:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:MJPG:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.mjpg,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:MJPG:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.mjpg,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:MJPG:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:MJPG:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:MJPG:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:MJPG:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:MJPG:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:MJPG:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:MJPG:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:MJPG:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:MJPG:AsynIO") +{ + field(PORT, "FSCN2.mjpg") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +# # JPEG Quality +record(ao, "S03SIM-EA-FSCN-02:MJPG:QUALITY") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg 0)FFMPEG_QUALITY") + field(VAL, "100") + field(DRVH, "100") + field(DRVL, "0") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +# # JPEG Quality Readback from driver +record(ai, "S03SIM-EA-FSCN-02:MJPG:QUALITY_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_QUALITY") +} + +# # Maximum jpg width +record(ao, "S03SIM-EA-FSCN-02:MJPG:MAXW") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg 0)FFMPEG_MAXW") + field(VAL, "1600") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +# # Maximum jpg width Readback from driver +record(ai, "S03SIM-EA-FSCN-02:MJPG:MAXW_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_MAXW") +} + +# # Maximum jpg height +record(ao, "S03SIM-EA-FSCN-02:MJPG:MAXH") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg 0)FFMPEG_MAXH") + field(VAL, "1200") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +# # Maximum jpg height Readback from driver +record(ai, "S03SIM-EA-FSCN-02:MJPG:MAXH_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_MAXH") +} + +# # Set jpg width +record(ao, "S03SIM-EA-FSCN-02:MJPG:SETW") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg 0)FFMPEG_SETW") + field(VAL, "0") + field(PINI, "1") +} + +# # Set jpg width Readback from driver +record(ai, "S03SIM-EA-FSCN-02:MJPG:SETW_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_SETW") +} + +# # Set jpg height +record(ao, "S03SIM-EA-FSCN-02:MJPG:SETH") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg 0)FFMPEG_SETH") + field(VAL, "0") + field(PINI, "1") +} + +# # Set jpg height Readback from driver +record(ai, "S03SIM-EA-FSCN-02:MJPG:SETH_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_SETH") +} + +# # Toggle False colour mode +record(bo, "S03SIM-EA-FSCN-02:MJPG:FALSE_COL") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg 0)FFMPEG_FALSE_COL") + field(ZNAM, "Off") + field(ONAM, "On") + field(VAL, "0") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +# # False colour mode readback from driver +record(bi, "S03SIM-EA-FSCN-02:MJPG:FALSE_COL_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_FALSE_COL") + field(ZNAM, "Off") + field(ONAM, "On") +} + +# # Always produce jpegs, even when no-one is listening +record(bo, "S03SIM-EA-FSCN-02:MJPG:ALWAYS_ON") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.mjpg 0)FFMPEG_ALWAYS_ON") + field(ZNAM, "Off") + field(ONAM, "On") + field(VAL, "0") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +# # Always on readback from driver +record(bi, "S03SIM-EA-FSCN-02:MJPG:ALWAYS_ON_RBV") { + field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_ALWAYS_ON") + field(ZNAM, "Off") + field(ONAM, "On") +} + +# # HTTP Port to connect an mjpg viewer to +record(ai, "S03SIM-EA-FSCN-02:MJPG:HTTP_PORT_RBV") +{ + field(PINI, "1") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_HTTP_PORT") + field(SCAN, "I/O Intr") +} + +# # Hostname of the HTTP server +record(stringin, "S03SIM-EA-FSCN-02:MJPG:HOST_RBV") +{ + field(PINI, "1") + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_HOST") + field(SCAN, "I/O Intr") +} + +# # Number of clients +record(ai, "S03SIM-EA-FSCN-02:MJPG:CLIENTS_RBV") +{ + field(PINI, "1") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_CLIENTS") + field(SCAN, "I/O Intr") +} + +# # URL of the jpg snapshot +record(waveform, "S03SIM-EA-FSCN-02:MJPG:JPG_URL_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_JPG_URL") + field(FTVL, "UCHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +# # URL of the mjpg stream +record(waveform, "S03SIM-EA-FSCN-02:MJPG:MJPG_URL_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_MJPG_URL") + field(FTVL, "UCHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +#% autosave 2 +#% archiver 10 Monitor +record(longout, "S03SIM-EA-FSCN-02:MJPG:GX") { + field(VAL, "100") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +#% autosave 2 +#% archiver 10 Monitor +record(longout, "S03SIM-EA-FSCN-02:MJPG:GY") { + field(VAL, "100") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +#% autosave 2 +#% archiver 10 Monitor +record(bo, "S03SIM-EA-FSCN-02:MJPG:GRID") { + field(VAL, "0") + field(ZNAM, "Off") + field(ONAM, "On") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +#% autosave 2 +#% archiver 10 Monitor +# default white +record(longout, "S03SIM-EA-FSCN-02:MJPG:GCOL") { + field(VAL, "0xFFFFFF") + field(PINI, "1") + info(autosaveFields, "VAL") +} + +#% autosave 2 +#% archiver 10 Monitor +record(longout, "S03SIM-EA-FSCN-02:MJPG:GS") { + field(VAL, "200") + field(DRVL, "10") + field(DRVH, "2000") + field(PINI, "1") + info(autosaveFields, "VAL") +} +#=================================================================# +# Template file: NDPva.template +# Database for the records specific to the pvAccess plugin +# Bruno Martins +# May 5, 2015 + +#% macro, P, Device Prefix +#% macro, R, Device Suffix +#% macro, PORT, Asyn Port name +#% macro, ADDR, Asyn Port address +#% macro, TIMEOUT, Asyn timeout + +# This associates the template with an edm screen +# % gui, OAV.pva, edmtab, NDPvaPlugin.edl, P=S03SIM-DI-OAV-01,R=:PVA: + +# This associates a BOY screen with the template +# % gui, OAV.pva, boydetail,ADApp_opi/dls/pva_detail.opi, P=S03SIM-DI-OAV-01, R=:PVA:, DESC=PVAccess +# % gui, OAV.pva, boyembed, ADApp_opi/dls/pva_embed_box.opi, P=S03SIM-DI-OAV-01, R=:PVA:, DESC=PVAccess +# % gui, OAV.pva, boyembed, ADApp_opi/dls/pva_embed.opi, P=S03SIM-DI-OAV-01, R=:PVA:, DESC=PVAccess + +# Info +# % gui, OAV.pva, groupHeading, Info +# % gui, OAV.pva, readback, Port name, S03SIM-DI-OAV-01:PVA:PortName_RBV +# % gui, OAV.pva, readback, Plugin type, S03SIM-DI-OAV-01:PVA:PluginType_RBV +# Input +# % gui, OAV.pva, demandString, Input, S03SIM-DI-OAV-01:PVA:NDArrayPort +# % gui, OAV.pva, readback, Input, S03SIM-DI-OAV-01:PVA:NDArrayPort_RBV + +# % gui, OAV.pva, groupHeading, Callback +# % gui, OAV.pva, enum, Callbacks, S03SIM-DI-OAV-01:PVA:EnableCallbacks +# % gui, OAV.pva, statusbits, Callbacks, S03SIM-DI-OAV-01:PVA:EnableCallbacks_RBV +# % gui, OAV.pva, demand, Min Callback Time, S03SIM-DI-OAV-01:PVA:MinCallbackTime +# % gui, OAV.pva, readback, Min Callback Time, S03SIM-DI-OAV-01:PVA:MinCallbackTime_RBV +# % gui, OAV.pva, enum, Block Callbacks, S03SIM-DI-OAV-01:PVA:BlockingCallbacks +# % gui, OAV.pva, statusbits, Block Callbacks, S03SIM-DI-OAV-01:PVA:BlockingCallbacks_RBV + +# % gui, OAV.pva, groupHeading, Counters +# % gui, OAV.pva, demand, Array Counter, S03SIM-DI-OAV-01:PVA:ArrayCounter +# % gui, OAV.pva, readback, Array Counter, S03SIM-DI-OAV-01:PVA:ArrayCounter_RBV +# % gui, OAV.pva, readback, Array Rate (fps), S03SIM-DI-OAV-01:PVA:ArrayRate_RBV +# % gui, OAV.pva, readback, Queue Use, S03SIM-DI-OAV-01:PVA:QueueUse +# % gui, OAV.pva, readback, Queue Size, S03SIM-DI-OAV-01:PVA:QueueSize +# % gui, OAV.pva, demand, Dropped Arrays, S03SIM-DI-OAV-01:PVA:DroppedArrays +# % gui, OAV.pva, readback, Dropped Arrays, S03SIM-DI-OAV-01:PVA:DroppedArrays_RBV + +# % gui, OAV.pva, groupHeading, Array Settings +# % gui, OAV.pva, readback, Num Dimensions, S03SIM-DI-OAV-01:PVA:NDimensions_RBV +# % gui, OAV.pva, readback, Dim 0 Size, S03SIM-DI-OAV-01:PVA:ArraySize0_RBV +# % gui, OAV.pva, readback, Dim 1 Size, S03SIM-DI-OAV-01:PVA:ArraySize1_RBV +# % gui, OAV.pva, readback, Dim 2 Size, S03SIM-DI-OAV-01:PVA:ArraySize2_RBV +# % gui, OAV.pva, readback, Input Data Type, S03SIM-DI-OAV-01:PVA:DataType_RBV +# % gui, OAV.pva, readback, Colour Mode, S03SIM-DI-OAV-01:PVA:ColorMode_RBV +# % gui, OAV.pva, readback, Bayer Pattern, S03SIM-DI-OAV-01:PVA:BayerPattern_RBV +# % gui, OAV.pva, readback, Unique id, S03SIM-DI-OAV-01:PVA:UniqueId_RBV +# % gui, OAV.pva, readback, Timestamp, S03SIM-DI-OAV-01:PVA:TimeStamp_RBV + +# % gui, OAV.pva, groupHeading, PVA Settings +# % gui, OAV.pva, readback, PV Name, S03SIM-DI-OAV-01:PVA:PvName_RBV + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:PVA:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.pva,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:PVA:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.pva,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:PVA:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.pva,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:PVA:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.pva,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:PVA:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.pva,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:PVA:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.pva,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:PVA:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.pva,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-DI-OAV-01:PVA:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.pva,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-DI-OAV-01:PVA:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.pva,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-DI-OAV-01:PVA:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-DI-OAV-01:PVA:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:PVA:SetAcquireBusy") +{ + field(INPA, "S03SIM-DI-OAV-01:PVA:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-DI-OAV-01:PVA:AcquireBusy PP") +} + +record(ai, "S03SIM-DI-OAV-01:PVA:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-DI-OAV-01:PVA:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:PVA:ClearAcquireBusy") { + field(INPA, "S03SIM-DI-OAV-01:PVA:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-DI-OAV-01:PVA:AcquireBusy PP") +} + +record(bo, "S03SIM-DI-OAV-01:PVA:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.pva,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-DI-OAV-01:PVA:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.pva,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-DI-OAV-01:PVA:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(OAV.pva,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim0SA") +} + +record(subArray, "S03SIM-DI-OAV-01:PVA:Dim0SA") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize0") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize0") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dim0SA") + field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim1SA") +} + +record(subArray, "S03SIM-DI-OAV-01:PVA:Dim1SA") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize1") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize1") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dim1SA") + field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim2SA") +} + +record(subArray, "S03SIM-DI-OAV-01:PVA:Dim2SA") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize2") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize2") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dim2SA") + field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim3SA") +} + +record(subArray, "S03SIM-DI-OAV-01:PVA:Dim3SA") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize3") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize3") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dim3SA") + field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim4SA") +} + +record(subArray, "S03SIM-DI-OAV-01:PVA:Dim4SA") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize4") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize4") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dim4SA") + field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim5SA") +} + +record(subArray, "S03SIM-DI-OAV-01:PVA:Dim5SA") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize5") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize5") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dim5SA") + field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim6SA") +} + +record(subArray, "S03SIM-DI-OAV-01:PVA:Dim6SA") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize6") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize6") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dim6SA") + field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim7SA") +} + +record(subArray, "S03SIM-DI-OAV-01:PVA:Dim7SA") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize7") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize7") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dim7SA") + field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim8SA") +} + +record(subArray, "S03SIM-DI-OAV-01:PVA:Dim8SA") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize8") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize8") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dim8SA") + field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim9SA") +} + +record(subArray, "S03SIM-DI-OAV-01:PVA:Dim9SA") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize9") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize9") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dim9SA") +} + + +record(waveform, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(OAV.pva,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-DI-OAV-01:PVA:Dim0SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize0_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize0_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dim0SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim1SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:PVA:Dim1SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize1_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim2SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:PVA:Dim2SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize2_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim3SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:PVA:Dim3SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize3_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize3_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dim3SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim4SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:PVA:Dim4SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize4_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize4_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dim4SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim5SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:PVA:Dim5SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize5_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize5_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dim5SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim6SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:PVA:Dim6SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize6_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize6_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dim6SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim7SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:PVA:Dim7SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize7_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize7_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dim7SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim8SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:PVA:Dim8SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize8_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize8_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dim8SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim9SA_RBV") +} + +record(subArray, "S03SIM-DI-OAV-01:PVA:Dim9SA_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize9_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize9_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:PVA:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-DI-OAV-01:PVA:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-DI-OAV-01:PVA:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.pva,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:PVA:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.pva,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:PVA:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-DI-OAV-01:PVA:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.pva,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:PVA:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-DI-OAV-01:PVA:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-DI-OAV-01:PVA:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.pva,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-DI-OAV-01:PVA:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.pva,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-DI-OAV-01:PVA:ArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:PVA:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-DI-OAV-01:PVA:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-DI-OAV-01:PVA:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:PVA:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.pva,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:PVA:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:PVA:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.pva,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:PVA:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.pva,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-DI-OAV-01:PVA:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-DI-OAV-01:PVA:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.pva,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-DI-OAV-01:PVA:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.pva,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-DI-OAV-01:PVA:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:PVA:PoolFreeBuffers") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-DI-OAV-01:PVA:PoolUsedBuffers") +} + +record(calc, "S03SIM-DI-OAV-01:PVA:PoolUsedBuffers") +{ + field(INPA, "S03SIM-DI-OAV-01:PVA:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-DI-OAV-01:PVA:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-DI-OAV-01:PVA:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.pva,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-DI-OAV-01:PVA:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.pva,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-DI-OAV-01:PVA:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.pva,0,1)NDARRAY_PORT") + field(VAL, "OAV.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:PVA:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.pva,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:PVA:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.pva,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-DI-OAV-01:PVA:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.pva,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:PVA:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PVA:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.pva,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:PVA:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.pva,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PVA:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:PVA:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:PVA:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:PVA:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:PVA:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:PVA:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:PVA:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:PVA:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.pva,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:PVA:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.pva,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-DI-OAV-01:PVA:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.pva,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-DI-OAV-01:PVA:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.pva,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-DI-OAV-01:PVA:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.pva,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:PVA:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-DI-OAV-01:PVA:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.pva,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:PVA:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.pva,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:PVA:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:PVA:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:PVA:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:PVA:QueueFree.LOW") + field(FLNK, "S03SIM-DI-OAV-01:PVA:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-DI-OAV-01:PVA:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-DI-OAV-01:PVA:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:PVA:QueueUse.HIGH") + field(FLNK, "S03SIM-DI-OAV-01:PVA:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-DI-OAV-01:PVA:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-DI-OAV-01:PVA:QueueSize") + field(OUT, "S03SIM-DI-OAV-01:PVA:QueueUse.HIHI") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-DI-OAV-01:PVA:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-DI-OAV-01:PVA:QueueSize") + field(INPB, "S03SIM-DI-OAV-01:PVA:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-DI-OAV-01:PVA:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.pva,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-DI-OAV-01:PVA:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.pva,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-DI-OAV-01:PVA:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:PVA:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.pva,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-DI-OAV-01:PVA:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.pva,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:PVA:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.pva,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)SORT_SIZE") + field(FLNK, "S03SIM-DI-OAV-01:PVA:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-DI-OAV-01:PVA:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-DI-OAV-01:PVA:SortSize") + field(OUT, "S03SIM-DI-OAV-01:PVA:SortFree.LOW") +} + +record(longout, "S03SIM-DI-OAV-01:PVA:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.pva,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:PVA:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.pva,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-DI-OAV-01:PVA:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.pva,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-DI-OAV-01:PVA:AsynIO") +{ + field(PORT, "OAV.pva") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +# New records for NDPluginPva + +record(waveform, "S03SIM-DI-OAV-01:PVA:PvName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.pva,0,1)PV_NAME") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDPva.template +# Database for the records specific to the pvAccess plugin +# Bruno Martins +# May 5, 2015 + +#% macro, P, Device Prefix +#% macro, R, Device Suffix +#% macro, PORT, Asyn Port name +#% macro, ADDR, Asyn Port address +#% macro, TIMEOUT, Asyn timeout + +# This associates the template with an edm screen +# % gui, FSCN1.pva, edmtab, NDPvaPlugin.edl, P=S03SIM-EA-FSCN-01,R=:PVA: + +# This associates a BOY screen with the template +# % gui, FSCN1.pva, boydetail,ADApp_opi/dls/pva_detail.opi, P=S03SIM-EA-FSCN-01, R=:PVA:, DESC=PVAccess +# % gui, FSCN1.pva, boyembed, ADApp_opi/dls/pva_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:PVA:, DESC=PVAccess +# % gui, FSCN1.pva, boyembed, ADApp_opi/dls/pva_embed.opi, P=S03SIM-EA-FSCN-01, R=:PVA:, DESC=PVAccess + +# Info +# % gui, FSCN1.pva, groupHeading, Info +# % gui, FSCN1.pva, readback, Port name, S03SIM-EA-FSCN-01:PVA:PortName_RBV +# % gui, FSCN1.pva, readback, Plugin type, S03SIM-EA-FSCN-01:PVA:PluginType_RBV +# Input +# % gui, FSCN1.pva, demandString, Input, S03SIM-EA-FSCN-01:PVA:NDArrayPort +# % gui, FSCN1.pva, readback, Input, S03SIM-EA-FSCN-01:PVA:NDArrayPort_RBV + +# % gui, FSCN1.pva, groupHeading, Callback +# % gui, FSCN1.pva, enum, Callbacks, S03SIM-EA-FSCN-01:PVA:EnableCallbacks +# % gui, FSCN1.pva, statusbits, Callbacks, S03SIM-EA-FSCN-01:PVA:EnableCallbacks_RBV +# % gui, FSCN1.pva, demand, Min Callback Time, S03SIM-EA-FSCN-01:PVA:MinCallbackTime +# % gui, FSCN1.pva, readback, Min Callback Time, S03SIM-EA-FSCN-01:PVA:MinCallbackTime_RBV +# % gui, FSCN1.pva, enum, Block Callbacks, S03SIM-EA-FSCN-01:PVA:BlockingCallbacks +# % gui, FSCN1.pva, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:PVA:BlockingCallbacks_RBV + +# % gui, FSCN1.pva, groupHeading, Counters +# % gui, FSCN1.pva, demand, Array Counter, S03SIM-EA-FSCN-01:PVA:ArrayCounter +# % gui, FSCN1.pva, readback, Array Counter, S03SIM-EA-FSCN-01:PVA:ArrayCounter_RBV +# % gui, FSCN1.pva, readback, Array Rate (fps), S03SIM-EA-FSCN-01:PVA:ArrayRate_RBV +# % gui, FSCN1.pva, readback, Queue Use, S03SIM-EA-FSCN-01:PVA:QueueUse +# % gui, FSCN1.pva, readback, Queue Size, S03SIM-EA-FSCN-01:PVA:QueueSize +# % gui, FSCN1.pva, demand, Dropped Arrays, S03SIM-EA-FSCN-01:PVA:DroppedArrays +# % gui, FSCN1.pva, readback, Dropped Arrays, S03SIM-EA-FSCN-01:PVA:DroppedArrays_RBV + +# % gui, FSCN1.pva, groupHeading, Array Settings +# % gui, FSCN1.pva, readback, Num Dimensions, S03SIM-EA-FSCN-01:PVA:NDimensions_RBV +# % gui, FSCN1.pva, readback, Dim 0 Size, S03SIM-EA-FSCN-01:PVA:ArraySize0_RBV +# % gui, FSCN1.pva, readback, Dim 1 Size, S03SIM-EA-FSCN-01:PVA:ArraySize1_RBV +# % gui, FSCN1.pva, readback, Dim 2 Size, S03SIM-EA-FSCN-01:PVA:ArraySize2_RBV +# % gui, FSCN1.pva, readback, Input Data Type, S03SIM-EA-FSCN-01:PVA:DataType_RBV +# % gui, FSCN1.pva, readback, Colour Mode, S03SIM-EA-FSCN-01:PVA:ColorMode_RBV +# % gui, FSCN1.pva, readback, Bayer Pattern, S03SIM-EA-FSCN-01:PVA:BayerPattern_RBV +# % gui, FSCN1.pva, readback, Unique id, S03SIM-EA-FSCN-01:PVA:UniqueId_RBV +# % gui, FSCN1.pva, readback, Timestamp, S03SIM-EA-FSCN-01:PVA:TimeStamp_RBV + +# % gui, FSCN1.pva, groupHeading, PVA Settings +# % gui, FSCN1.pva, readback, PV Name, S03SIM-EA-FSCN-01:PVA:PvName_RBV + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:PVA:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.pva,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:PVA:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.pva,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:PVA:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.pva,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:PVA:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.pva,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:PVA:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.pva,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:PVA:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.pva,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:PVA:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.pva,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-01:PVA:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.pva,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-01:PVA:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.pva,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-01:PVA:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:PVA:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-01:PVA:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-01:PVA:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-01:PVA:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-01:PVA:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:PVA:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-01:PVA:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-01:PVA:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-01:PVA:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.pva,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-01:PVA:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.pva,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-01:PVA:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN1.pva,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN1.pva,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-01:PVA:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-01:PVA:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-01:PVA:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.pva,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:PVA:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.pva,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:PVA:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-01:PVA:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.pva,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-01:PVA:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-01:PVA:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-01:PVA:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.pva,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-01:PVA:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.pva,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-01:PVA:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:PVA:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-01:PVA:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-01:PVA:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:PVA:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.pva,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:PVA:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:PVA:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.pva,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-01:PVA:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN1.pva,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-01:PVA:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-01:PVA:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.pva,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-01:PVA:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.pva,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-01:PVA:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-01:PVA:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-01:PVA:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-01:PVA:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.pva,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-01:PVA:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.pva,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-01:PVA:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN1.pva,0,1)NDARRAY_PORT") + field(VAL, "FSCN1.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-01:PVA:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.pva,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:PVA:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.pva,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:PVA:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.pva,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:PVA:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PVA:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.pva,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:PVA:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.pva,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PVA:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-01:PVA:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-01:PVA:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-01:PVA:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-01:PVA:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-01:PVA:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-01:PVA:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-01:PVA:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.pva,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-01:PVA:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.pva,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-01:PVA:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.pva,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:PVA:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.pva,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-01:PVA:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.pva,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:PVA:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-01:PVA:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.pva,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:PVA:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.pva,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:PVA:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:PVA:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:PVA:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-01:PVA:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-01:PVA:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:PVA:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-01:PVA:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-01:PVA:QueueSize") + field(OUT, "S03SIM-EA-FSCN-01:PVA:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-01:PVA:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-01:PVA:QueueSize") + field(INPB, "S03SIM-EA-FSCN-01:PVA:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-01:PVA:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.pva,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-01:PVA:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.pva,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-01:PVA:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-01:PVA:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN1.pva,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-01:PVA:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN1.pva,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:PVA:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.pva,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-01:PVA:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-01:PVA:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-01:PVA:SortSize") + field(OUT, "S03SIM-EA-FSCN-01:PVA:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-01:PVA:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.pva,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-01:PVA:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.pva,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-01:PVA:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.pva,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-01:PVA:AsynIO") +{ + field(PORT, "FSCN1.pva") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +# New records for NDPluginPva + +record(waveform, "S03SIM-EA-FSCN-01:PVA:PvName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN1.pva,0,1)PV_NAME") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} +#=================================================================# +# Template file: NDPva.template +# Database for the records specific to the pvAccess plugin +# Bruno Martins +# May 5, 2015 + +#% macro, P, Device Prefix +#% macro, R, Device Suffix +#% macro, PORT, Asyn Port name +#% macro, ADDR, Asyn Port address +#% macro, TIMEOUT, Asyn timeout + +# This associates the template with an edm screen +# % gui, FSCN2.pva, edmtab, NDPvaPlugin.edl, P=S03SIM-EA-FSCN-02,R=:PVA: + +# This associates a BOY screen with the template +# % gui, FSCN2.pva, boydetail,ADApp_opi/dls/pva_detail.opi, P=S03SIM-EA-FSCN-02, R=:PVA:, DESC=PVAccess +# % gui, FSCN2.pva, boyembed, ADApp_opi/dls/pva_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:PVA:, DESC=PVAccess +# % gui, FSCN2.pva, boyembed, ADApp_opi/dls/pva_embed.opi, P=S03SIM-EA-FSCN-02, R=:PVA:, DESC=PVAccess + +# Info +# % gui, FSCN2.pva, groupHeading, Info +# % gui, FSCN2.pva, readback, Port name, S03SIM-EA-FSCN-02:PVA:PortName_RBV +# % gui, FSCN2.pva, readback, Plugin type, S03SIM-EA-FSCN-02:PVA:PluginType_RBV +# Input +# % gui, FSCN2.pva, demandString, Input, S03SIM-EA-FSCN-02:PVA:NDArrayPort +# % gui, FSCN2.pva, readback, Input, S03SIM-EA-FSCN-02:PVA:NDArrayPort_RBV + +# % gui, FSCN2.pva, groupHeading, Callback +# % gui, FSCN2.pva, enum, Callbacks, S03SIM-EA-FSCN-02:PVA:EnableCallbacks +# % gui, FSCN2.pva, statusbits, Callbacks, S03SIM-EA-FSCN-02:PVA:EnableCallbacks_RBV +# % gui, FSCN2.pva, demand, Min Callback Time, S03SIM-EA-FSCN-02:PVA:MinCallbackTime +# % gui, FSCN2.pva, readback, Min Callback Time, S03SIM-EA-FSCN-02:PVA:MinCallbackTime_RBV +# % gui, FSCN2.pva, enum, Block Callbacks, S03SIM-EA-FSCN-02:PVA:BlockingCallbacks +# % gui, FSCN2.pva, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:PVA:BlockingCallbacks_RBV + +# % gui, FSCN2.pva, groupHeading, Counters +# % gui, FSCN2.pva, demand, Array Counter, S03SIM-EA-FSCN-02:PVA:ArrayCounter +# % gui, FSCN2.pva, readback, Array Counter, S03SIM-EA-FSCN-02:PVA:ArrayCounter_RBV +# % gui, FSCN2.pva, readback, Array Rate (fps), S03SIM-EA-FSCN-02:PVA:ArrayRate_RBV +# % gui, FSCN2.pva, readback, Queue Use, S03SIM-EA-FSCN-02:PVA:QueueUse +# % gui, FSCN2.pva, readback, Queue Size, S03SIM-EA-FSCN-02:PVA:QueueSize +# % gui, FSCN2.pva, demand, Dropped Arrays, S03SIM-EA-FSCN-02:PVA:DroppedArrays +# % gui, FSCN2.pva, readback, Dropped Arrays, S03SIM-EA-FSCN-02:PVA:DroppedArrays_RBV + +# % gui, FSCN2.pva, groupHeading, Array Settings +# % gui, FSCN2.pva, readback, Num Dimensions, S03SIM-EA-FSCN-02:PVA:NDimensions_RBV +# % gui, FSCN2.pva, readback, Dim 0 Size, S03SIM-EA-FSCN-02:PVA:ArraySize0_RBV +# % gui, FSCN2.pva, readback, Dim 1 Size, S03SIM-EA-FSCN-02:PVA:ArraySize1_RBV +# % gui, FSCN2.pva, readback, Dim 2 Size, S03SIM-EA-FSCN-02:PVA:ArraySize2_RBV +# % gui, FSCN2.pva, readback, Input Data Type, S03SIM-EA-FSCN-02:PVA:DataType_RBV +# % gui, FSCN2.pva, readback, Colour Mode, S03SIM-EA-FSCN-02:PVA:ColorMode_RBV +# % gui, FSCN2.pva, readback, Bayer Pattern, S03SIM-EA-FSCN-02:PVA:BayerPattern_RBV +# % gui, FSCN2.pva, readback, Unique id, S03SIM-EA-FSCN-02:PVA:UniqueId_RBV +# % gui, FSCN2.pva, readback, Timestamp, S03SIM-EA-FSCN-02:PVA:TimeStamp_RBV + +# % gui, FSCN2.pva, groupHeading, PVA Settings +# % gui, FSCN2.pva, readback, PV Name, S03SIM-EA-FSCN-02:PVA:PvName_RBV + +#=================================================================# +# Template file: NDPluginBase.template +# Database for NDPluginBase, i.e. records common to all plugins +# Mark Rivers +# April 25, 2008 + +# Macros: +# % macro, P, Device Prefix +# % macro, R, Device Suffix +# % macro, PORT, Asyn Port name +# % macro, TIMEOUT, Timeout +# % macro, ADDR, Asyn Port address +# % macro, NDARRAY_PORT, Input Array Port +# % macro, NDARRAY_ADDR, Input Array Address +# % macro, ENABLED, Plugin Enabled at startup? +# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs + +#=================================================================# +# Template file: NDArrayBase.template +# Database for area detector control using asyn driver and standard asyn device support +# Mark Rivers +# March 9, 2008 + +################################################################### +# This record contains the version of ADCore # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:PVA:ADCoreVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.pva,0,1)ADCORE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the version of the driver or plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:PVA:DriverVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.pva,0,1)DRIVER_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the asyn port name of this detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:PVA:PortName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.pva,0,1)PORT_NAME_SELF") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records contain basic information about the detector # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:PVA:Manufacturer_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.pva,0,1)MANUFACTURER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:PVA:Model_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.pva,0,1)MODEL") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:PVA:SerialNumber_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.pva,0,1)SERIAL_NUMBER") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:PVA:SDKVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.pva,0,1)SDK_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +record(stringin, "S03SIM-EA-FSCN-02:PVA:FirmwareVersion_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.pva,0,1)FIRMWARE_VERSION") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control acquisition start and stop # +################################################################### + +record(bo, "S03SIM-EA-FSCN-02:PVA:Acquire") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.pva,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ONAM, "Acquire") + field(VAL, "0") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:SetAcquireBusy") + info(ai:READBACK, "1") +} + +record(bi, "S03SIM-EA-FSCN-02:PVA:Acquire_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)ACQUIRE") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:PVA:SetAcquireBusy") +{ + field(INPA, "S03SIM-EA-FSCN-02:PVA:Acquire NPP") + field(CALC, "A") + field(OOPT, "Transition To Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:PVA:AcquireBusy PP") +} + +record(ai, "S03SIM-EA-FSCN-02:PVA:AcquireBusy") { + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(VAL, "0") +} + +record(bi, "S03SIM-EA-FSCN-02:PVA:AcquireBusyCB") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)ACQUIRE_BUSY") + field(ZNAM, "Done") + field(ZSV, "NO_ALARM") + field(ONAM, "Acquiring") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:PVA:ClearAcquireBusy") { + field(INPA, "S03SIM-EA-FSCN-02:PVA:AcquireBusyCB CP") + field(CALC, "A") + field(OOPT, "Transition To Zero") + field(OUT, "S03SIM-EA-FSCN-02:PVA:AcquireBusy PP") +} + +record(bo, "S03SIM-EA-FSCN-02:PVA:WaitForPlugins") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.pva,0,1)WAIT_FOR_PLUGINS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") +} + +################################################################### +# These records are the array size and data type # +################################################################### +# The number of dimensions +record(longout, "S03SIM-EA-FSCN-02:PVA:NDimensions") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.pva,0,1)ARRAY_NDIMENSIONS") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:NDimensions_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)ARRAY_NDIMENSIONS") + field(SCAN, "I/O Intr") +} + +# The array dimensions waveform records +record(waveform, "S03SIM-EA-FSCN-02:PVA:Dimensions") +{ + field(DTYP, "asynInt32ArrayOut") + field(INP, "@asyn(FSCN2.pva,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim0SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim0SA") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize0") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize0") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dim0SA") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim1SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim1SA") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize1") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize1") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dim1SA") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim2SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim2SA") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize2") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize2") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dim2SA") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim3SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim3SA") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize3") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize3") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dim3SA") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim4SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim4SA") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize4") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize4") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dim4SA") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim5SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim5SA") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize5") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize5") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dim5SA") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim6SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim6SA") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize6") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize6") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dim6SA") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim7SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim7SA") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize7") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize7") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dim7SA") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim8SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim8SA") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize8") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize8") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dim8SA") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim9SA") +} + +record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim9SA") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize9") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize9") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dim9SA") +} + + +record(waveform, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV") +{ + field(DTYP, "asynInt32ArrayIn") + field(INP, "@asyn(FSCN2.pva,0,1)ARRAY_DIMENSIONS") + field(FTVL, "LONG") + field(NELM, "10") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim0SA_RBV") + field(SCAN, "I/O Intr") +} + +record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim0SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "0") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize0_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize0_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dim0SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim1SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim1SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "1") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize1_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize1_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dim1SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim2SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim2SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "2") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize2_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize2_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dim2SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim3SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim3SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "3") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize3_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize3_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dim3SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim4SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim4SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "4") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize4_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize4_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dim4SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim5SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim5SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "5") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize5_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize5_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dim5SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim6SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim6SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "6") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize6_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize6_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dim6SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim7SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim7SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "7") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize7_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize7_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dim7SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim8SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim8SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "8") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize8_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize8_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dim8SA_RBV") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim9SA_RBV") +} + +record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim9SA_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") + field(FTVL, "LONG") + field(MALM, "10") + field(NELM, "1") + field(INDX, "9") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize9_RBV") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize9_RBV") +{ + field(INP, "S03SIM-EA-FSCN-02:PVA:Dim9SA_RBV") +} + + +record(mbbi, "S03SIM-EA-FSCN-02:PVA:BayerPattern_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)BAYER_PATTERN") + field(ZRST, "RGGB") + field(ZRVL, "0") + field(ONST, "GBRG") + field(ONVL, "1") + field(TWST, "GRBG") + field(TWVL, "2") + field(THST, "BGGR") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)ARRAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)ARRAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySizeZ_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)ARRAY_SIZE_Z") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)ARRAY_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records have information on the compression # +################################################################### +record(stringin, "S03SIM-EA-FSCN-02:PVA:Codec_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.pva,0,1)CODEC") + field(VAL, "") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:CompressedSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)COMPRESSED_SIZE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the data type # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:PVA:DataType") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.pva,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:PVA:DataType_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)DATA_TYPE") + field(ZRST, "Int8") + field(ZRVL, "0") + field(ONST, "UInt8") + field(ONVL, "1") + field(TWST, "Int16") + field(TWVL, "2") + field(THST, "UInt16") + field(THVL, "3") + field(FRST, "Int32") + field(FRVL, "4") + field(FVST, "UInt32") + field(FVVL, "5") + field(SXST, "Int64") + field(SXVL, "6") + field(SVST, "UInt64") + field(SVVL, "7") + field(EIST, "Float32") + field(EIVL, "8") + field(NIST, "Float64") + field(NIVL, "9") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the color mode # +# These choices must agree with NDColorMode_t in NDArray.h # +################################################################### + +record(mbbo, "S03SIM-EA-FSCN-02:PVA:ColorMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.pva,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-EA-FSCN-02:PVA:ColorMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)COLOR_MODE") + field(ZRST, "Mono") + field(ZRVL, "0") + field(ONST, "Bayer") + field(ONVL, "1") + field(TWST, "RGB1") + field(TWVL, "2") + field(THST, "RGB2") + field(THVL, "3") + field(FRST, "RGB3") + field(FRVL, "4") + field(FVST, "YUV444") + field(FVVL, "5") + field(SXST, "YUV422") + field(SXVL, "6") + field(SVST, "YUV421") + field(SVVL, "7") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records are the uniqueId and time stamps of the array # +################################################################### +record(longin, "S03SIM-EA-FSCN-02:PVA:UniqueId_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)UNIQUE_ID") + field(SCAN, "I/O Intr") +} + +record(ai, "S03SIM-EA-FSCN-02:PVA:TimeStamp_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.pva,0,1)TIME_STAMP") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:EpicsTSSec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)EPICS_TS_SEC") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:EpicsTSNsec_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)EPICS_TS_NSEC") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records provide statistics on array callbacks and # +# array callback rates # +################################################################### +record(longout, "S03SIM-EA-FSCN-02:PVA:ArrayCounter") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.pva,0,1)ARRAY_COUNTER") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:ArrayCounter_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)ARRAY_COUNTER") + field(SCAN, "I/O Intr") +} + +# Updated rate calculation to use a smoothing factor w/ guard against negative values +record(calc, "S03SIM-EA-FSCN-02:PVA:ArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:PVA:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "S03SIM-EA-FSCN-02:PVA:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPC, "1.0") # Delta time in seconds + field(INPD, "S03SIM-EA-FSCN-02:PVA:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPE, "0.0") # Smoothing factor + field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") + field(PREC, "2" ) + field(EGU, "Hz" ) + field(SCAN, "1 second") +} + +################################################################### +# These records control NDArray callacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:PVA:ArrayCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.pva,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:PVA:ArrayCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)ARRAY_CALLBACKS") + field(ZNAM, "Disable") + field(ZSV, "NO_ALARM") + field(ONAM, "Enable") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains macro definitions for the attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:PVA:NDAttributesMacros") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.pva,0,1)ND_ATTRIBUTES_MACROS") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record is the name of a file defining attributes # +################################################################### + +record(waveform, "S03SIM-EA-FSCN-02:PVA:NDAttributesFile") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(FSCN2.pva,0,1)ND_ATTRIBUTES_FILE") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +################################################################### +# This record defines the status of reading attributes file # +################################################################### + +record(mbbi, "S03SIM-EA-FSCN-02:PVA:NDAttributesStatus") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)ND_ATTRIBUTES_STATUS") + field(ZRVL, "0") + field(ZRST, "Attributes file OK") + field(ZRSV, "NO_ALARM") + field(ONVL, "1") + field(ONST, "File not found") + field(ONSV, "MINOR") + field(TWVL, "2") + field(TWST, "XML syntax error") + field(TWSV, "MAJOR") + field(THVL, "3") + field(THST, "Macro substitution error") + field(THSV, "MAJOR") + field(SCAN, "I/O Intr") +} + +################################################################### +# Status of NDArrayPool - number of buffers, memory used etc. # +################################################################### + +record(ai, "S03SIM-EA-FSCN-02:PVA:PoolMaxMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.pva,0,1)POOL_MAX_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "Passive") + field(PINI, "YES") +} + +record(ai, "S03SIM-EA-FSCN-02:PVA:PoolUsedMem") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.pva,0,1)POOL_USED_MEMORY") + field(PREC, "1") + field(EGU, "MB") + field(SCAN, "1 second") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:PoolAllocBuffers") + info(autosaveFields, "SCAN") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:PoolAllocBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)POOL_ALLOC_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:PoolFreeBuffers") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:PoolFreeBuffers") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)POOL_FREE_BUFFERS") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:PoolUsedBuffers") +} + +record(calc, "S03SIM-EA-FSCN-02:PVA:PoolUsedBuffers") +{ + field(INPA, "S03SIM-EA-FSCN-02:PVA:PoolAllocBuffers NPP MS") + field(INPB, "S03SIM-EA-FSCN-02:PVA:PoolFreeBuffers NPP MS") + field(CALC, "A-B") +} + +record(bo, "S03SIM-EA-FSCN-02:PVA:EmptyFreeList") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.pva,0,1)POOL_EMPTY_FREELIST") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:NumQueuedArrays") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)NUM_QUEUED_ARRAYS") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the type of plugin # +################################################################### + +record(stringin, "S03SIM-EA-FSCN-02:PVA:PluginType_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.pva,0,1)PLUGIN_TYPE") + field(VAL, "Unknown") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control the connection of the server to # +# an NDArray driver port and address # +################################################################### +# Array port name +record(stringout, "S03SIM-EA-FSCN-02:PVA:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(FSCN2.pva,0,1)NDARRAY_PORT") + field(VAL, "FSCN2.CAM") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-EA-FSCN-02:PVA:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.pva,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:PVA:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.pva,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether callbacks are enabled and # +# minimum time between callbacks # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:PVA:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.pva,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:PVA:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PVA:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.pva,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:PVA:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.pva,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PVA:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-EA-FSCN-02:PVA:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-EA-FSCN-02:PVA:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-EA-FSCN-02:PVA:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-EA-FSCN-02:PVA:MinCallbackTime PP") +} + +record(calc, "S03SIM-EA-FSCN-02:PVA:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-EA-FSCN-02:PVA:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-EA-FSCN-02:PVA:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.pva,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-EA-FSCN-02:PVA:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.pva,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record contains the last execution time of the plugin # +################################################################### +record(ai, "S03SIM-EA-FSCN-02:PVA:ExecutionTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.pva,0,1)EXECUTION_TIME") + field(EGU, "ms") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# This record requests that the plugin execute again with the # +# same NDArray # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:PVA:ProcessPlugin") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.pva,0,1)PROCESS_PLUGIN") + field(VAL, "1") +} + +################################################################### +# These records control whether callbacks block or not # +################################################################### +record(bo, "S03SIM-EA-FSCN-02:PVA:BlockingCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.pva,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-02:PVA:BlockingCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)BLOCKING_CALLBACKS") + field(ZNAM, "No") + field(ONAM, "Yes") + field(SCAN, "I/O Intr") +} + + +record(longout, "S03SIM-EA-FSCN-02:PVA:DroppedArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.pva,0,1)DROPPED_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:DroppedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)DROPPED_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:PVA:QueueSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.pva,0,1)QUEUE_SIZE") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:QueueSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)QUEUE_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:QueueFreeLow") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:PVA:QueueFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:PVA:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:PVA:QueueFree.LOW") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:QueueUseHIGH") +} + +# Set a HIGH warning level for the input queue fill level to 75% +# of the full size of the queue +record(calcout, "S03SIM-EA-FSCN-02:PVA:QueueUseHIGH") { + field(CALC, "A*0.75") + field(INPA, "S03SIM-EA-FSCN-02:PVA:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:PVA:QueueUse.HIGH") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:QueueUseHIHI") +} + +# Set a HIHI level for the input queue fill level to indicate an error +# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) +record(calcout, "S03SIM-EA-FSCN-02:PVA:QueueUseHIHI") { + field(CALC, "A*1.0") + field(INPA, "S03SIM-EA-FSCN-02:PVA:QueueSize") + field(OUT, "S03SIM-EA-FSCN-02:PVA:QueueUse.HIHI") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:QueueFree") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)QUEUE_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +# Display the fill level on the plugins input queue +record(calc, "S03SIM-EA-FSCN-02:PVA:QueueUse") { + field(CALC, "A-B") + field(INPA, "S03SIM-EA-FSCN-02:PVA:QueueSize") + field(INPB, "S03SIM-EA-FSCN-02:PVA:QueueFree CP") + field(SCAN, "Passive") + field(HHSV, "MAJOR") + field(HSV, "MINOR") + field(HYST, "1") +} + +record(longout, "S03SIM-EA-FSCN-02:PVA:NumThreads") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.pva,0,1)NUM_THREADS") + field(VAL, "1") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:NumThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)NUM_THREADS") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:MaxThreads_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)MAX_THREADS") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control output array sorting # +################################################################### +record(mbbo, "S03SIM-EA-FSCN-02:PVA:SortMode") { + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.pva,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") +} + +record(mbbi, "S03SIM-EA-FSCN-02:PVA:SortMode_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)SORT_MODE") + field(ZRVL, "0") + field(ZRST, "Unsorted") + field(ONVL, "1") + field(ONST, "Sorted") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-EA-FSCN-02:PVA:SortTime") { + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(FSCN2.pva,0,1)SORT_TIME") + field(PREC, "3") + field(VAL, "0.1") +} + +record(ai, "S03SIM-EA-FSCN-02:PVA:SortTime_RBV") { + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.pva,0,1)SORT_TIME") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:PVA:SortSize") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.pva,0,1)SORT_SIZE") + field(VAL, "20") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:SortSize_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)SORT_SIZE") + field(FLNK, "S03SIM-EA-FSCN-02:PVA:SortFreeLow") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:SortFree") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)SORT_FREE") + field(LLSV, "MAJOR") + field(LSV, "MINOR") + field(LOLO, "0") + field(HYST, "1") + field(SCAN, "I/O Intr") +} + +record(calcout, "S03SIM-EA-FSCN-02:PVA:SortFreeLow") { + field(CALC, "A*0.25") + field(INPA, "S03SIM-EA-FSCN-02:PVA:SortSize") + field(OUT, "S03SIM-EA-FSCN-02:PVA:SortFree.LOW") +} + +record(longout, "S03SIM-EA-FSCN-02:PVA:DroppedOutputArrays") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.pva,0,1)DROPPED_OUTPUT_ARRAYS") + field(VAL, "0") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:DroppedOutputArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)DROPPED_OUTPUT_ARRAYS") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-EA-FSCN-02:PVA:DisorderedArrays") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.pva,0,1)DISORDERED_ARRAYS") + field(PINI, "YES") +} + +record(longin, "S03SIM-EA-FSCN-02:PVA:DisorderedArrays_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.pva,0,1)DISORDERED_ARRAYS") + field(SCAN, "I/O Intr") +} + + + +################################################################### +# The asynRecord is used for mainly for trace mask # +################################################################### + +# Set ASYN_TRACEIO_HEX bit by default +record(ai,"S03SIM-EA-FSCN-02:PVA:AsynIO") +{ + field(PORT, "FSCN2.pva") + field(TIB2,"1") + info("ADType", "ADPlugin") +} + + +# New records for NDPluginPva + +record(waveform, "S03SIM-EA-FSCN-02:PVA:PvName_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(FSCN2.pva,0,1)PV_NAME") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} diff --git a/tickit_devices/oav/db_files/FILL.db b/tickit_devices/oav/db_files/FILL.db deleted file mode 100644 index 6be5efc7..00000000 --- a/tickit_devices/oav/db_files/FILL.db +++ /dev/null @@ -1,18 +0,0 @@ -#Real world PV= SR-CS-FILL-01:COUNTDOWN -record (ai, "BL03S-SR-CS-FILL-01:COUNTDOWN") -{ - field (DESC, "seconds until next fill") - field (VAL, "-1.0") - field (EGU, "s") - field (PREC, "4") - field (PINI, "1") -} -#Real world PV= SR-CS-FILL-01:ENDCOUNTDN -record (ai, "BL03S-SR-CS-FILL-01:ENDCOUNTDN") -{ - field (DESC, "secs until end of next fill") - field (VAL, "-1") - field (EGU, "s") - field (PREC, "4") - field (PINI, "1") -} \ No newline at end of file diff --git a/tickit_devices/oav/db_files/MSTAT.db b/tickit_devices/oav/db_files/MSTAT.db deleted file mode 100644 index 0a70d7b0..00000000 --- a/tickit_devices/oav/db_files/MSTAT.db +++ /dev/null @@ -1,51 +0,0 @@ -#Real world PV= CS-CS-MSTAT-01:MODE -record (mbbi, "BL03S-CS-CS-MSTAT-01:MODE") -{ - field (SCAN, "Passive") - field (DESC, "Mode") - field (ZRST, "Shutdown") - field (ONST, "Injection") - field (TWST, "No Beam") - field (THST, "Mach. Dev.") - field (FRST, "User") - field (FVST, "Special") - field (SXST, "BL Startup") - field (SVST, "Unknown") - field (VAL, "0") - field (PINI, "YES") -} - -# Due to limitations in pythonIOC, these records can not be read in -# via the epics adapter. Stand in aIn records have been made instead -# to just hold the float values as currently the internal logic is -# not needed or can be implemented in the tickit device. - -# This record will count down to zero at the end of the -# current calendar period if the current period is a type -# of user beam time. Otherwise it will have the value -1. -# The value is set from the python process CS-CS-MSTAT-03. - -#Real world PV= CS-CS-MSTAT-01:USERCOUNTDN -#record (calcout, "$(device):USERCOUNTDN") -#{ -# field (DESC, "Countdown to end of user time") -# field (SCAN, "1 second") -# field (VAL, "0") -# field (A, "0") -# field (OOPT, "On Change") -# field (DOPT, "Use OCAL") -# field (CALC, "A > 0 ? A - 1 : A") -# field (OCAL, "A > 1 ? 1 : 0") -# field (INPA, "CS-CS-MSTAT-01:USERCOUNTDN") -#} - -# Calculate beam energy from SR Dipole current -#Real world PV= CS-CS-MSTAT-01:BEAMENERGY -#record (calc, "$(device):BEAMENERGY") -#{ -# field (SCAN, "10 second") -# field (INPA, "SR-PC-DIPOL-01:I") -# field (CALC, "A * 0.0022153") -# field (EGU, "GeV") -# field (PINI, "YES") -#} \ No newline at end of file diff --git a/tickit_devices/oav/edge_waveforms.npy b/tickit_devices/oav/db_files/edge_waveforms.npy similarity index 100% rename from tickit_devices/oav/edge_waveforms.npy rename to tickit_devices/oav/db_files/edge_waveforms.npy diff --git a/tickit_devices/oav/oav_edge_detection.py b/tickit_devices/oav/oav_edge_detection.py index 1500c9db..128c072c 100644 --- a/tickit_devices/oav/oav_edge_detection.py +++ b/tickit_devices/oav/oav_edge_detection.py @@ -26,179 +26,6 @@ class OAVEdgeDetectionDevice(Device): #: A typed mapping containing the current output value Outputs: TypedDict = TypedDict("Outputs", {}) - def __init__( - self, - initial_exposurePV, - initial_acqPeriodPV, - initial_gainPV, - initial_oavColourMode, - initial_cannyEdgeUpperThreshholdPV, - initial_cannyEdgeLowerThreshholdPV, - initial_xSizePV, - initial_ySizePV, - initial_inputRBPV, - initial_exposureRBPV, - initial_acqPeriodRBPV, - initial_gainRBPV, - initial_inputPV, - initial_enableOverlayPV, - initial_overlayPortPV, - initial_useOverlay1PV, - initial_useOverlay2PV, - initial_overlay2ShapePV, - initial_overlay2RedPV, - initial_overlay2GreenPV, - initial_overlay2BluePV, - initial_overlay2XPosition, - initial_overlay2YPosition, - initial_overlay2XSize, - initial_overlay2YSize, - initial_edgeTop, - initial_edgeBottom, - ) -> None: - """Initialise the OAVEdgeDetectionDevice device.""" - # Edge detection PVs - self.EDGE_DETECTION_PVS: dict = { - "exposurePV": { - "pv_name": "CAM:AcquireTime", - "getter": self.get_exposurePV_value, - "value": initial_exposurePV, - }, - "acqPeriodPV": { - "pv_name": "CAM:AcquirePeriod", - "getter": self.get_acqPeriodPV_value, - "value": initial_acqPeriodPV, - }, - "gainPV": { - "pv_name": "CAM:Gain", - "getter": self.get_gainPV_value, - "value": initial_gainPV, - }, - "oavColourMode": { - "pv_name": "CAM:ColorMode", - "getter": self.get_oavColourMode_value, - "value": initial_oavColourMode, - "is_writable": True, - }, - "cannyEdgeUpperThreshholdPV": { - "pv_name": "MXSC:CannyUpper", - "getter": self.get_cannyEdgeUpperThreshholdPV_value, - "value": initial_cannyEdgeUpperThreshholdPV, - "is_writable": True, - }, - "cannyEdgeLowerThreshholdPV": { - "pv_name": "MXSC:CannyLower", - "getter": self.get_cannyEdgeLowerThreshholdPV_value, - "value": initial_cannyEdgeLowerThreshholdPV, - "is_writable": True, - }, - "xSizePV": { - "pv_name": "MJPG:ArraySize1_RBV", - "getter": self.get_xSizePV_value, - "value": initial_xSizePV, - }, - "ySizePV": { - "pv_name": "MJPG:ArraySize2_RBV", - "getter": self.get_ySizePV_value, - "value": initial_ySizePV, - }, - "inputRBPV": { - "pv_name": "MJPG:NDArrayPort_RBV", - "getter": self.get_inputRBPV_value, - "value": initial_inputRBPV, - }, - "exposureRBPV": { - "pv_name": "CAM:AcquireTime_RBV", - "getter": self.get_exposureRBPV_value, - "value": initial_exposureRBPV, - }, - "acqPeriodRBPV": { - "pv_name": "CAM:AcquirePeriod_RBV", - "getter": self.get_acqPeriodRBPV_value, - "value": initial_acqPeriodRBPV, - }, - "gainRBPV": { - "pv_name": "CAM:Gain_RBV", - "getter": self.get_gainRBPV_value, - "value": initial_gainRBPV, - }, - "inputPV": { - "pv_name": "MJPG:NDArrayPort", - "getter": self.get_inputPV_value, - "value": initial_inputPV, - }, - "enableOverlayPV": { - "pv_name": "OVER:EnableCallbacks", - "getter": self.get_enableOverlayPV_value, - "value": initial_enableOverlayPV, - }, - "overlayPortPV": { - "pv_name": "OVER:NDArrayPort", - "getter": self.get_overlayPortPV_value, - "value": initial_overlayPortPV, - }, - "useOverlay1PV": { - "pv_name": "OVER:1:Use", - "getter": self.get_useOverlay1PV_value, - "value": initial_useOverlay1PV, - }, - "useOverlay2PV": { - "pv_name": "OVER:2:Use", - "getter": self.get_useOverlay2PV_value, - "value": initial_useOverlay2PV, - }, - "overlay2ShapePV": { - "pv_name": "OVER:2:Shape", - "getter": self.get_overlay2ShapePV_value, - "value": initial_overlay2ShapePV, - }, - "overlay2RedPV": { - "pv_name": "OVER:2:Red", - "getter": self.get_overlay2RedPV_value, - "value": initial_overlay2RedPV, - }, - "overlay2GreenPV": { - "pv_name": "OVER:2:Green", - "getter": self.get_overlay2GreenPV_value, - "value": initial_overlay2GreenPV, - }, - "overlay2BluePV": { - "pv_name": "OVER:2:Blue", - "getter": self.get_overlay2BluePV_value, - "value": initial_overlay2BluePV, - }, - "overlay2XPosition": { - "pv_name": "OVER:2:PositionX", - "getter": self.get_overlay2XPosition_value, - "value": initial_overlay2XPosition, - }, - "overlay2YPosition": { - "pv_name": "OVER:2:PositionY", - "getter": self.get_overlay2YPosition_value, - "value": initial_overlay2YPosition, - }, - "overlay2XSize": { - "pv_name": "OVER:2:SizeX", - "getter": self.get_overlay2XSize_value, - "value": initial_overlay2XSize, - }, - "overlay2YSize": { - "pv_name": "OVER:2:SizeY", - "getter": self.get_overlay2YSize_value, - "value": initial_overlay2YSize, - }, - "edgeTop": { - "pv_name": "MXSC:Top", - "getter": self.get_edgeTop_value, - "value": initial_edgeTop, - }, - "edgeBottom": { - "pv_name": "MXSC:Bottom", - "getter": self.get_edgeBottom_value, - "value": initial_edgeBottom, - }, - } - def update(self, time: SimTime, inputs: Inputs) -> DeviceUpdate[Outputs]: """Update method, will be unused since camera PVs won't change value without \ directly setting them. @@ -215,114 +42,6 @@ def update(self, time: SimTime, inputs: Inputs) -> DeviceUpdate[Outputs]: """ return DeviceUpdate(OAVEdgeDetectionDevice.Outputs(), None) - def get_cannyEdgeLowerThreshholdPV_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["cannyEdgeLowerThresholdPV"]["value"] - - def get_cannyEdgeUpperThreshholdPV_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["cannyEdgeUpperThresholdPV"]["value"] - - def get_exposurePV_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["exposurePV"]["value"] - - def get_acqPeriodPV_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["acqPeriodPV"]["value"] - - def get_gainPV_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["gainPV"]["value"] - - def get_oavColourMode_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["oavColourMode"]["value"] - - def get_xSizePV_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["xSizePV"]["value"] - - def get_ySizePV_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["ySizePV"]["value"] - - def get_inputRBPV_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["inputRBPV"]["value"] - - def get_exposureRBPV_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["exposureRBPV"]["value"] - - def get_acqPeriodRBPV_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["acqPeriodRBPV"]["value"] - - def get_gainRBPV_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["gainRBPV"]["value"] - - def get_inputPV_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["inputPV"]["value"] - - def get_enableOverlayPV_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["enableOverlayPV"]["value"] - - def get_overlayPortPV_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["overlayPortPV"]["value"] - - def get_useOverlay1PV_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["useOverlay1PV"]["value"] - - def get_useOverlay2PV_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["useOverlay2PV"]["value"] - - def get_overlay2ShapePV_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["overlay2ShapePV"]["value"] - - def get_overlay2RedPV_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["overlay2RedPV"]["value"] - - def get_overlay2GreenPV_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["overlay2GreenPV"]["value"] - - def get_overlay2BluePV_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["overlay2BluePV"]["value"] - - def get_overlay2XPosition_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["overlay2XPosition"]["value"] - - def get_overlay2YPosition_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["overlay2YPosition"]["value"] - - def get_overlay2XSize_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["overlay2XSize"]["value"] - - def get_overlay2YSize_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["overlay2YSize"]["value"] - - def get_edgeTop_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["edgeTop"]["value"] - - def get_edgeBottom_value(self): - """For use by EPICs adapter.""" - return self.EDGE_DETECTION_PVS["edgeBottom"]["value"] - class OAVEdgeDetectionTCPAdapter(ComposedAdapter): """A TCP adapter to set a OAVEdgeDetectionDevice PV values.""" @@ -357,59 +76,19 @@ class OAVEdgeDetectionEpicsAdapter(EpicsAdapter): # Put all the PVs on EPICS def on_db_load(self) -> None: """Epics adapter for reading device values as a PV through channel access.""" - for pv in self.device.EDGE_DETECTION_PVS: - pv_dict = self.device.EDGE_DETECTION_PVS[pv] - - if "is_writable" in pv_dict: - if pv_dict["is_writable"]: - builder.aOut( - pv_dict["pv_name"], - initial_value=pv_dict["value"], - on_update=pv_dict["value"].__setattr__, - ) - continue - - # if the PV is missing the is_writable, or if not is_writable - self.link_input_on_interrupt( - builder.aIn(pv_dict["pv_name"]), pv_dict["getter"] - ) + pass @dataclass class OAVEdgeDetection(ComponentConfig): """Synchrotron current component.""" - initial_exposurePV: float - initial_acqPeriodPV: float - initial_gainPV: float - initial_oavColourMode: int - initial_cannyEdgeUpperThreshholdPV: int - initial_cannyEdgeLowerThreshholdPV: int - initial_xSizePV: float - initial_ySizePV: float - initial_inputRBPV: float - initial_exposureRBPV: float - initial_acqPeriodRBPV: float - initial_gainRBPV: float - initial_inputPV: float - initial_enableOverlayPV: float - initial_overlayPortPV: float - initial_useOverlay1PV: float - initial_useOverlay2PV: float - initial_overlay2ShapePV: float - initial_overlay2RedPV: float - initial_overlay2GreenPV: float - initial_overlay2BluePV: float - initial_overlay2XPosition: float - initial_overlay2YPosition: float - initial_overlay2XSize: float - initial_overlay2YSize: float - waveforms_file: str = "tickit_devices/oav/edge_waveforms.npy" + waveforms_file: str = "tickit_devices/oav/db_files/edge_waveforms.npy" host: str = "localhost" port: int = 25565 format: ByteFormat = ByteFormat(b"%b\r\n") - db_file: str = "tickit_devices/oav/db_files/DCCT.db" - ioc_name: str = "S03-SIM-DI-OAV-01" + db_file: str = "tickit_devices/oav/db_files/DI-OAV.db" + ioc_name: str = "S03SIM-DI-OAV-01" def __call__(self) -> Component: # noqa: D102 with open(self.waveforms_file, "rb") as f: @@ -417,35 +96,7 @@ def __call__(self) -> Component: # noqa: D102 self.initial_edgeBottom = np.load(f) return DeviceSimulation( name=self.name, - device=OAVEdgeDetectionDevice( - self.initial_exposurePV, - self.initial_acqPeriodPV, - self.initial_gainPV, - self.initial_oavColourMode, - self.initial_cannyEdgeUpperThreshholdPV, - self.initial_cannyEdgeLowerThreshholdPV, - self.initial_xSizePV, - self.initial_ySizePV, - self.initial_inputRBPV, - self.initial_exposureRBPV, - self.initial_acqPeriodRBPV, - self.initial_gainRBPV, - self.initial_inputPV, - self.initial_enableOverlayPV, - self.initial_overlayPortPV, - self.initial_useOverlay1PV, - self.initial_useOverlay2PV, - self.initial_overlay2ShapePV, - self.initial_overlay2RedPV, - self.initial_overlay2GreenPV, - self.initial_overlay2BluePV, - self.initial_overlay2XPosition, - self.initial_overlay2YPosition, - self.initial_overlay2XSize, - self.initial_overlay2YSize, - self.initial_edgeTop, - self.initial_edgeBottom, - ), + device=OAVEdgeDetectionDevice(), adapters=[ OAVEdgeDetectionTCPAdapter( TcpServer(self.host, self.port, self.format) From faa1239b60af4b8692e26d2aefe9a2c6f380784b Mon Sep 17 00:00:00 2001 From: Eva Lott Date: Mon, 31 Oct 2022 10:28:35 +0000 Subject: [PATCH 06/16] Using .db instead of creating devices in python class #26 --- tickit_devices/oav/oav_edge_detection.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tickit_devices/oav/oav_edge_detection.py b/tickit_devices/oav/oav_edge_detection.py index 128c072c..136e10b9 100644 --- a/tickit_devices/oav/oav_edge_detection.py +++ b/tickit_devices/oav/oav_edge_detection.py @@ -1,7 +1,6 @@ from dataclasses import dataclass import numpy as np -from softioc import builder from tickit.adapters.composed import ComposedAdapter from tickit.adapters.epicsadapter import EpicsAdapter from tickit.adapters.interpreters.command import CommandInterpreter From 2273d5877b0e451954ed3adc3596420b77af055e Mon Sep 17 00:00:00 2001 From: Eva Lott Date: Mon, 31 Oct 2022 11:38:52 +0000 Subject: [PATCH 07/16] Added PVs to database #26 --- s03_configs/oav.yaml | 14 +- tickit_devices/oav/db_files/DI-OAV.db | 620 + tickit_devices/oav/db_files/EA-FSCN.db | 150021 +------------------- tickit_devices/oav/oav_edge_detection.py | 78 +- 4 files changed, 991 insertions(+), 149742 deletions(-) diff --git a/s03_configs/oav.yaml b/s03_configs/oav.yaml index 7afe6e3c..21569359 100644 --- a/s03_configs/oav.yaml +++ b/s03_configs/oav.yaml @@ -1,4 +1,12 @@ -- tickit_devices.oav.oav_edge_detection.OAVEdgeDetection: - name: oav_edge_detection +- tickit_devices.oav.oav_edge_detection.OAV_DI_OAV: + name: oav_di_oav inputs: {} - port: 25565 \ No newline at end of file + port: 25565 +- tickit_devices.oav.oav_edge_detection.OAV_DI_IOC: + name: oav_di_ioc + inputs: {} + port: 25564 +- tickit_devices.oav.oav_edge_detection.OAV_EA_FSCN: + name: oav_ea_fscn + inputs: {} + port: 25563 \ No newline at end of file diff --git a/tickit_devices/oav/db_files/DI-OAV.db b/tickit_devices/oav/db_files/DI-OAV.db index 89860a99..8e147f5f 100644 --- a/tickit_devices/oav/db_files/DI-OAV.db +++ b/tickit_devices/oav/db_files/DI-OAV.db @@ -5054,3 +5054,623 @@ record(mbbi, "S03SIM-DI-OAV-01:CCON:FalseColor_RBV") field(TWVL, "2") field(SCAN, "I/O Intr") } + + +################################################################### +# These records control the overlay definition # +################################################################### + +record(longout, "S03SIM-DI-OAV-01:OVER:2:PositionXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:2:PositionX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:PositionX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_POSITION_X") + info(asyn:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:PositionX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_POSITION_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:PositionYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:2:PositionY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:PositionY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_POSITION_Y") + info(asyn:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:PositionY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_POSITION_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:CenterXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:2:CenterX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:CenterX") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_CENTER_X") + info(asyn:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:CenterX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_CENTER_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:CenterYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:2:CenterY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:CenterY") +{ + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_CENTER_Y") + info(asyn:READBACK, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:CenterY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_CENTER_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:SizeXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:2:SizeX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:SizeX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_SIZE_X") + field(LOPR, "1") + field(HOPR, "1024") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:SizeX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_SIZE_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:SizeYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:2:SizeY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:SizeY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_SIZE_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:SizeY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_SIZE_Y") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:WidthXLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:2:WidthX PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:WidthX") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_WIDTH_X") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:WidthX_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_WIDTH_X") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:WidthYLink") +{ + field(DOL, " CP MS") + field(OMSL, "closed_loop") + field(OUT, "S03SIM-DI-OAV-01:OVER:2:WidthY PP") + info(autosaveFields, "DOL") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:WidthY") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_WIDTH_Y") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:WidthY_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_WIDTH_Y") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:2:Shape") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:2:Shape_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_SHAPE") + field(ZRST, "Cross") + field(ZRVL, "0") + field(ONST, "Rectangle") + field(ONVL, "1") + field(TWST, "Ellipse") + field(TWVL, "3") + field(THST, "Text") + field(THVL, "2") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:2:DrawMode") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:2:DrawMode_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_DRAW_MODE") + field(ZRST, "Set") + field(ZRVL, "0") + field(ONST, "XOR") + field(ONVL, "1") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:Red") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_RED") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:Red_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_RED") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:Green") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_GREEN") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:Green_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_GREEN") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:2:Blue") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_BLUE") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:Blue_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_BLUE") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records set the HOPR and LOPR values for the position # +# and size to the maximum for the input array # +################################################################### + +record(longin, "S03SIM-DI-OAV-01:OVER:2:MaxSizeX") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeX_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:OVER:2:SetXHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:OVER:2:SetXHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:OVER:2:MaxSizeX NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:OVER:2:PositionX.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:OVER:2:CenterX.HOPR NPP") + field(OUTC, "S03SIM-DI-OAV-01:OVER:2:SizeX.HOPR NPP") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:2:MaxSizeY") +{ + field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeY_RBV CP") + field(FLNK, "S03SIM-DI-OAV-01:OVER:2:SetYHOPR.PROC PP") +} + +record(dfanout, "S03SIM-DI-OAV-01:OVER:2:SetYHOPR") +{ + field(DOL, "S03SIM-DI-OAV-01:OVER:2:MaxSizeY NPP") + field(OMSL, "closed_loop") + field(OUTA, "S03SIM-DI-OAV-01:OVER:2:PositionY.HOPR NPP") + field(OUTB, "S03SIM-DI-OAV-01:OVER:2:CenterY.HOPR NPP") + field(OUTC, "S03SIM-DI-OAV-01:OVER:2:SizeY.HOPR NPP") +} + +################################################################### +# Text overlay (Keith Brister 2014-06-26) +################################################################### + +record(waveform, "S03SIM-DI-OAV-01:OVER:2:DisplayText") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + info(autosaveFields, "VAL") +} + +record(waveform, "S03SIM-DI-OAV-01:OVER:2:DisplayText_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_DISPLAY_TEXT") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:OVER:2:TimeStampFormat") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_TIMESTAMP_FORMAT") + field(VAL, "%Y-%m-%d %H:%M:%S.%03f") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:2:TimeStampFormat_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_TIMESTAMP_FORMAT") + field(SCAN, "I/O Intr") +} + +record(mbbo, "S03SIM-DI-OAV-01:OVER:2:Font") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + info(autosaveFields, "VAL") +} + +record(mbbi, "S03SIM-DI-OAV-01:OVER:2:Font_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)OVERLAY_FONT") + field(ZRST, "6x13") + field(ZRVL, "0") + field(ONST, "6x13 Bold") + field(ONVL, "1") + field(TWST, "9x15") + field(TWVL, "2") + field(THST, "9x15 Bold") + field(THVL, "3") + field(SCAN, "I/O Intr") +} + +################################################################### +# These records control whether this overlay is used # +################################################################### +record(bo, "S03SIM-DI-OAV-01:OVER:2:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,1,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:OVER:2:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,1,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-EA-FSCN-01:OVER:1:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN1.over,0,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-EA-FSCN-01:OVER:1:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN1.over,0,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:OVER:EnableCallbacks") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(VAL, "1") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:OVER:EnableCallbacks_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)ENABLE_CALLBACKS") + field(ZNAM, "Disable") + field(ONAM, "Enable") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:OVER:MinCallbackTime") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.over,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:OVER:MinCallbackTime_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.over,0,1)MIN_CALLBACK_TIME") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(ao, "S03SIM-DI-OAV-01:OVER:MaxArrayRate") +{ + field(DTYP, "Soft Channel") + field(OUT, "S03SIM-DI-OAV-01:OVER:MaxArrayRate_COUT PP") + field(EGU, "Hz") + field(PREC, "3") + field(VAL, "0.0") + info(autosaveFields, "VAL") +} + +record(calcout, "S03SIM-DI-OAV-01:OVER:MaxArrayRate_COUT") +{ + field(INPA, "S03SIM-DI-OAV-01:OVER:MaxArrayRate") + field(CALC, "A=0?0:1.0/A") + field(OUT, "S03SIM-DI-OAV-01:OVER:MinCallbackTime PP") +} + +record(calc, "S03SIM-DI-OAV-01:OVER:MaxArrayRate_RBV") +{ + field(INPA, "S03SIM-DI-OAV-01:OVER:MinCallbackTime_RBV CP") + field(CALC, "A=0?0:1.0/A") + field(EGU, "Hz") + field(PREC, "3") + field(SCAN, "Passive") +} + +record(ao, "S03SIM-DI-OAV-01:OVER:MaxByteRate") +{ + field(PINI, "YES") + field(DTYP, "asynFloat64") + field(OUT, "@asyn(OAV.over,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(VAL, "0.0") + field(DRVL, "0") + info(autosaveFields, "VAL") +} + +record(ai, "S03SIM-DI-OAV-01:OVER:MaxByteRate_RBV") +{ + field(DTYP, "asynFloat64") + field(INP, "@asyn(OAV.over,0,1)MAX_BYTE_RATE") + field(EGU, "s") + field(PREC, "3") + field(SCAN, "I/O Intr") +} + +record(stringout, "S03SIM-DI-OAV-01:OVER:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.over,0,1)NDARRAY_PORT") + field(VAL, "OAV.proc") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:OVER:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.over,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} + +record(longout, "S03SIM-DI-OAV-01:OVER:NDArrayAddress") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)NDARRAY_ADDR") + field(VAL, "0") + info(autosaveFields, "VAL") +} + +record(longin, "S03SIM-DI-OAV-01:OVER:NDArrayAddress_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)NDARRAY_ADDR") + field(SCAN, "I/O Intr") +} + +record(bo, "S03SIM-DI-OAV-01:OVER:1:Use") +{ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(OAV.over,0,1)USE") + field(VAL, "0") + field(ZNAM, "No") + field(ONAM, "Yes") + info(autosaveFields, "VAL") +} + +record(bi, "S03SIM-DI-OAV-01:OVER:1:Use_RBV") +{ + field(DTYP, "asynInt32") + field(INP, "@asyn(OAV.over,0,1)USE") + field(ZNAM, "No") + field(ONAM, "Yes") + field(ZSV, "NO_ALARM") + field(OSV, "MINOR") + field(SCAN, "I/O Intr") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize1_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim2SA_RBV") +} + +record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize2_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim2SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim3SA_RBV") +} +record(stringout, "S03SIM-DI-OAV-01:MJPG:NDArrayPort") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.mjpg,0,1)NDARRAY_PORT") + field(VAL, "OAV.over") + info(autosaveFields, "VAL") +} + +record(stringin, "S03SIM-DI-OAV-01:MJPG:NDArrayPort_RBV") +{ + field(DTYP, "asynOctetRead") + field(INP, "@asyn(OAV.mjpg,0,1)NDARRAY_PORT") + field(SCAN, "I/O Intr") +} diff --git a/tickit_devices/oav/db_files/EA-FSCN.db b/tickit_devices/oav/db_files/EA-FSCN.db index d7973a62..d2083004 100644 --- a/tickit_devices/oav/db_files/EA-FSCN.db +++ b/tickit_devices/oav/db_files/EA-FSCN.db @@ -5844,7 +5844,7 @@ record(calcout, "S03SIM-EA-FSCN-01:CAM:SetAcquireBusy") field(OUT, "S03SIM-EA-FSCN-01:CAM:AcquireBusy PP") } -record(busy, "S03SIM-EA-FSCN-01:CAM:AcquireBusy") { +record(bi, "S03SIM-EA-FSCN-01:CAM:AcquireBusy") { field(ZNAM, "Done") field(ZSV, "NO_ALARM") field(ONAM, "Acquiring") @@ -7252,13 +7252,7 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:TemperatureActual") # The asynRecord is used for mainly for trace mask # ################################################################### -# Set ASYN_TRACEIO_HEX bit by default -record(asyn,"S03SIM-EA-FSCN-01:CAM:AsynIO") -{ - field(PORT, "FSCN1.CAM") - field(TIB2,"1") - info("ADType", "ADDriver") -} + ## These are the records from ADBase.template that we modify @@ -7784,7 +7778,7 @@ record(calcout, "S03SIM-EA-FSCN-02:CAM:SetAcquireBusy") field(OUT, "S03SIM-EA-FSCN-02:CAM:AcquireBusy PP") } -record(busy, "S03SIM-EA-FSCN-02:CAM:AcquireBusy") { +record(bi, "S03SIM-EA-FSCN-02:CAM:AcquireBusy") { field(ZNAM, "Done") field(ZSV, "NO_ALARM") field(ONAM, "Acquiring") @@ -9192,15 +9186,6 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:TemperatureActual") # The asynRecord is used for mainly for trace mask # ################################################################### -# Set ASYN_TRACEIO_HEX bit by default -record(asyn,"S03SIM-EA-FSCN-02:CAM:AsynIO") -{ - field(PORT, "FSCN2.CAM") - field(TIB2,"1") - info("ADType", "ADDriver") -} - - ## These are the records from ADBase.template that we modify # Some cameras use both AcquisitionFrameRate and AcquirePeriod. @@ -9303,149831 +9288,435 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:ExposureMode") field(OUT, "@asyn(FSCN2.CAM 0)GC_EXPOSURE_MODE") field(ZRST, "N.A.") field(ZRVL, "0") -} - -record(mbbi, "S03SIM-EA-FSCN-02:CAM:ExposureMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.CAM 0)GC_EXPOSURE_MODE") - field(ZRST, "N.A.") - field(ZRVL, "0") - field(SCAN, "I/O Intr") -} - -# This record is used to ensure there is a record for ExposureAuto even if there is no such GenICam feature -record(mbbo, "S03SIM-EA-FSCN-02:CAM:ExposureAuto") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.CAM 0)GC_EXPOSURE_AUTO") - field(ZRST, "N.A.") - field(ZRVL, "0") -} - -record(mbbi, "S03SIM-EA-FSCN-02:CAM:ExposureAuto_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.CAM 0)GC_EXPOSURE_AUTO") - field(SCAN, "I/O Intr") - field(ZRST, "N.A.") - field(ZRVL, "0") -} - -# This record is used to ensure there is a record for GainAuto even if there is no such GenICam feature -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GainAuto") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.CAM 0)GC_GAIN_AUTO") - field(ZRST, "N.A.") - field(ZRVL, "0") -} - -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GainAuto_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.CAM 0)GC_GAIN_AUTO") - field(SCAN, "I/O Intr") - field(ZRST, "N.A.") - field(ZRVL, "0") -} - -# This record is used to ensure there is a record for PixelFormat even if there is no such GenICam feature -record(mbbo, "S03SIM-EA-FSCN-02:CAM:PixelFormat") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.CAM 0)GC_PIXEL_FORMAT") - field(ZRST, "N.A.") - field(ZRVL, "0") -} - -record(mbbi, "S03SIM-EA-FSCN-02:CAM:PixelFormat_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.CAM 0)GC_PIXEL_FORMAT") - field(ZRST, "N.A.") - field(ZRVL, "0") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:CAM:ARFramesCompleted") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_COMPLETED") - field(SCAN, "I/O Intr") - info(autosaveFields, "DESC LLSV LOLO LOW LSV") -} - -record(ai, "S03SIM-EA-FSCN-02:CAM:ARFrameFailures") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_FAILURES") - field(SCAN, "I/O Intr") - info(autosaveFields, "DESC HHSV HIHI HIGH HSV") -} - -record(ai, "S03SIM-EA-FSCN-02:CAM:ARFrameUnderruns") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_UNDERRUNS") - field(SCAN, "I/O Intr") - info(autosaveFields, "DESC HHSV HIHI HIGH HSV") -} - -record(longin, "S03SIM-EA-FSCN-02:CAM:ARMissingPackets") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_MISSING_PKTS") - field(SCAN, "I/O Intr") - info(autosaveFields, "DESC HHSV HIHI HIGH HSV") -} - -record(longin, "S03SIM-EA-FSCN-02:CAM:ARResentPackets") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_RESENT_PKTS") - field(SCAN, "I/O Intr") - info(autosaveFields, "DESC HHSV HIHI HIGH HSV") -} - -record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARPacketResendEnable") -{ - field(DESC, "Packet resend enable") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_PKT_RESEND") - field(ZRST, "Never") - field(ZRVL, "0") - field(ONST, "Always") - field(ONVL, "1") - field(VAL, "1") - field(PINI, "1") - info(autosaveFields, "DESC ONSV ZRSV PINI VAL") -} - -record(longout, "S03SIM-EA-FSCN-02:CAM:ARPacketTimeout") -{ - field(DESC, "Delay in us before packet resend request") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_PKT_TIMEOUT") - field(VAL, "20000") - field(EGU, "us") - field(PINI, "1") - info(autosaveFields, "DESC HHSV HIHI HIGH HSV LLSV LOLO LOW LSV PINI VAL") -} - -record(longout, "S03SIM-EA-FSCN-02:CAM:ARFrameRetention") -{ - field(DESC, "Frame timeout in us after last packet") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_FRAME_RETENTION") - field(VAL, "100000") - field(EGU, "us") - field(PINI, "1") - info(autosaveFields, "DESC HHSV HIHI HIGH HSV LLSV LOLO LOW LSV PINI VAL") -} - -record(longout, "S03SIM-EA-FSCN-02:CAM:ARResetCamera") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_RESET") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ARConnectCamera") -} - -record(longout, "S03SIM-EA-FSCN-02:CAM:ARConnectCamera") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_CONNECTION") - field(VAL, "1") - field(PINI, "1") -} - -record(calcout, "S03SIM-EA-FSCN-02:CAM:ARCheckConnection") -{ - field(SCAN, "1 second") - field(INPA, "S03SIM-EA-FSCN-02:CAM:ARConnectCamera.SEVR CP") - field(CALC, "A==0") - field(OOPT, "When Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:CAM:ARConnectCamera.PROC PP") -} - -record(mbbi, "S03SIM-EA-FSCN-02:CAM:ARConvertPixelFormat_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_CONVERT_PIXEL_FORMAT") - field(ZRST, "Mono16Low") - field(ZRVL, "0") - field(ONST, "Mono16High") - field(ONVL, "1") - field(SCAN, "I/O Intr") - info(autosaveFields, "DESC ZRSV ONSV") -} - - -## When unpacking Mono12Packed or Mono12p selects whether 16-bit output is -## left shifted by 4 bits (Mono16High) or not (Mono16Low) -record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARConvertPixelFormat") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_CONVERT_PIXEL_FORMAT") - field(ZRST, "Mono16Low") - field(ZRVL, "0") - field(ONST, "Mono16High") - field(ONVL, "1") - field(PINI, "1") - info(autosaveFields, "DESC ZRSV ONSV VAL") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:CAM:ARShiftDir_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_SHIFT_DIR") - field(ZRST, "None") - field(ZRVL, "0") - field(ONST, "Left") - field(ONVL, "1") - field(TWST, "Right") - field(TWVL, "2") - field(SCAN, "I/O Intr") - info(autosaveFields, "DESC ZRSV ONSV") -} - -## Select no shift, left shift, or right shift when reading data -record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARShiftDir") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_SHIFT_DIR") - field(ZRST, "None") - field(ZRVL, "0") - field(ONST, "Left") - field(ONVL, "1") - field(TWST, "Right") - field(TWVL, "2") - field(PINI, "1") - info(autosaveFields, "DESC ZRSV ONSV VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:CAM:ARShiftBits_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_SHIFT_BITS") - field(ZRST, "1") - field(ZRVL, "1") - field(ONST, "2") - field(ONVL, "2") - field(TWST, "3") - field(TWVL, "3") - field(THST, "4") - field(THVL, "4") - field(FRST, "5") - field(FRVL, "5") - field(FVST, "6") - field(FVVL, "6") - field(SXST, "7") - field(SXVL, "7") - field(SVST, "8") - field(SVVL, "8") - field(SCAN, "I/O Intr") - info(autosaveFields, "DESC ZRSV ONSV") -} - -## Selects how many bits to shift left or right when reading data -record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARShiftBits") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_SHIFT_BITS") - field(ZRST, "1") - field(ZRVL, "1") - field(ONST, "2") - field(ONVL, "2") - field(TWST, "3") - field(TWVL, "3") - field(THST, "4") - field(THVL, "4") - field(FRST, "5") - field(FRVL, "5") - field(FVST, "6") - field(FVVL, "6") - field(SXST, "7") - field(SXVL, "7") - field(SVST, "8") - field(SVVL, "8") - field(PINI, "1") - info(autosaveFields, "DESC ZRSV ONSV VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ExpAutoTarget_RBV") { - alias("S03SIM-EA-FSCN-01:CAM:ExposureAutoTarg_RBV") -} - -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ExpAutoTarget") { - alias("S03SIM-EA-FSCN-01:CAM:ExposureAutoTarg") -} - -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoTarget_RBV") { - alias("S03SIM-EA-FSCN-01:CAM:GainAutoTarget_RBV") -} - -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoTarget") { - alias("S03SIM-EA-FSCN-01:CAM:GainAutoTarget") -} - -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_BalRatioSelector_RBV") { - alias("S03SIM-EA-FSCN-01:CAM:BalanceRatioSele_RBV") -} - -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_BalRatioSelector") { - alias("S03SIM-EA-FSCN-01:CAM:BalanceRatioSele") -} - -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_BalanceRatioAbs_RBV") { - alias("S03SIM-EA-FSCN-01:CAM:BalanceRatioAbs_RBV") -} - -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_BalanceRatioAbs") { - alias("S03SIM-EA-FSCN-01:CAM:BalanceRatioAbs") -} - -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_BalanceWhiteAuto_RBV") { - alias("S03SIM-EA-FSCN-01:CAM:BalanceWhiteAut0_RBV") -} - -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_BalanceWhiteAuto") { - alias("S03SIM-EA-FSCN-01:CAM:BalanceWhiteAut0") -} - -record(ai, "S03SIM-EA-FSCN-01:CAM:ARFramesCompleted") -{ - alias("S03SIM-EA-FSCN-01:CAM:COMPLETED_RBV") -} - -record(ai, "S03SIM-EA-FSCN-01:CAM:ARFrameFailures") -{ - alias("S03SIM-EA-FSCN-01:CAM:FAILURES_RBV") -} - -record(ai, "S03SIM-EA-FSCN-01:CAM:ARFrameUnderruns") -{ - alias("S03SIM-EA-FSCN-01:CAM:UNDERRUNS_RBV") -} - -record(longout, "S03SIM-EA-FSCN-01:CAM:ARResetCamera") -{ - alias("S03SIM-EA-FSCN-01:CAM:RESET") -} - -record(mbbi, "S03SIM-EA-FSCN-01:CAM:ARLeftShift_RBV") { - alias("S03SIM-EA-FSCN-01:CAM:LEFTSHIFT_RBV") -} - -record(mbbo, "S03SIM-EA-FSCN-01:CAM:ARLeftShift") { - alias("S03SIM-EA-FSCN-01:CAM:LEFTSHIFT") -} - -record(bi, "S03SIM-EA-FSCN-01:CAM:ARHWImageMode_RBV") { - alias("S03SIM-EA-FSCN-01:CAM:HWIMAGEMODE_RBV") -} - -record(bo, "S03SIM-EA-FSCN-01:CAM:ARHWImageMode") { - alias("S03SIM-EA-FSCN-01:CAM:HWIMAGEMODE") -} -# Macros: -#% macro, P, Device Prefix -#% macro, R, Device Suffix - - -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ExpAutoTarget_RBV") { - alias("S03SIM-EA-FSCN-02:CAM:ExposureAutoTarg_RBV") -} - -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ExpAutoTarget") { - alias("S03SIM-EA-FSCN-02:CAM:ExposureAutoTarg") -} - -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoTarget_RBV") { - alias("S03SIM-EA-FSCN-02:CAM:GainAutoTarget_RBV") -} - -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoTarget") { - alias("S03SIM-EA-FSCN-02:CAM:GainAutoTarget") -} - -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_BalRatioSelector_RBV") { - alias("S03SIM-EA-FSCN-02:CAM:BalanceRatioSele_RBV") -} - -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_BalRatioSelector") { - alias("S03SIM-EA-FSCN-02:CAM:BalanceRatioSele") -} - -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_BalanceRatioAbs_RBV") { - alias("S03SIM-EA-FSCN-02:CAM:BalanceRatioAbs_RBV") -} - -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_BalanceRatioAbs") { - alias("S03SIM-EA-FSCN-02:CAM:BalanceRatioAbs") -} - -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_BalanceWhiteAuto_RBV") { - alias("S03SIM-EA-FSCN-02:CAM:BalanceWhiteAut0_RBV") -} - -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_BalanceWhiteAuto") { - alias("S03SIM-EA-FSCN-02:CAM:BalanceWhiteAut0") -} - -record(ai, "S03SIM-EA-FSCN-02:CAM:ARFramesCompleted") -{ - alias("S03SIM-EA-FSCN-02:CAM:COMPLETED_RBV") -} - -record(ai, "S03SIM-EA-FSCN-02:CAM:ARFrameFailures") -{ - alias("S03SIM-EA-FSCN-02:CAM:FAILURES_RBV") -} - -record(ai, "S03SIM-EA-FSCN-02:CAM:ARFrameUnderruns") -{ - alias("S03SIM-EA-FSCN-02:CAM:UNDERRUNS_RBV") -} - -record(longout, "S03SIM-EA-FSCN-02:CAM:ARResetCamera") -{ - alias("S03SIM-EA-FSCN-02:CAM:RESET") -} - -record(mbbi, "S03SIM-EA-FSCN-02:CAM:ARLeftShift_RBV") { - alias("S03SIM-EA-FSCN-02:CAM:LEFTSHIFT_RBV") -} - -record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARLeftShift") { - alias("S03SIM-EA-FSCN-02:CAM:LEFTSHIFT") -} - -record(bi, "S03SIM-EA-FSCN-02:CAM:ARHWImageMode_RBV") { - alias("S03SIM-EA-FSCN-02:CAM:HWIMAGEMODE_RBV") -} - -record(bo, "S03SIM-EA-FSCN-02:CAM:ARHWImageMode") { - alias("S03SIM-EA-FSCN-02:CAM:HWIMAGEMODE") -} -# Macros: -#% macro, P, Device Prefix -#% macro, R, Device Suffix - - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_ExpAutoTarget_RBV") { - alias("S03SIM-DI-OAV-01:CAM:ExposureAutoTarg_RBV") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_ExpAutoTarget") { - alias("S03SIM-DI-OAV-01:CAM:ExposureAutoTarg") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_GainAutoTarget_RBV") { - alias("S03SIM-DI-OAV-01:CAM:GainAutoTarget_RBV") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_GainAutoTarget") { - alias("S03SIM-DI-OAV-01:CAM:GainAutoTarget") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_BalRatioSelector_RBV") { - alias("S03SIM-DI-OAV-01:CAM:BalanceRatioSele_RBV") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_BalRatioSelector") { - alias("S03SIM-DI-OAV-01:CAM:BalanceRatioSele") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_BalanceRatioAbs_RBV") { - alias("S03SIM-DI-OAV-01:CAM:BalanceRatioAbs_RBV") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_BalanceRatioAbs") { - alias("S03SIM-DI-OAV-01:CAM:BalanceRatioAbs") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_BalanceWhiteAuto_RBV") { - alias("S03SIM-DI-OAV-01:CAM:BalanceWhiteAut0_RBV") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_BalanceWhiteAuto") { - alias("S03SIM-DI-OAV-01:CAM:BalanceWhiteAut0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:ARFramesCompleted") -{ - alias("S03SIM-DI-OAV-01:CAM:COMPLETED_RBV") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:ARFrameFailures") -{ - alias("S03SIM-DI-OAV-01:CAM:FAILURES_RBV") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:ARFrameUnderruns") -{ - alias("S03SIM-DI-OAV-01:CAM:UNDERRUNS_RBV") -} - -record(longout, "S03SIM-DI-OAV-01:CAM:ARResetCamera") -{ - alias("S03SIM-DI-OAV-01:CAM:RESET") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:ARLeftShift_RBV") { - alias("S03SIM-DI-OAV-01:CAM:LEFTSHIFT_RBV") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:ARLeftShift") { - alias("S03SIM-DI-OAV-01:CAM:LEFTSHIFT") -} - -record(bi, "S03SIM-DI-OAV-01:CAM:ARHWImageMode_RBV") { - alias("S03SIM-DI-OAV-01:CAM:HWIMAGEMODE_RBV") -} - -record(bo, "S03SIM-DI-OAV-01:CAM:ARHWImageMode") { - alias("S03SIM-DI-OAV-01:CAM:HWIMAGEMODE") -} -# Macros: -#% macro, P, Device Prefix -#% macro, R, Device Suffix -#% macro, PORT, Asyn Port name -#% macro, TIMEOUT, Timeout, default=1 -#% macro, ADDR, Asyn Port address, default=0 -#% gui, OAV.CAM, edmtab, ADGenICam.edl, P=S03SIM-DI-OAV-01,R=:CAM:,C=AVT_Manta_G235C - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_FirmwareVerMajor_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_FirmwareVerMajor") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_FirmwareVerMajor") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_FirmwareVerMajor") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_FirmwareVerMinor_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_FirmwareVerMinor") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_FirmwareVerMinor") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_FirmwareVerMinor") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_FirmwareVerBuild_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_FirmwareVerBuild") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_FirmwareVerBuild") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_FirmwareVerBuild") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_SensorType_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_SensorType") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_SensorType") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_SensorType") - field(DOL, "0") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_SensorBits_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_SensorBits") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_SensorBits") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_SensorBits") - field(DISA, "0") -} - -record(stringin, "S03SIM-DI-OAV-01:CAM:GC_DeviceVendorName_RBV") { - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.CAM,0,1)GC_S_DeviceVendorName") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(stringin, "S03SIM-DI-OAV-01:CAM:GC_DeviceModelName_RBV") { - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.CAM,0,1)GC_S_DeviceModelName") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(stringin, "S03SIM-DI-OAV-01:CAM:GC_DevFirVersion_RBV") { - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.CAM,0,1)GC_S_DeviceFirmwareVersion") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(stringin, "S03SIM-DI-OAV-01:CAM:GC_DeviceID_RBV") { - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.CAM,0,1)GC_S_DeviceID") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(stringin, "S03SIM-DI-OAV-01:CAM:GC_DeviceUserID_RBV") { - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.CAM,0,1)GC_S_DeviceUserID") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(stringin, "S03SIM-DI-OAV-01:CAM:GC_DevicePartNumber_RBV") { - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.CAM,0,1)GC_S_DevicePartNumber") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_DeviceScanType_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_DeviceScanType") - field(ZRST, "Areascan") - field(ZRVL, "0") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_DeviceScanType") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_DeviceScanType") - field(DOL, "0") - field(ZRST, "Areascan") - field(ZRVL, "0") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_DevTemSelector_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_DeviceTemperatureSelector") - field(ZRST, "Sensor") - field(ZRVL, "0") - field(ONST, "Main") - field(ONVL, "1") - field(TWST, "Power") - field(TWVL, "2") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_DevTemSelector") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_DeviceTemperatureSelector") - field(DOL, "0") - field(ZRST, "Sensor") - field(ZRVL, "0") - field(ONST, "Main") - field(ONVL, "1") - field(TWST, "Power") - field(TWVL, "2") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_DeviceTemperature_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.CAM,0,1)GC_D_DeviceTemperature") - field(PREC, "3") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_DeviceTemperature") { - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_D_DeviceTemperature") - field(PREC, "3") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_StrBytesPerSecond_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_StreamBytesPerSecond") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_StrBytesPerSecond") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_StreamBytesPerSecond") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_BanControlMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_BandwidthControlMode") - field(ZRST, "StreamBytesPerSe") - field(ZRVL, "0") - field(ONST, "SCPD") - field(ONVL, "1") - field(TWST, "Both") - field(TWVL, "2") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_BanControlMode") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_BandwidthControlMode") - field(DOL, "0") - field(ZRST, "StreamBytesPerSe") - field(ZRVL, "0") - field(ONST, "SCPD") - field(ONVL, "1") - field(TWST, "Both") - field(TWVL, "2") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_GevSCPSPacketSize_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_GevSCPSPacketSize") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_GevSCPSPacketSize") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_GevSCPSPacketSize") - field(DISA, "0") -} - -record(bi, "S03SIM-DI-OAV-01:CAM:GC_ChunkModeActive_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_B_ChunkModeActive") - field(SCAN, "I/O Intr") - field(ZNAM, "No") - field(ONAM, "Yes") - field(DISA, "0") -} - -record(bo, "S03SIM-DI-OAV-01:CAM:GC_ChunkModeActive") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_B_ChunkModeActive") - field(ZNAM, "No") - field(ONAM, "Yes") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_PayloadSize_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_PayloadSize") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_PayloadSize") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_PayloadSize") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_NonImaPayloadSize_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_NonImagePayloadSize") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_NonImaPayloadSize") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_NonImagePayloadSize") - field(DISA, "0") -} - -record(bi, "S03SIM-DI-OAV-01:CAM:GC_StrFraRatCon_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_B_StreamFrameRateConstrain") - field(SCAN, "I/O Intr") - field(ZNAM, "No") - field(ONAM, "Yes") - field(DISA, "0") -} - -record(bo, "S03SIM-DI-OAV-01:CAM:GC_StrFraRatCon") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_B_StreamFrameRateConstrain") - field(ZNAM, "No") - field(ONAM, "Yes") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_StreamHoldEnable_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_StreamHoldEnable") - field(ZRST, "Off") - field(ZRVL, "0") - field(ONST, "On") - field(ONVL, "1") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_StreamHoldEnable") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_StreamHoldEnable") - field(DOL, "0") - field(ZRST, "Off") - field(ZRVL, "0") - field(ONST, "On") - field(ONVL, "1") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_StrHoldCapacity_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_StreamHoldCapacity") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_StrHoldCapacity") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_StreamHoldCapacity") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_GevTimTicFre_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_GevTimestampTickFrequency") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_GevTimTicFre") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_GevTimestampTickFrequency") - field(DISA, "0") -} - -record(longout, "S03SIM-DI-OAV-01:CAM:GC_GevTimConLatch") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_C_GevTimestampControlLatch") - field(DISA, "0") -} - -record(longout, "S03SIM-DI-OAV-01:CAM:GC_GevTimConReset") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_C_GevTimestampControlReset") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_GevTimestampValue_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_GevTimestampValue") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_GevTimestampValue") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_GevTimestampValue") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_PtpMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_PtpMode") - field(ZRST, "Off") - field(ZRVL, "0") - field(ONST, "Slave") - field(ONVL, "1") - field(TWST, "Master") - field(TWVL, "2") - field(THST, "Auto") - field(THVL, "3") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_PtpMode") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_PtpMode") - field(DOL, "0") - field(ZRST, "Off") - field(ZRVL, "0") - field(ONST, "Slave") - field(ONVL, "1") - field(TWST, "Master") - field(TWVL, "2") - field(THST, "Auto") - field(THVL, "3") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_PtpStatus_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_PtpStatus") - field(ZRST, "Initializing") - field(ZRVL, "0") - field(ONST, "Faulty") - field(ONVL, "1") - field(TWST, "Disabled") - field(TWVL, "2") - field(THST, "Listening") - field(THVL, "3") - field(FRST, "PreMaster") - field(FRVL, "4") - field(FVST, "Master") - field(FVVL, "5") - field(SXST, "Passive") - field(SXVL, "6") - field(SVST, "Uncalibrated") - field(SVVL, "7") - field(EIST, "Slave") - field(EIVL, "8") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_PtpStatus") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_PtpStatus") - field(DOL, "0") - field(ZRST, "Initializing") - field(ZRVL, "0") - field(ONST, "Faulty") - field(ONVL, "1") - field(TWST, "Disabled") - field(TWVL, "2") - field(THST, "Listening") - field(THVL, "3") - field(FRST, "PreMaster") - field(FRVL, "4") - field(FVST, "Master") - field(FVVL, "5") - field(SXST, "Passive") - field(SXVL, "6") - field(SVST, "Uncalibrated") - field(SVVL, "7") - field(EIST, "Slave") - field(EIVL, "8") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_PtpAcqGateTime_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_PtpAcquisitionGateTime") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_PtpAcqGateTime") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_PtpAcquisitionGateTime") - field(DISA, "0") -} - -record(longout, "S03SIM-DI-OAV-01:CAM:GC_AcquisitionStart") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_C_AcquisitionStart") - field(DISA, "0") -} - -record(longout, "S03SIM-DI-OAV-01:CAM:GC_AcquisitionStop") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_C_AcquisitionStop") - field(DISA, "0") -} - -record(longout, "S03SIM-DI-OAV-01:CAM:GC_AcquisitionAbort") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_C_AcquisitionAbort") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_AcquisitionMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_AcquisitionMode") - field(ZRST, "Continuous") - field(ZRVL, "1") - field(ONST, "SingleFrame") - field(ONVL, "2") - field(TWST, "MultiFrame") - field(TWVL, "3") - field(THST, "Recorder") - field(THVL, "4") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_AcquisitionMode") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_AcquisitionMode") - field(DOL, "1") - field(ZRST, "Continuous") - field(ZRVL, "1") - field(ONST, "SingleFrame") - field(ONVL, "2") - field(TWST, "MultiFrame") - field(TWVL, "3") - field(THST, "Recorder") - field(THVL, "4") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_AcqFrameCount_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_AcquisitionFrameCount") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_AcqFrameCount") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_AcquisitionFrameCount") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_AcqFrameRateAbs_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.CAM,0,1)GC_D_AcquisitionFrameRateAbs") - field(PREC, "3") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_AcqFrameRateAbs") { - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_D_AcquisitionFrameRateAbs") - field(PREC, "3") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_AcqFrameRateLimit_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.CAM,0,1)GC_D_AcquisitionFrameRateLimit") - field(PREC, "3") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_AcqFrameRateLimit") { - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_D_AcquisitionFrameRateLimit") - field(PREC, "3") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_RecPreEventCount_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_RecorderPreEventCount") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_RecPreEventCount") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_RecorderPreEventCount") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_TriggerSelector_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_TriggerSelector") - field(ZRST, "FrameStart") - field(ZRVL, "0") - field(ONST, "AcquisitionStart") - field(ONVL, "3") - field(TWST, "AcquisitionEnd") - field(TWVL, "4") - field(THST, "AcquisitionRecor") - field(THVL, "6") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_TriggerSelector") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_TriggerSelector") - field(DOL, "0") - field(ZRST, "FrameStart") - field(ZRVL, "0") - field(ONST, "AcquisitionStart") - field(ONVL, "3") - field(TWST, "AcquisitionEnd") - field(TWVL, "4") - field(THST, "AcquisitionRecor") - field(THVL, "6") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_TriggerMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_TriggerMode") - field(ZRST, "Off") - field(ZRVL, "0") - field(ONST, "On") - field(ONVL, "1") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_TriggerMode") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_TriggerMode") - field(DOL, "0") - field(ZRST, "Off") - field(ZRVL, "0") - field(ONST, "On") - field(ONVL, "1") - field(DISA, "0") -} - -record(longout, "S03SIM-DI-OAV-01:CAM:GC_TriggerSoftware") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_C_TriggerSoftware") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_TriggerSource_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_TriggerSource") - field(ZRST, "Freerun") - field(ZRVL, "0") - field(ONST, "Line1") - field(ONVL, "1") - field(TWST, "Line2") - field(TWVL, "2") - field(THST, "Line3") - field(THVL, "3") - field(FRST, "Line4") - field(FRVL, "4") - field(FVST, "FixedRate") - field(FVVL, "5") - field(SXST, "Software") - field(SXVL, "6") - field(SVST, "Action0") - field(SVVL, "7") - field(EIST, "Action1") - field(EIVL, "8") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_TriggerSource") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_TriggerSource") - field(DOL, "0") - field(ZRST, "Freerun") - field(ZRVL, "0") - field(ONST, "Line1") - field(ONVL, "1") - field(TWST, "Line2") - field(TWVL, "2") - field(THST, "Line3") - field(THVL, "3") - field(FRST, "Line4") - field(FRVL, "4") - field(FVST, "FixedRate") - field(FVVL, "5") - field(SXST, "Software") - field(SXVL, "6") - field(SVST, "Action0") - field(SVVL, "7") - field(EIST, "Action1") - field(EIVL, "8") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_TriggerActivation_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_TriggerActivation") - field(ZRST, "RisingEdge") - field(ZRVL, "0") - field(ONST, "FallingEdge") - field(ONVL, "1") - field(TWST, "AnyEdge") - field(TWVL, "2") - field(THST, "LevelHigh") - field(THVL, "3") - field(FRST, "LevelLow") - field(FRVL, "4") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_TriggerActivation") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_TriggerActivation") - field(DOL, "0") - field(ZRST, "RisingEdge") - field(ZRVL, "0") - field(ONST, "FallingEdge") - field(ONVL, "1") - field(TWST, "AnyEdge") - field(TWVL, "2") - field(THST, "LevelHigh") - field(THVL, "3") - field(FRST, "LevelLow") - field(FRVL, "4") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_TriggerOverlap_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_TriggerOverlap") - field(ZRST, "Off") - field(ZRVL, "0") - field(ONST, "ReadOut") - field(ONVL, "1") - field(TWST, "PreviousFrame") - field(TWVL, "2") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_TriggerOverlap") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_TriggerOverlap") - field(DOL, "0") - field(ZRST, "Off") - field(ZRVL, "0") - field(ONST, "ReadOut") - field(ONVL, "1") - field(TWST, "PreviousFrame") - field(TWVL, "2") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_TriggerDelayAbs_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.CAM,0,1)GC_D_TriggerDelayAbs") - field(PREC, "3") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_TriggerDelayAbs") { - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_D_TriggerDelayAbs") - field(PREC, "3") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_SensorWidth_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_SensorWidth") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_SensorWidth") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_SensorWidth") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_SensorHeight_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_SensorHeight") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_SensorHeight") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_SensorHeight") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_SensorTaps_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_SensorTaps") - field(ZRST, "One") - field(ZRVL, "0") - field(ONST, "Two") - field(ONVL, "1") - field(TWST, "Four") - field(TWVL, "3") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_SensorTaps") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_SensorTaps") - field(DOL, "0") - field(ZRST, "One") - field(ZRVL, "0") - field(ONST, "Two") - field(ONVL, "1") - field(TWST, "Four") - field(TWVL, "3") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_SenDigTaps_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_SensorDigitizationTaps") - field(ZRST, "One") - field(ZRVL, "0") - field(ONST, "Two") - field(ONVL, "1") - field(TWST, "Four") - field(TWVL, "3") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_SenDigTaps") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_SensorDigitizationTaps") - field(DOL, "0") - field(ZRST, "One") - field(ZRVL, "0") - field(ONST, "Two") - field(ONVL, "1") - field(TWST, "Four") - field(TWVL, "3") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_BinningHorizontal_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_BinningHorizontal") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_BinningHorizontal") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_BinningHorizontal") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_BinningVertical_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_BinningVertical") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_BinningVertical") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_BinningVertical") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_DecHorizontal_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_DecimationHorizontal") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_DecHorizontal") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_DecimationHorizontal") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_DecVertical_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_DecimationVertical") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_DecVertical") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_DecimationVertical") - field(DISA, "0") -} - -record(bi, "S03SIM-DI-OAV-01:CAM:GC_ReverseX_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_B_ReverseX") - field(SCAN, "I/O Intr") - field(ZNAM, "No") - field(ONAM, "Yes") - field(DISA, "0") -} - -record(bo, "S03SIM-DI-OAV-01:CAM:GC_ReverseX") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_B_ReverseX") - field(ZNAM, "No") - field(ONAM, "Yes") - field(DISA, "0") -} - -record(bi, "S03SIM-DI-OAV-01:CAM:GC_ReverseY_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_B_ReverseY") - field(SCAN, "I/O Intr") - field(ZNAM, "No") - field(ONAM, "Yes") - field(DISA, "0") -} - -record(bo, "S03SIM-DI-OAV-01:CAM:GC_ReverseY") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_B_ReverseY") - field(ZNAM, "No") - field(ONAM, "Yes") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_WidthMax_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_WidthMax") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_WidthMax") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_WidthMax") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_HeightMax_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_HeightMax") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_HeightMax") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_HeightMax") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_PixelFormat_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_PixelFormat") - field(ZRST, "Mono8") - field(ZRVL, "0x01080001") - field(ONST, "Mono10") - field(ONVL, "0x01100003") - field(TWST, "Mono12") - field(TWVL, "0x01100005") - field(THST, "Mono12Packed") - field(THVL, "0x010C0006") - field(FRST, "Mono14") - field(FRVL, "0x01100025") - field(FVST, "BayerGR8") - field(FVVL, "0x01080008") - field(SXST, "BayerRG8") - field(SXVL, "0x01080009") - field(SVST, "BayerGB8") - field(SVVL, "0x0108000A") - field(EIST, "BayerBG8") - field(EIVL, "0x0108000B") - field(NIST, "BayerBG10") - field(NIVL, "0x0110000F") - field(TEST, "BayerGR12") - field(TEVL, "0x01100010") - field(ELST, "BayerRG12") - field(ELVL, "0x01100011") - field(TVST, "BayerGB12") - field(TVVL, "0x01100012") - field(TTST, "BayerGR12Packed") - field(TTVL, "0x010C002A") - field(FTST, "BayerRG12Packed") - field(FTVL, "0x010C002B") - field(FFST, "BayerGB12Packed") - field(FFVL, "0x010C002C") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_PixelFormat") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_PixelFormat") - field(DOL, "0x01080001") - field(ZRST, "Mono8") - field(ZRVL, "0x01080001") - field(ONST, "Mono10") - field(ONVL, "0x01100003") - field(TWST, "Mono12") - field(TWVL, "0x01100005") - field(THST, "Mono12Packed") - field(THVL, "0x010C0006") - field(FRST, "Mono14") - field(FRVL, "0x01100025") - field(FVST, "BayerGR8") - field(FVVL, "0x01080008") - field(SXST, "BayerRG8") - field(SXVL, "0x01080009") - field(SVST, "BayerGB8") - field(SVVL, "0x0108000A") - field(EIST, "BayerBG8") - field(EIVL, "0x0108000B") - field(NIST, "BayerBG10") - field(NIVL, "0x0110000F") - field(TEST, "BayerGR12") - field(TEVL, "0x01100010") - field(ELST, "BayerRG12") - field(ELVL, "0x01100011") - field(TVST, "BayerGB12") - field(TVVL, "0x01100012") - field(TTST, "BayerGR12Packed") - field(TTVL, "0x010C002A") - field(FTST, "BayerRG12Packed") - field(FTVL, "0x010C002B") - field(FFST, "BayerGB12Packed") - field(FFVL, "0x010C002C") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_Width_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_Width") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_Width") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_Width") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_Height_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_Height") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_Height") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_Height") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_OffsetX_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_OffsetX") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_OffsetX") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_OffsetX") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_OffsetY_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_OffsetY") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_OffsetY") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_OffsetY") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_ImageSize_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_ImageSize") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_ImageSize") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ImageSize") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_Gamma_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.CAM,0,1)GC_D_Gamma") - field(PREC, "3") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_Gamma") { - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_D_Gamma") - field(PREC, "3") - field(DISA, "0") -} - -record(bi, "S03SIM-DI-OAV-01:CAM:GC_DefectMaskEnable_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_B_DefectMaskEnable") - field(SCAN, "I/O Intr") - field(ZNAM, "No") - field(ONAM, "Yes") - field(DISA, "0") -} - -record(bo, "S03SIM-DI-OAV-01:CAM:GC_DefectMaskEnable") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_B_DefectMaskEnable") - field(ZNAM, "No") - field(ONAM, "Yes") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_Hue_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.CAM,0,1)GC_D_Hue") - field(PREC, "3") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_Hue") { - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_D_Hue") - field(PREC, "3") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_Saturation_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.CAM,0,1)GC_D_Saturation") - field(PREC, "3") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_Saturation") { - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_D_Saturation") - field(PREC, "3") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_DSPSubregionLeft_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_DSPSubregionLeft") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_DSPSubregionLeft") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_DSPSubregionLeft") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_DSPSubregionTop_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_DSPSubregionTop") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_DSPSubregionTop") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_DSPSubregionTop") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_DSPSubregionRight_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_DSPSubregionRight") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_DSPSubregionRight") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_DSPSubregionRight") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_DSPSubBottom_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_DSPSubregionBottom") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_DSPSubBottom") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_DSPSubregionBottom") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_ExposureAuto_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_ExposureAuto") - field(ZRST, "Off") - field(ZRVL, "1") - field(ONST, "Once") - field(ONVL, "3") - field(TWST, "Continuous") - field(TWVL, "2") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_ExposureAuto") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_ExposureAuto") - field(DOL, "1") - field(ZRST, "Off") - field(ZRVL, "1") - field(ONST, "Once") - field(ONVL, "3") - field(TWST, "Continuous") - field(TWVL, "2") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_ExposureMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_ExposureMode") - field(ZRST, "Timed") - field(ZRVL, "0") - field(ONST, "TriggerWidth") - field(ONVL, "1") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_ExposureMode") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_ExposureMode") - field(DOL, "0") - field(ZRST, "Timed") - field(ZRVL, "0") - field(ONST, "TriggerWidth") - field(ONVL, "1") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_ExposureTimeAbs_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.CAM,0,1)GC_D_ExposureTimeAbs") - field(PREC, "3") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_ExposureTimeAbs") { - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_D_ExposureTimeAbs") - field(PREC, "3") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_ExpTimeIncrement_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.CAM,0,1)GC_D_ExposureTimeIncrement") - field(PREC, "3") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_ExpTimeIncrement") { - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_D_ExposureTimeIncrement") - field(PREC, "3") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_ExpAutoTarget_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoTarget") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_ExpAutoTarget") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoTarget") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_ExposureAutoAlg_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_ExposureAutoAlg") - field(ZRST, "Mean") - field(ZRVL, "0") - field(ONST, "FitRange") - field(ONVL, "1") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_ExposureAutoAlg") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_ExposureAutoAlg") - field(DOL, "0") - field(ZRST, "Mean") - field(ZRVL, "0") - field(ONST, "FitRange") - field(ONVL, "1") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_ExposureAutoMin_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoMin") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_ExposureAutoMin") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoMin") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_ExposureAutoMax_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoMax") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_ExposureAutoMax") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoMax") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_ExposureAutoRate_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoRate") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_ExposureAutoRate") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoRate") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_ExpAutoOutliers_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoOutliers") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_ExpAutoOutliers") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoOutliers") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_ExpAutoAdjustTol_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoAdjustTol") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_ExpAutoAdjustTol") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ExposureAutoAdjustTol") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_GainSelector_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_GainSelector") - field(ZRST, "All") - field(ZRVL, "0") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_GainSelector") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_GainSelector") - field(DOL, "0") - field(ZRST, "All") - field(ZRVL, "0") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_Gain_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.CAM,0,1)GC_D_Gain") - field(PREC, "3") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_Gain") { - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_D_Gain") - field(PREC, "3") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_GainRaw_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_GainRaw") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_GainRaw") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_GainRaw") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_GainAuto_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_GainAuto") - field(ZRST, "Off") - field(ZRVL, "1") - field(ONST, "Once") - field(ONVL, "3") - field(TWST, "Continuous") - field(TWVL, "2") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_GainAuto") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_GainAuto") - field(DOL, "1") - field(ZRST, "Off") - field(ZRVL, "1") - field(ONST, "Once") - field(ONVL, "3") - field(TWST, "Continuous") - field(TWVL, "2") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_GainAutoTarget_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_GainAutoTarget") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_GainAutoTarget") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_GainAutoTarget") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_GainAutoMin_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.CAM,0,1)GC_D_GainAutoMin") - field(PREC, "3") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_GainAutoMin") { - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_D_GainAutoMin") - field(PREC, "3") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_GainAutoMax_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.CAM,0,1)GC_D_GainAutoMax") - field(PREC, "3") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_GainAutoMax") { - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_D_GainAutoMax") - field(PREC, "3") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_GainAutoRate_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_GainAutoRate") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_GainAutoRate") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_GainAutoRate") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_GainAutoOutliers_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_GainAutoOutliers") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_GainAutoOutliers") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_GainAutoOutliers") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_GainAutoAdjustTol_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_GainAutoAdjustTol") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_GainAutoAdjustTol") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_GainAutoAdjustTol") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_BlaLevelSelector_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_BlackLevelSelector") - field(ZRST, "All") - field(ZRVL, "0") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_BlaLevelSelector") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_BlackLevelSelector") - field(DOL, "0") - field(ZRST, "All") - field(ZRVL, "0") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_BlackLevel_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.CAM,0,1)GC_D_BlackLevel") - field(PREC, "3") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_BlackLevel") { - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_D_BlackLevel") - field(PREC, "3") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_BalRatioSelector_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_BalanceRatioSelector") - field(ZRST, "Red") - field(ZRVL, "0") - field(ONST, "Blue") - field(ONVL, "1") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_BalRatioSelector") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_BalanceRatioSelector") - field(DOL, "0") - field(ZRST, "Red") - field(ZRVL, "0") - field(ONST, "Blue") - field(ONVL, "1") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_BalanceRatioAbs_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.CAM,0,1)GC_D_BalanceRatioAbs") - field(PREC, "3") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_BalanceRatioAbs") { - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_D_BalanceRatioAbs") - field(PREC, "3") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_BalanceWhiteAuto_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_BalanceWhiteAuto") - field(ZRST, "Off") - field(ZRVL, "1") - field(ONST, "Once") - field(ONVL, "3") - field(TWST, "Continuous") - field(TWVL, "2") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_BalanceWhiteAuto") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_BalanceWhiteAuto") - field(DOL, "1") - field(ZRST, "Off") - field(ZRVL, "1") - field(ONST, "Once") - field(ONVL, "3") - field(TWST, "Continuous") - field(TWVL, "2") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_BalWhiteAutoRate_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_BalanceWhiteAutoRate") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_BalWhiteAutoRate") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_BalanceWhiteAutoRate") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_BalWhiAutAdjTol_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_BalanceWhiteAutoAdjustTol") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_BalWhiAutAdjTol") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_BalanceWhiteAutoAdjustTol") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_IrisMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_IrisMode") - field(ZRST, "Disabled") - field(ZRVL, "0") - field(ONST, "Video") - field(ONVL, "1") - field(TWST, "VideoOpen") - field(TWVL, "2") - field(THST, "VideoClose") - field(THVL, "3") - field(FRST, "PIrisAuto") - field(FRVL, "4") - field(FVST, "PIrisManual") - field(FVVL, "5") - field(SXST, "DCIris") - field(SXVL, "6") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_IrisMode") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_IrisMode") - field(DOL, "0") - field(ZRST, "Disabled") - field(ZRVL, "0") - field(ONST, "Video") - field(ONVL, "1") - field(TWST, "VideoOpen") - field(TWVL, "2") - field(THST, "VideoClose") - field(THVL, "3") - field(FRST, "PIrisAuto") - field(FRVL, "4") - field(FVST, "PIrisManual") - field(FVVL, "5") - field(SXST, "DCIris") - field(SXVL, "6") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_IrisAutoTarget_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_IrisAutoTarget") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_IrisAutoTarget") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_IrisAutoTarget") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_IrisVideoLevel_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_IrisVideoLevel") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_IrisVideoLevel") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_IrisVideoLevel") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_IrisVideoLevelMin_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_IrisVideoLevelMin") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_IrisVideoLevelMin") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_IrisVideoLevelMin") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_IrisVideoLevelMax_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_IrisVideoLevelMax") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_IrisVideoLevelMax") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_IrisVideoLevelMax") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_LenPIrisFrequency_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_LensPIrisFrequency") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_LenPIrisFrequency") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_LensPIrisFrequency") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_LensPIrisNumSteps_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_LensPIrisNumSteps") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_LensPIrisNumSteps") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_LensPIrisNumSteps") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_LensPIrisPosition_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_LensPIrisPosition") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_LensPIrisPosition") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_LensPIrisPosition") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_LenDCDriStrength_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_LensDCDriveStrength") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_LenDCDriStrength") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_LensDCDriveStrength") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_DefMasColEnable_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_DefectMaskColumnEnable") - field(ZRST, "Disabled") - field(ZRVL, "0") - field(ONST, "Enabled") - field(ONVL, "1") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_DefMasColEnable") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_DefectMaskColumnEnable") - field(DOL, "0") - field(ZRST, "Disabled") - field(ZRVL, "0") - field(ONST, "Enabled") - field(ONVL, "1") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_VsubValue_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_VsubValue") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_VsubValue") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_VsubValue") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_ColTraSelector_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_ColorTransformationSelector") - field(ZRST, "RGBtoRGB") - field(ZRVL, "0") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_ColTraSelector") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_ColorTransformationSelector") - field(DOL, "0") - field(ZRST, "RGBtoRGB") - field(ZRVL, "0") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_ColTraMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_ColorTransformationMode") - field(ZRST, "Off") - field(ZRVL, "0") - field(ONST, "Manual") - field(ONVL, "1") - field(TWST, "Temp6500K") - field(TWVL, "2") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_ColTraMode") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_ColorTransformationMode") - field(DOL, "0") - field(ZRST, "Off") - field(ZRVL, "0") - field(ONST, "Manual") - field(ONVL, "1") - field(TWST, "Temp6500K") - field(TWVL, "2") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_ColTraValSelector_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_ColorTransformationValueSelector") - field(ZRST, "Gain00") - field(ZRVL, "0") - field(ONST, "Gain01") - field(ONVL, "1") - field(TWST, "Gain02") - field(TWVL, "2") - field(THST, "Gain10") - field(THVL, "3") - field(FRST, "Gain11") - field(FRVL, "4") - field(FVST, "Gain12") - field(FVVL, "5") - field(SXST, "Gain20") - field(SXVL, "6") - field(SVST, "Gain21") - field(SVVL, "7") - field(EIST, "Gain22") - field(EIVL, "8") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_ColTraValSelector") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_ColorTransformationValueSelector") - field(DOL, "0") - field(ZRST, "Gain00") - field(ZRVL, "0") - field(ONST, "Gain01") - field(ONVL, "1") - field(TWST, "Gain02") - field(TWVL, "2") - field(THST, "Gain10") - field(THVL, "3") - field(FRST, "Gain11") - field(FRVL, "4") - field(FVST, "Gain12") - field(FVVL, "5") - field(SXST, "Gain20") - field(SXVL, "6") - field(SVST, "Gain21") - field(SVVL, "7") - field(EIST, "Gain22") - field(EIVL, "8") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_ColTraValue_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.CAM,0,1)GC_D_ColorTransformationValue") - field(PREC, "3") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_ColTraValue") { - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_D_ColorTransformationValue") - field(PREC, "3") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_LUTSelector_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_LUTSelector") - field(ZRST, "LUT1") - field(ZRVL, "0") - field(ONST, "LUT2") - field(ONVL, "1") - field(TWST, "LUT3") - field(TWVL, "2") - field(THST, "LUT4") - field(THVL, "3") - field(FRST, "LUT5") - field(FRVL, "4") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_LUTSelector") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_LUTSelector") - field(DOL, "0") - field(ZRST, "LUT1") - field(ZRVL, "0") - field(ONST, "LUT2") - field(ONVL, "1") - field(TWST, "LUT3") - field(TWVL, "2") - field(THST, "LUT4") - field(THVL, "3") - field(FRST, "LUT5") - field(FRVL, "4") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_LUTMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_LUTMode") - field(ZRST, "Luminance") - field(ZRVL, "0") - field(ONST, "Red") - field(ONVL, "1") - field(TWST, "Green") - field(TWVL, "2") - field(THST, "Blue") - field(THVL, "3") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_LUTMode") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_LUTMode") - field(DOL, "0") - field(ZRST, "Luminance") - field(ZRVL, "0") - field(ONST, "Red") - field(ONVL, "1") - field(TWST, "Green") - field(TWVL, "2") - field(THST, "Blue") - field(THVL, "3") - field(DISA, "0") -} - -record(bi, "S03SIM-DI-OAV-01:CAM:GC_LUTEnable_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_B_LUTEnable") - field(SCAN, "I/O Intr") - field(ZNAM, "No") - field(ONAM, "Yes") - field(DISA, "0") -} - -record(bo, "S03SIM-DI-OAV-01:CAM:GC_LUTEnable") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_B_LUTEnable") - field(ZNAM, "No") - field(ONAM, "Yes") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_LUTIndex_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_LUTIndex") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_LUTIndex") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_LUTIndex") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_LUTValue_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_LUTValue") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_LUTValue") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_LUTValue") - field(DISA, "0") -} - -record(longout, "S03SIM-DI-OAV-01:CAM:GC_LUTLoadAll") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_C_LUTLoadAll") - field(DISA, "0") -} - -record(longout, "S03SIM-DI-OAV-01:CAM:GC_LUTSaveAll") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_C_LUTSaveAll") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_LUTBitDepthIn_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_LUTBitDepthIn") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_LUTBitDepthIn") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_LUTBitDepthIn") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_LUTBitDepthOut_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_LUTBitDepthOut") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_LUTBitDepthOut") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_LUTBitDepthOut") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_LUTAddress_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_LUTAddress") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_LUTAddress") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_LUTAddress") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_LUTSizeBytes_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_LUTSizeBytes") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_LUTSizeBytes") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_LUTSizeBytes") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_SyncInLevels_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_SyncInLevels") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_SyncInLevels") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_SyncInLevels") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_SyncInSelector_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_SyncInSelector") - field(ZRST, "SyncIn1") - field(ZRVL, "0") - field(ONST, "SyncIn2") - field(ONVL, "1") - field(TWST, "SyncIn3") - field(TWVL, "2") - field(THST, "SyncIn4") - field(THVL, "3") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_SyncInSelector") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_SyncInSelector") - field(DOL, "0") - field(ZRST, "SyncIn1") - field(ZRVL, "0") - field(ONST, "SyncIn2") - field(ONVL, "1") - field(TWST, "SyncIn3") - field(TWVL, "2") - field(THST, "SyncIn4") - field(THVL, "3") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_SynInGlitchFilter_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_SyncInGlitchFilter") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_SynInGlitchFilter") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_SyncInGlitchFilter") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_SyncOutLevels_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_SyncOutLevels") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_SyncOutLevels") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_SyncOutLevels") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_SyncOutSelector_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_SyncOutSelector") - field(ZRST, "SyncOut1") - field(ZRVL, "0") - field(ONST, "SyncOut2") - field(ONVL, "1") - field(TWST, "SyncOut3") - field(TWVL, "2") - field(THST, "SyncOut4") - field(THVL, "3") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_SyncOutSelector") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_SyncOutSelector") - field(DOL, "0") - field(ZRST, "SyncOut1") - field(ZRVL, "0") - field(ONST, "SyncOut2") - field(ONVL, "1") - field(TWST, "SyncOut3") - field(TWVL, "2") - field(THST, "SyncOut4") - field(THVL, "3") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_SyncOutSource_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_SyncOutSource") - field(ZRST, "GPO") - field(ZRVL, "0") - field(ONST, "AcquisitionTrigg") - field(ONVL, "1") - field(TWST, "FrameTriggerRead") - field(TWVL, "2") - field(THST, "Exposing") - field(THVL, "4") - field(FRST, "FrameReadout") - field(FRVL, "5") - field(FVST, "Imaging") - field(FVVL, "6") - field(SXST, "Acquiring") - field(SXVL, "7") - field(SVST, "LineIn1") - field(SVVL, "8") - field(EIST, "LineIn2") - field(EIVL, "9") - field(NIST, "Strobe1") - field(NIVL, "12") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_SyncOutSource") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_SyncOutSource") - field(DOL, "0") - field(ZRST, "GPO") - field(ZRVL, "0") - field(ONST, "AcquisitionTrigg") - field(ONVL, "1") - field(TWST, "FrameTriggerRead") - field(TWVL, "2") - field(THST, "Exposing") - field(THVL, "4") - field(FRST, "FrameReadout") - field(FRVL, "5") - field(FVST, "Imaging") - field(FVVL, "6") - field(SXST, "Acquiring") - field(SXVL, "7") - field(SVST, "LineIn1") - field(SVVL, "8") - field(EIST, "LineIn2") - field(EIVL, "9") - field(NIST, "Strobe1") - field(NIVL, "12") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_SyncOutPolarity_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_SyncOutPolarity") - field(ZRST, "Normal") - field(ZRVL, "0") - field(ONST, "Invert") - field(ONVL, "1") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_SyncOutPolarity") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_SyncOutPolarity") - field(DOL, "0") - field(ZRST, "Normal") - field(ZRVL, "0") - field(ONST, "Invert") - field(ONVL, "1") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_StrobeSource_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_StrobeSource") - field(ZRST, "AcquisitionTrigg") - field(ZRVL, "1") - field(ONST, "FrameTriggerRead") - field(ONVL, "2") - field(TWST, "FrameTrigger") - field(TWVL, "3") - field(THST, "Exposing") - field(THVL, "4") - field(FRST, "FrameReadout") - field(FRVL, "5") - field(FVST, "Acquiring") - field(FVVL, "7") - field(SXST, "LineIn1") - field(SXVL, "8") - field(SVST, "LineIn2") - field(SVVL, "9") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_StrobeSource") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_StrobeSource") - field(DOL, "1") - field(ZRST, "AcquisitionTrigg") - field(ZRVL, "1") - field(ONST, "FrameTriggerRead") - field(ONVL, "2") - field(TWST, "FrameTrigger") - field(TWVL, "3") - field(THST, "Exposing") - field(THVL, "4") - field(FRST, "FrameReadout") - field(FRVL, "5") - field(FVST, "Acquiring") - field(FVVL, "7") - field(SXST, "LineIn1") - field(SXVL, "8") - field(SVST, "LineIn2") - field(SVVL, "9") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_StrDurationMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_StrobeDurationMode") - field(ZRST, "Source") - field(ZRVL, "0") - field(ONST, "Controlled") - field(ONVL, "1") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_StrDurationMode") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_StrobeDurationMode") - field(DOL, "0") - field(ZRST, "Source") - field(ZRVL, "0") - field(ONST, "Controlled") - field(ONVL, "1") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_StrobeDelay_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_StrobeDelay") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_StrobeDelay") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_StrobeDelay") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_StrobeDuration_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_StrobeDuration") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_StrobeDuration") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_StrobeDuration") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_EventSelector_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_EventSelector") - field(ZRST, "AcquisitionStart") - field(ZRVL, "40000") - field(ONST, "AcquisitionEnd") - field(ONVL, "40001") - field(TWST, "FrameTrigger") - field(TWVL, "40002") - field(THST, "ExposureEnd") - field(THVL, "40003") - field(FRST, "AcquisitionRecor") - field(FRVL, "40004") - field(FVST, "PtpSyncLost") - field(FVVL, "40005") - field(SXST, "PtpSyncLocked") - field(SXVL, "40006") - field(SVST, "Line1RisingEdge") - field(SVVL, "40010") - field(EIST, "Line1FallingEdge") - field(EIVL, "40011") - field(NIST, "Line2RisingEdge") - field(NIVL, "40012") - field(TEST, "Line2FallingEdge") - field(TEVL, "40013") - field(ELST, "Line3RisingEdge") - field(ELVL, "40014") - field(TVST, "Line3FallingEdge") - field(TVVL, "40015") - field(TTST, "Line4RisingEdge") - field(TTVL, "40016") - field(FTST, "Line4FallingEdge") - field(FTVL, "40017") - field(FFST, "FrameTriggerRead") - field(FFVL, "40018") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_EventSelector") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_EventSelector") - field(DOL, "40000") - field(ZRST, "AcquisitionStart") - field(ZRVL, "40000") - field(ONST, "AcquisitionEnd") - field(ONVL, "40001") - field(TWST, "FrameTrigger") - field(TWVL, "40002") - field(THST, "ExposureEnd") - field(THVL, "40003") - field(FRST, "AcquisitionRecor") - field(FRVL, "40004") - field(FVST, "PtpSyncLost") - field(FVVL, "40005") - field(SXST, "PtpSyncLocked") - field(SXVL, "40006") - field(SVST, "Line1RisingEdge") - field(SVVL, "40010") - field(EIST, "Line1FallingEdge") - field(EIVL, "40011") - field(NIST, "Line2RisingEdge") - field(NIVL, "40012") - field(TEST, "Line2FallingEdge") - field(TEVL, "40013") - field(ELST, "Line3RisingEdge") - field(ELVL, "40014") - field(TVST, "Line3FallingEdge") - field(TVVL, "40015") - field(TTST, "Line4RisingEdge") - field(TTVL, "40016") - field(FTST, "Line4FallingEdge") - field(FTVL, "40017") - field(FFST, "FrameTriggerRead") - field(FFVL, "40018") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_EventNotification_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_EventNotification") - field(ZRST, "Off") - field(ZRVL, "0") - field(ONST, "On") - field(ONVL, "1") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_EventNotification") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_EventNotification") - field(DOL, "0") - field(ZRST, "Off") - field(ZRVL, "0") - field(ONST, "On") - field(ONVL, "1") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_EventsEnable1_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventsEnable1") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_EventsEnable1") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventsEnable1") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_EveAcqStart_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventAcquisitionStart") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_EveAcqStart") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventAcquisitionStart") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_EveAcquisitionEnd_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventAcquisitionEnd") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_EveAcquisitionEnd") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventAcquisitionEnd") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_EventFrameTrigger_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventFrameTrigger") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_EventFrameTrigger") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventFrameTrigger") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_EventExposureEnd_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventExposureEnd") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_EventExposureEnd") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventExposureEnd") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_EveAcqRecTrigger_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventAcquisitionRecordTrigger") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_EveAcqRecTrigger") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventAcquisitionRecordTrigger") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_EveLinRisingEdge_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventLine1RisingEdge") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_EveLinRisingEdge") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventLine1RisingEdge") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_EveLinFallingEdge_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventLine1FallingEdge") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_EveLinFallingEdge") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventLine1FallingEdge") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_EveLinRisingEdg0_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventLine2RisingEdge") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_EveLinRisingEdg0") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventLine2RisingEdge") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_EveLinFallingEdg0_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventLine2FallingEdge") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_EveLinFallingEdg0") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventLine2FallingEdge") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_EveFraTriReady_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventFrameTriggerReady") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_EveFraTriReady") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventFrameTriggerReady") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_EveExposureStart_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventExposureStart") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_EveExposureStart") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventExposureStart") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_EventAction0_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventAction0") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_EventAction0") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventAction0") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_EventAction1_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventAction1") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_EventAction1") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventAction1") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_EventPtpSyncLost_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventPtpSyncLost") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_EventPtpSyncLost") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventPtpSyncLost") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_EvePtpSyncLocked_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventPtpSyncLocked") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_EvePtpSyncLocked") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventPtpSyncLocked") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_EventOverflow_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventOverflow") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_EventOverflow") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventOverflow") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_EventError_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_EventError") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_EventError") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_EventError") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_UserSetSelector_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_UserSetSelector") - field(ZRST, "Default") - field(ZRVL, "0") - field(ONST, "UserSet1") - field(ONVL, "1") - field(TWST, "UserSet2") - field(TWVL, "2") - field(THST, "UserSet3") - field(THVL, "3") - field(FRST, "UserSet4") - field(FRVL, "4") - field(FVST, "UserSet5") - field(FVVL, "5") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_UserSetSelector") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_UserSetSelector") - field(DOL, "0") - field(ZRST, "Default") - field(ZRVL, "0") - field(ONST, "UserSet1") - field(ONVL, "1") - field(TWST, "UserSet2") - field(TWVL, "2") - field(THST, "UserSet3") - field(THVL, "3") - field(FRST, "UserSet4") - field(FRVL, "4") - field(FVST, "UserSet5") - field(FVVL, "5") - field(DISA, "0") -} - -record(longout, "S03SIM-DI-OAV-01:CAM:GC_UserSetLoad") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_C_UserSetLoad") - field(DISA, "0") -} - -record(longout, "S03SIM-DI-OAV-01:CAM:GC_UserSetSave") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_C_UserSetSave") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_UseSetDefSelector_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_UserSetDefaultSelector") - field(ZRST, "Default") - field(ZRVL, "0") - field(ONST, "UserSet1") - field(ONVL, "1") - field(TWST, "UserSet2") - field(TWVL, "2") - field(THST, "UserSet3") - field(THVL, "3") - field(FRST, "UserSet4") - field(FRVL, "4") - field(FVST, "UserSet5") - field(FVVL, "5") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_UseSetDefSelector") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_UserSetDefaultSelector") - field(DOL, "0") - field(ZRST, "Default") - field(ZRVL, "0") - field(ONST, "UserSet1") - field(ONVL, "1") - field(TWST, "UserSet2") - field(TWVL, "2") - field(THST, "UserSet3") - field(THVL, "3") - field(FRST, "UserSet4") - field(FRVL, "4") - field(FVST, "UserSet5") - field(FVVL, "5") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_ActUncMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_ActionUnconditionalMode") - field(ZRST, "Off") - field(ZRVL, "0") - field(ONST, "On") - field(ONVL, "1") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_ActUncMode") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_ActionUnconditionalMode") - field(DOL, "0") - field(ZRST, "Off") - field(ZRVL, "0") - field(ONST, "On") - field(ONVL, "1") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_ActionDeviceKey_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_ActionDeviceKey") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_ActionDeviceKey") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ActionDeviceKey") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_ActionQueueSize_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_ActionQueueSize") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_ActionQueueSize") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ActionQueueSize") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_ActionSelector_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_ActionSelector") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_ActionSelector") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ActionSelector") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_ActionGroupMask_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_ActionGroupMask") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_ActionGroupMask") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ActionGroupMask") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_ActionGroupKey_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_ActionGroupKey") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_ActionGroupKey") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ActionGroupKey") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_PvDumTriSelector_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_PvDummyTriggerSelector") - field(ZRST, "FrameStart") - field(ZRVL, "0") - field(ONST, "AcquisitionStart") - field(ONVL, "3") - field(TWST, "AcquisitionEnd") - field(TWVL, "4") - field(THST, "AcquisitionRecor") - field(THVL, "6") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_PvDumTriSelector") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_PvDummyTriggerSelector") - field(DOL, "0") - field(ZRST, "FrameStart") - field(ZRVL, "0") - field(ONST, "AcquisitionStart") - field(ONVL, "3") - field(TWST, "AcquisitionEnd") - field(TWVL, "4") - field(THST, "AcquisitionRecor") - field(THVL, "6") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_PvDumFraStaTriMod_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_PvDummyFrameStartTriggerMode") - field(ZRST, "Freerun") - field(ZRVL, "2147483648") - field(ONST, "SyncIn1") - field(ONVL, "2147483649") - field(TWST, "SyncIn2") - field(TWVL, "2147483650") - field(THST, "SyncIn3") - field(THVL, "2147483651") - field(FRST, "SyncIn4") - field(FRVL, "2147483652") - field(FVST, "FixedRate") - field(FVVL, "2147483653") - field(SXST, "Software") - field(SXVL, "2147483654") - field(SVST, "Action0") - field(SVVL, "2147483655") - field(EIST, "Action1") - field(EIVL, "2147483656") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_PvDumFraStaTriMod") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_PvDummyFrameStartTriggerMode") - field(DOL, "2147483648") - field(ZRST, "Freerun") - field(ZRVL, "2147483648") - field(ONST, "SyncIn1") - field(ONVL, "2147483649") - field(TWST, "SyncIn2") - field(TWVL, "2147483650") - field(THST, "SyncIn3") - field(THVL, "2147483651") - field(FRST, "SyncIn4") - field(FRVL, "2147483652") - field(FVST, "FixedRate") - field(FVVL, "2147483653") - field(SXST, "Software") - field(SXVL, "2147483654") - field(SVST, "Action0") - field(SVVL, "2147483655") - field(EIST, "Action1") - field(EIVL, "2147483656") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_PvDumTriggerMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_PvDummyTriggerMode") - field(ZRST, "Disabled") - field(ZRVL, "0") - field(ONST, "SyncIn1") - field(ONVL, "2147483649") - field(TWST, "SyncIn2") - field(TWVL, "2147483650") - field(THST, "SyncIn3") - field(THVL, "2147483651") - field(FRST, "SyncIn4") - field(FRVL, "2147483652") - field(FVST, "FixedRate") - field(FVVL, "2147483653") - field(SXST, "Software") - field(SXVL, "2147483654") - field(SVST, "Action0") - field(SVVL, "2147483655") - field(EIST, "Action1") - field(EIVL, "2147483656") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_PvDumTriggerMode") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_PvDummyTriggerMode") - field(DOL, "0") - field(ZRST, "Disabled") - field(ZRVL, "0") - field(ONST, "SyncIn1") - field(ONVL, "2147483649") - field(TWST, "SyncIn2") - field(TWVL, "2147483650") - field(THST, "SyncIn3") - field(THVL, "2147483651") - field(FRST, "SyncIn4") - field(FRVL, "2147483652") - field(FVST, "FixedRate") - field(FVVL, "2147483653") - field(SXST, "Software") - field(SXVL, "2147483654") - field(SVST, "Action0") - field(SVVL, "2147483655") - field(EIST, "Action1") - field(EIVL, "2147483656") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_FraStaTriDelay_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_FrameStartTriggerDelay") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_FraStaTriDelay") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_FrameStartTriggerDelay") - field(DISA, "0") -} - -record(mbbi, "S03SIM-DI-OAV-01:CAM:GC_ExposureModeValue_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)GC_E_ExposureModeValue") - field(ZRST, "Timed") - field(ZRVL, "1") - field(ONST, "AutoOnce") - field(ONVL, "3") - field(TWST, "Auto") - field(TWVL, "2") - field(THST, "TriggerWidth") - field(THVL, "5") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:CAM:GC_ExposureModeValue") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.CAM,0,1)GC_E_ExposureModeValue") - field(DOL, "1") - field(ZRST, "Timed") - field(ZRVL, "1") - field(ONST, "AutoOnce") - field(ONVL, "3") - field(TWST, "Auto") - field(TWVL, "2") - field(THST, "TriggerWidth") - field(THVL, "5") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_ExposureValue_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_ExposureValue") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_ExposureValue") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_ExposureValue") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_TimeStampValueLo_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_TimeStampValueLo") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_TimeStampValueLo") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_TimeStampValueLo") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_TimeStampValueHi_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_TimeStampValueHi") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_TimeStampValueHi") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_TimeStampValueHi") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_WhitebalValueRed_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_WhitebalValueRed") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_WhitebalValueRed") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_WhitebalValueRed") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_WhitebalValueBlue_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_WhitebalValueBlue") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_WhitebalValueBlue") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_WhitebalValueBlue") - field(DISA, "0") -} - -record(stringin, "S03SIM-DI-OAV-01:CAM:GC_ModelName_RBV") { - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.CAM,0,1)GC_S_ModelName") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_PvGainRaw_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_PvGainRaw") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_PvGainRaw") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_PvGainRaw") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_PvGainAutoMin_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_PvGainAutoMin") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_PvGainAutoMin") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_PvGainAutoMin") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_PvGainAutoMax_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_PvGainAutoMax") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_PvGainAutoMax") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_PvGainAutoMax") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_OffsetValue_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_OffsetValue") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_OffsetValue") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_OffsetValue") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_PtpAcqGateTimeHi_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_PtpAcquisitionGateTimeHi") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_PtpAcqGateTimeHi") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_PtpAcquisitionGateTimeHi") - field(DISA, "0") -} - -record(ai, "S03SIM-DI-OAV-01:CAM:GC_PtpAcqGateTimeLo_RBV") { - field(DTYP, "asynInt64") - field(INP, "@asyn(OAV.CAM,0,1)GC_I_PtpAcquisitionGateTimeLo") - field(SCAN, "I/O Intr") - field(DISA, "0") -} - -record(ao, "S03SIM-DI-OAV-01:CAM:GC_PtpAcqGateTimeLo") { - field(DTYP, "asynInt64") - field(OUT, "@asyn(OAV.CAM,0,1)GC_I_PtpAcquisitionGateTimeLo") - field(DISA, "0") -} - -#=================================================================# -# Template file: NDROI.template -# Database for ND ROIs -# Mark Rivers -# April 22, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, OAV.roi, edmtab, NDROI.edl, P=S03SIM-DI-OAV-01,R=:ROI: - -# This associates a BOY screen with the template -# % gui, OAV.roi, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-DI-OAV-01, R=:ROI:, DESC=Region of Interest -# % gui, OAV.roi, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-DI-OAV-01, R=:ROI:, DESC=Region of Interest -# % gui, OAV.roi, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-DI-OAV-01, R=:ROI:, DESC=Region of Interest - -# % gui, OAV.roi, groupHeading, Info -# % gui, OAV.roi, readback, Port name, S03SIM-DI-OAV-01:ROI:PortName_RBV -# % gui, OAV.roi, readback, Plugin type, S03SIM-DI-OAV-01:ROI:PluginType_RBV -# Input -# % gui, OAV.roi, demandString, Input, S03SIM-DI-OAV-01:ROI:NDArrayPort -# % gui, OAV.roi, readback, Input, S03SIM-DI-OAV-01:ROI:NDArrayPort_RBV - -# % gui, OAV.roi, groupHeading, Callback -# % gui, OAV.roi, enum, Callbacks, S03SIM-DI-OAV-01:ROI:EnableCallbacks -# % gui, OAV.roi, statusbits, Callbacks, S03SIM-DI-OAV-01:ROI:EnableCallbacks_RBV -# % gui, OAV.roi, demand, Min Callback Time, S03SIM-DI-OAV-01:ROI:MinCallbackTime -# % gui, OAV.roi, readback, Min Callback Time, S03SIM-DI-OAV-01:ROI:MinCallbackTime_RBV -# % gui, OAV.roi, enum, Block Callbacks, S03SIM-DI-OAV-01:ROI:BlockingCallbacks -# % gui, OAV.roi, statusbits, Block Callbacks, S03SIM-DI-OAV-01:ROI:BlockingCallbacks_RBV - -# % gui, OAV.roi, groupHeading, Counters -# % gui, OAV.roi, demand, Array Counter, S03SIM-DI-OAV-01:ROI:ArrayCounter -# % gui, OAV.roi, readback, Array Counter, S03SIM-DI-OAV-01:ROI:ArrayCounter_RBV -# % gui, OAV.roi, readback, Array Rate (fps), S03SIM-DI-OAV-01:ROI:ArrayRate_RBV -# % gui, OAV.roi, readback, Queue Use, S03SIM-DI-OAV-01:ROI:QueueUse -# % gui, OAV.roi, readback, Queue Size, S03SIM-DI-OAV-01:ROI:QueueSize -# % gui, OAV.roi, demand, Dropped Arrays, S03SIM-DI-OAV-01:ROI:DroppedArrays -# % gui, OAV.roi, readback, Dropped Arrays, S03SIM-DI-OAV-01:ROI:DroppedArrays_RBV - -# % gui, OAV.roi, groupHeading, Array Settings -# % gui, OAV.roi, readback, Num Dimensions, S03SIM-DI-OAV-01:ROI:NDimensions_RBV -# % gui, OAV.roi, readback, Dim 0 Size, S03SIM-DI-OAV-01:ROI:ArraySize0_RBV -# % gui, OAV.roi, readback, Dim 1 Size, S03SIM-DI-OAV-01:ROI:ArraySize1_RBV -# % gui, OAV.roi, readback, Dim 2 Size, S03SIM-DI-OAV-01:ROI:ArraySize2_RBV -# % gui, OAV.roi, readback, Input Data Type, S03SIM-DI-OAV-01:ROI:DataType_RBV -# % gui, OAV.roi, readback, Colour Mode, S03SIM-DI-OAV-01:ROI:ColorMode_RBV -# % gui, OAV.roi, readback, Bayer Pattern, S03SIM-DI-OAV-01:ROI:BayerPattern_RBV -# % gui, OAV.roi, readback, Unique id, S03SIM-DI-OAV-01:ROI:UniqueId_RBV -# % gui, OAV.roi, readback, Timestamp, S03SIM-DI-OAV-01:ROI:TimeStamp_RBV - -# Output -# % gui, OAV.roi, groupHeading, Output -# % gui, OAV.roi, demand, Name, S03SIM-DI-OAV-01:ROI:Name -# % gui, OAV.roi, enum, Out data type, S03SIM-DI-OAV-01:ROI:DataTypeOut -# % gui, OAV.roi, readback, Out data type, S03SIM-DI-OAV-01:ROI:DataTypeOut_RBV -# % gui, OAV.roi, demand, Attributes file, S03SIM-DI-OAV-01:ROI:NDAttributesFile -# Scaling -# % gui, OAV.roi, groupHeading, Scaling -# % gui, OAV.roi, enum, Enable Scaling, S03SIM-DI-OAV-01:ROI:EnableScale -# % gui, OAV.roi, readback, Enable Scaling, S03SIM-DI-OAV-01:ROI:EnableScale_RBV -# % gui, OAV.roi, demand, Scale Divisor, S03SIM-DI-OAV-01:ROI:Scale -# % gui, OAV.roi, readback, Scale Divisor, S03SIM-DI-OAV-01:ROI:Scale_RBV -# X region -# % gui, OAV.roi, groupHeading, X Region -# % gui, OAV.roi, enum, X, S03SIM-DI-OAV-01:ROI:EnableX -# % gui, OAV.roi, readback, X, S03SIM-DI-OAV-01:ROI:EnableX_RBV -# % gui, OAV.roi, enum, Autosize X, S03SIM-DI-OAV-01:ROI:AutoSizeX -# % gui, OAV.roi, readback, Autosize X, S03SIM-DI-OAV-01:ROI:AutoSizeX_RBV -# % gui, OAV.roi, readback, Input Size X, S03SIM-DI-OAV-01:ROI:MaxSizeX_RBV -# % gui, OAV.roi, demand, Binning X, S03SIM-DI-OAV-01:ROI:BinX -# % gui, OAV.roi, readback, Binning X, S03SIM-DI-OAV-01:ROI:BinX_RBV -# % gui, OAV.roi, demand, Start X, S03SIM-DI-OAV-01:ROI:MinX -# % gui, OAV.roi, readback, Start X, S03SIM-DI-OAV-01:ROI:MinX_RBV -# % gui, OAV.roi, demand, Size X, S03SIM-DI-OAV-01:ROI:SizeX -# % gui, OAV.roi, readback, Size X, S03SIM-DI-OAV-01:ROI:SizeX_RBV -# % gui, OAV.roi, enum, Reverse X, S03SIM-DI-OAV-01:ROI:ReverseX -# % gui, OAV.roi, readback, Reverse X, S03SIM-DI-OAV-01:ROI:ReverseX_RBV -# % gui, OAV.roi, readback, Bytes X, S03SIM-DI-OAV-01:ROI:ArraySizeX_RBV -# Y region -# % gui, OAV.roi, groupHeading, Y Region -# % gui, OAV.roi, enum, Y, S03SIM-DI-OAV-01:ROI:EnableY -# % gui, OAV.roi, readback, Y, S03SIM-DI-OAV-01:ROI:EnableY_RBV -# % gui, OAV.roi, enum, Autosize Y, S03SIM-DI-OAV-01:ROI:AutoSizeY -# % gui, OAV.roi, readback, Autosize Y, S03SIM-DI-OAV-01:ROI:AutoSizeY_RBV -# % gui, OAV.roi, readback, Input size Y, S03SIM-DI-OAV-01:ROI:MaxSizeY_RBV -# % gui, OAV.roi, demand, Binning Y, S03SIM-DI-OAV-01:ROI:BinY -# % gui, OAV.roi, readback, Binning Y, S03SIM-DI-OAV-01:ROI:BinY_RBV -# % gui, OAV.roi, demand, Start Y, S03SIM-DI-OAV-01:ROI:MinY -# % gui, OAV.roi, readback, Start Y, S03SIM-DI-OAV-01:ROI:MinY_RBV -# % gui, OAV.roi, demand, Size Y, S03SIM-DI-OAV-01:ROI:SizeY -# % gui, OAV.roi, readback, Size Y, S03SIM-DI-OAV-01:ROI:SizeY_RBV -# % gui, OAV.roi, enum, Reverse Y, S03SIM-DI-OAV-01:ROI:ReverseY -# % gui, OAV.roi, readback, Reverse Y, S03SIM-DI-OAV-01:ROI:ReverseY_RBV -# % gui, OAV.roi, readback, Bytes Y, S03SIM-DI-OAV-01:ROI:ArraySizeY_RBV -# Z region -# % gui, OAV.roi, groupHeading, Z Region -# % gui, OAV.roi, enum, Z, S03SIM-DI-OAV-01:ROI:EnableZ -# % gui, OAV.roi, readback, Z, S03SIM-DI-OAV-01:ROI:EnableZ_RBV -# % gui, OAV.roi, enum, Autosize Z, S03SIM-DI-OAV-01:ROI:AutoSizeZ -# % gui, OAV.roi, readback, Autosize Z, S03SIM-DI-OAV-01:ROI:AutoSizeZ_RBV -# % gui, OAV.roi, readback, Input size Z, S03SIM-DI-OAV-01:ROI:MaxSizeZ_RBV -# % gui, OAV.roi, demand, Binning Z, S03SIM-DI-OAV-01:ROI:BinZ -# % gui, OAV.roi, readback, Binning Z, S03SIM-DI-OAV-01:ROI:BinZ_RBV -# % gui, OAV.roi, demand, Start Z, S03SIM-DI-OAV-01:ROI:MinZ -# % gui, OAV.roi, readback, Start Z, S03SIM-DI-OAV-01:ROI:MinZ_RBV -# % gui, OAV.roi, demand, Size Z, S03SIM-DI-OAV-01:ROI:SizeZ -# % gui, OAV.roi, readback, Size Z, S03SIM-DI-OAV-01:ROI:SizeZ_RBV -# % gui, OAV.roi, enum, Reverse Z, S03SIM-DI-OAV-01:ROI:ReverseZ -# % gui, OAV.roi, readback, Reverse Z, S03SIM-DI-OAV-01:ROI:ReverseZ_RBV -# % gui, OAV.roi, readback, Bytes Z, S03SIM-DI-OAV-01:ROI:ArraySizeZ_RBV -# Memory -# % gui, OAV.roi, groupHeading, Memory -# % gui, OAV.roi, readback, Max memory, S03SIM-DI-OAV-01:ROI:PoolMaxMem -# % gui, OAV.roi, readback, Max buffers, S03SIM-DI-OAV-01:ROI:PoolMaxBuffers -# % gui, OAV.roi, readback, Used memory, S03SIM-DI-OAV-01:ROI:PoolUsedMem -# % gui, OAV.roi, readback, Allocated buffers, S03SIM-DI-OAV-01:ROI:PoolAllocBuffers -# % gui, OAV.roi, readback, Free buffers, S03SIM-DI-OAV-01:ROI:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.roi,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.roi,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.roi,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.roi,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.roi,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.roi,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.roi,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.roi,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ROI:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:ROI:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:ROI:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:ROI:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:ROI:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:ROI:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:ROI:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:ROI:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:ROI:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:ROI:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:ROI:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.roi,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.roi,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:ROI:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:ROI:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:ROI:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.roi,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ROI:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ROI:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:ROI:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:ROI:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.roi,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:ROI:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:ROI:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:ROI:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:ROI:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:ROI:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.roi,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:ROI:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.roi,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:ROI:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-DI-OAV-01:ROI:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.roi,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-DI-OAV-01:ROI:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.roi,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:ROI:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:ROI:PoolFreeBuffers") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:ROI:PoolUsedBuffers") -} - -record(calc, "S03SIM-DI-OAV-01:ROI:PoolUsedBuffers") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:ROI:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-DI-OAV-01:ROI:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.roi,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:ROI:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.roi,0,1)NDARRAY_PORT") - field(VAL, "OAV.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.roi,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.roi,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ROI:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.roi,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:ROI:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:ROI:MinCallbackTime PP") -} - -record(calc, "S03SIM-DI-OAV-01:ROI:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-DI-OAV-01:ROI:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.roi,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ROI:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.roi,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:ROI:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.roi,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-DI-OAV-01:ROI:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:ROI:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:ROI:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ROI:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:ROI:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:ROI:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:ROI:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ROI:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:ROI:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:ROI:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:ROI:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ROI:QueueUse.HIHI") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:ROI:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:ROI:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:ROI:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-DI-OAV-01:ROI:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:ROI:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.roi,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-DI-OAV-01:ROI:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.roi,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:ROI:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:ROI:SortSize") - field(OUT, "S03SIM-DI-OAV-01:ROI:SortFree.LOW") -} - -record(longout, "S03SIM-DI-OAV-01:ROI:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:ROI:AsynIO") -{ - field(PORT, "OAV.roi") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the label for the ROI # -################################################################### -record(stringout, "S03SIM-DI-OAV-01:ROI:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.roi,0,1)NAME") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.roi,0,1)NAME") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the ROI definition # -# including binning, region start and size # -################################################################### - -record(longout, "S03SIM-DI-OAV-01:ROI:BinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DIM0_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:BinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DIM0_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI:BinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DIM1_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:BinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DIM1_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI:BinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DIM2_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:BinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DIM2_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI:MinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DIM0_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:MinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DIM0_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI:MinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DIM1_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:MinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DIM1_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI:MinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DIM2_MIN") - field(LOPR, "1") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:MinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DIM2_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DIM0_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DIM0_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DIM1_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DIM1_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI:SizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DIM2_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:SizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DIM2_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI:AutoSizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DIM0_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI:AutoSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DIM0_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI:AutoSizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DIM1_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI:AutoSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DIM1_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI:AutoSizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DIM2_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI:AutoSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DIM2_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DIM0_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DIM1_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:MaxSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DIM2_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI:ReverseX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DIM0_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI:ReverseX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DIM0_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI:ReverseY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DIM1_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI:ReverseY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DIM1_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI:ReverseZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DIM2_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI:ReverseZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DIM2_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI:EnableX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DIM0_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI:EnableX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DIM0_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI:EnableY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DIM1_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI:EnableY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DIM1_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI:EnableZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)DIM2_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI:EnableZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)DIM2_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the scaling of the data. Useful when # -# binning or converting data types # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ROI:EnableScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)ENABLE_SCALE") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI:EnableScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)ENABLE_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.roi,0,1)SCALE_VALUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ROI:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.roi,0,1)SCALE_VALUE") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ROI:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-DI-OAV-01:ROI:MaxX") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:ROI:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:ROI:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:ROI:MaxX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:ROI:MinX.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:ROI:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:ROI:MaxY") -{ - field(INP, "S03SIM-DI-OAV-01:ROI:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:ROI:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:ROI:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:ROI:MaxY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:ROI:MinY.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:ROI:SizeY.HOPR NPP") -} - -################################################################### -# These records whether dimensions of 1 are collapsed (removed) # # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ROI:CollapseDims") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.roi,0,1)COLLAPSE_DIMS") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI:CollapseDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.roi,0,1)COLLAPSE_DIMS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -#=================================================================# -# Template file: NDROI.template -# Database for ND ROIs -# Mark Rivers -# April 22, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, OAV.rois.roi1, edmtab, NDROI.edl, P=S03SIM-DI-OAV-01,R=:ROI1: - -# This associates a BOY screen with the template -# % gui, OAV.rois.roi1, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-DI-OAV-01, R=:ROI1:, DESC=Region of Interest -# % gui, OAV.rois.roi1, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-DI-OAV-01, R=:ROI1:, DESC=Region of Interest -# % gui, OAV.rois.roi1, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-DI-OAV-01, R=:ROI1:, DESC=Region of Interest - -# % gui, OAV.rois.roi1, groupHeading, Info -# % gui, OAV.rois.roi1, readback, Port name, S03SIM-DI-OAV-01:ROI1:PortName_RBV -# % gui, OAV.rois.roi1, readback, Plugin type, S03SIM-DI-OAV-01:ROI1:PluginType_RBV -# Input -# % gui, OAV.rois.roi1, demandString, Input, S03SIM-DI-OAV-01:ROI1:NDArrayPort -# % gui, OAV.rois.roi1, readback, Input, S03SIM-DI-OAV-01:ROI1:NDArrayPort_RBV - -# % gui, OAV.rois.roi1, groupHeading, Callback -# % gui, OAV.rois.roi1, enum, Callbacks, S03SIM-DI-OAV-01:ROI1:EnableCallbacks -# % gui, OAV.rois.roi1, statusbits, Callbacks, S03SIM-DI-OAV-01:ROI1:EnableCallbacks_RBV -# % gui, OAV.rois.roi1, demand, Min Callback Time, S03SIM-DI-OAV-01:ROI1:MinCallbackTime -# % gui, OAV.rois.roi1, readback, Min Callback Time, S03SIM-DI-OAV-01:ROI1:MinCallbackTime_RBV -# % gui, OAV.rois.roi1, enum, Block Callbacks, S03SIM-DI-OAV-01:ROI1:BlockingCallbacks -# % gui, OAV.rois.roi1, statusbits, Block Callbacks, S03SIM-DI-OAV-01:ROI1:BlockingCallbacks_RBV - -# % gui, OAV.rois.roi1, groupHeading, Counters -# % gui, OAV.rois.roi1, demand, Array Counter, S03SIM-DI-OAV-01:ROI1:ArrayCounter -# % gui, OAV.rois.roi1, readback, Array Counter, S03SIM-DI-OAV-01:ROI1:ArrayCounter_RBV -# % gui, OAV.rois.roi1, readback, Array Rate (fps), S03SIM-DI-OAV-01:ROI1:ArrayRate_RBV -# % gui, OAV.rois.roi1, readback, Queue Use, S03SIM-DI-OAV-01:ROI1:QueueUse -# % gui, OAV.rois.roi1, readback, Queue Size, S03SIM-DI-OAV-01:ROI1:QueueSize -# % gui, OAV.rois.roi1, demand, Dropped Arrays, S03SIM-DI-OAV-01:ROI1:DroppedArrays -# % gui, OAV.rois.roi1, readback, Dropped Arrays, S03SIM-DI-OAV-01:ROI1:DroppedArrays_RBV - -# % gui, OAV.rois.roi1, groupHeading, Array Settings -# % gui, OAV.rois.roi1, readback, Num Dimensions, S03SIM-DI-OAV-01:ROI1:NDimensions_RBV -# % gui, OAV.rois.roi1, readback, Dim 0 Size, S03SIM-DI-OAV-01:ROI1:ArraySize0_RBV -# % gui, OAV.rois.roi1, readback, Dim 1 Size, S03SIM-DI-OAV-01:ROI1:ArraySize1_RBV -# % gui, OAV.rois.roi1, readback, Dim 2 Size, S03SIM-DI-OAV-01:ROI1:ArraySize2_RBV -# % gui, OAV.rois.roi1, readback, Input Data Type, S03SIM-DI-OAV-01:ROI1:DataType_RBV -# % gui, OAV.rois.roi1, readback, Colour Mode, S03SIM-DI-OAV-01:ROI1:ColorMode_RBV -# % gui, OAV.rois.roi1, readback, Bayer Pattern, S03SIM-DI-OAV-01:ROI1:BayerPattern_RBV -# % gui, OAV.rois.roi1, readback, Unique id, S03SIM-DI-OAV-01:ROI1:UniqueId_RBV -# % gui, OAV.rois.roi1, readback, Timestamp, S03SIM-DI-OAV-01:ROI1:TimeStamp_RBV - -# Output -# % gui, OAV.rois.roi1, groupHeading, Output -# % gui, OAV.rois.roi1, demand, Name, S03SIM-DI-OAV-01:ROI1:Name -# % gui, OAV.rois.roi1, enum, Out data type, S03SIM-DI-OAV-01:ROI1:DataTypeOut -# % gui, OAV.rois.roi1, readback, Out data type, S03SIM-DI-OAV-01:ROI1:DataTypeOut_RBV -# % gui, OAV.rois.roi1, demand, Attributes file, S03SIM-DI-OAV-01:ROI1:NDAttributesFile -# Scaling -# % gui, OAV.rois.roi1, groupHeading, Scaling -# % gui, OAV.rois.roi1, enum, Enable Scaling, S03SIM-DI-OAV-01:ROI1:EnableScale -# % gui, OAV.rois.roi1, readback, Enable Scaling, S03SIM-DI-OAV-01:ROI1:EnableScale_RBV -# % gui, OAV.rois.roi1, demand, Scale Divisor, S03SIM-DI-OAV-01:ROI1:Scale -# % gui, OAV.rois.roi1, readback, Scale Divisor, S03SIM-DI-OAV-01:ROI1:Scale_RBV -# X region -# % gui, OAV.rois.roi1, groupHeading, X Region -# % gui, OAV.rois.roi1, enum, X, S03SIM-DI-OAV-01:ROI1:EnableX -# % gui, OAV.rois.roi1, readback, X, S03SIM-DI-OAV-01:ROI1:EnableX_RBV -# % gui, OAV.rois.roi1, enum, Autosize X, S03SIM-DI-OAV-01:ROI1:AutoSizeX -# % gui, OAV.rois.roi1, readback, Autosize X, S03SIM-DI-OAV-01:ROI1:AutoSizeX_RBV -# % gui, OAV.rois.roi1, readback, Input Size X, S03SIM-DI-OAV-01:ROI1:MaxSizeX_RBV -# % gui, OAV.rois.roi1, demand, Binning X, S03SIM-DI-OAV-01:ROI1:BinX -# % gui, OAV.rois.roi1, readback, Binning X, S03SIM-DI-OAV-01:ROI1:BinX_RBV -# % gui, OAV.rois.roi1, demand, Start X, S03SIM-DI-OAV-01:ROI1:MinX -# % gui, OAV.rois.roi1, readback, Start X, S03SIM-DI-OAV-01:ROI1:MinX_RBV -# % gui, OAV.rois.roi1, demand, Size X, S03SIM-DI-OAV-01:ROI1:SizeX -# % gui, OAV.rois.roi1, readback, Size X, S03SIM-DI-OAV-01:ROI1:SizeX_RBV -# % gui, OAV.rois.roi1, enum, Reverse X, S03SIM-DI-OAV-01:ROI1:ReverseX -# % gui, OAV.rois.roi1, readback, Reverse X, S03SIM-DI-OAV-01:ROI1:ReverseX_RBV -# % gui, OAV.rois.roi1, readback, Bytes X, S03SIM-DI-OAV-01:ROI1:ArraySizeX_RBV -# Y region -# % gui, OAV.rois.roi1, groupHeading, Y Region -# % gui, OAV.rois.roi1, enum, Y, S03SIM-DI-OAV-01:ROI1:EnableY -# % gui, OAV.rois.roi1, readback, Y, S03SIM-DI-OAV-01:ROI1:EnableY_RBV -# % gui, OAV.rois.roi1, enum, Autosize Y, S03SIM-DI-OAV-01:ROI1:AutoSizeY -# % gui, OAV.rois.roi1, readback, Autosize Y, S03SIM-DI-OAV-01:ROI1:AutoSizeY_RBV -# % gui, OAV.rois.roi1, readback, Input size Y, S03SIM-DI-OAV-01:ROI1:MaxSizeY_RBV -# % gui, OAV.rois.roi1, demand, Binning Y, S03SIM-DI-OAV-01:ROI1:BinY -# % gui, OAV.rois.roi1, readback, Binning Y, S03SIM-DI-OAV-01:ROI1:BinY_RBV -# % gui, OAV.rois.roi1, demand, Start Y, S03SIM-DI-OAV-01:ROI1:MinY -# % gui, OAV.rois.roi1, readback, Start Y, S03SIM-DI-OAV-01:ROI1:MinY_RBV -# % gui, OAV.rois.roi1, demand, Size Y, S03SIM-DI-OAV-01:ROI1:SizeY -# % gui, OAV.rois.roi1, readback, Size Y, S03SIM-DI-OAV-01:ROI1:SizeY_RBV -# % gui, OAV.rois.roi1, enum, Reverse Y, S03SIM-DI-OAV-01:ROI1:ReverseY -# % gui, OAV.rois.roi1, readback, Reverse Y, S03SIM-DI-OAV-01:ROI1:ReverseY_RBV -# % gui, OAV.rois.roi1, readback, Bytes Y, S03SIM-DI-OAV-01:ROI1:ArraySizeY_RBV -# Z region -# % gui, OAV.rois.roi1, groupHeading, Z Region -# % gui, OAV.rois.roi1, enum, Z, S03SIM-DI-OAV-01:ROI1:EnableZ -# % gui, OAV.rois.roi1, readback, Z, S03SIM-DI-OAV-01:ROI1:EnableZ_RBV -# % gui, OAV.rois.roi1, enum, Autosize Z, S03SIM-DI-OAV-01:ROI1:AutoSizeZ -# % gui, OAV.rois.roi1, readback, Autosize Z, S03SIM-DI-OAV-01:ROI1:AutoSizeZ_RBV -# % gui, OAV.rois.roi1, readback, Input size Z, S03SIM-DI-OAV-01:ROI1:MaxSizeZ_RBV -# % gui, OAV.rois.roi1, demand, Binning Z, S03SIM-DI-OAV-01:ROI1:BinZ -# % gui, OAV.rois.roi1, readback, Binning Z, S03SIM-DI-OAV-01:ROI1:BinZ_RBV -# % gui, OAV.rois.roi1, demand, Start Z, S03SIM-DI-OAV-01:ROI1:MinZ -# % gui, OAV.rois.roi1, readback, Start Z, S03SIM-DI-OAV-01:ROI1:MinZ_RBV -# % gui, OAV.rois.roi1, demand, Size Z, S03SIM-DI-OAV-01:ROI1:SizeZ -# % gui, OAV.rois.roi1, readback, Size Z, S03SIM-DI-OAV-01:ROI1:SizeZ_RBV -# % gui, OAV.rois.roi1, enum, Reverse Z, S03SIM-DI-OAV-01:ROI1:ReverseZ -# % gui, OAV.rois.roi1, readback, Reverse Z, S03SIM-DI-OAV-01:ROI1:ReverseZ_RBV -# % gui, OAV.rois.roi1, readback, Bytes Z, S03SIM-DI-OAV-01:ROI1:ArraySizeZ_RBV -# Memory -# % gui, OAV.rois.roi1, groupHeading, Memory -# % gui, OAV.rois.roi1, readback, Max memory, S03SIM-DI-OAV-01:ROI1:PoolMaxMem -# % gui, OAV.rois.roi1, readback, Max buffers, S03SIM-DI-OAV-01:ROI1:PoolMaxBuffers -# % gui, OAV.rois.roi1, readback, Used memory, S03SIM-DI-OAV-01:ROI1:PoolUsedMem -# % gui, OAV.rois.roi1, readback, Allocated buffers, S03SIM-DI-OAV-01:ROI1:PoolAllocBuffers -# % gui, OAV.rois.roi1, readback, Free buffers, S03SIM-DI-OAV-01:ROI1:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI1:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi1,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI1:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi1,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI1:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi1,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI1:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi1,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI1:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi1,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI1:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi1,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI1:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi1,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI1:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi1,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ROI1:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:ROI1:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI1:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI1:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:ROI1:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:ROI1:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:ROI1:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI1:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:ROI1:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:ROI1:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:ROI1:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:ROI1:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:ROI1:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI1:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:ROI1:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:ROI1:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi1,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ROI1:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI1:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ROI1:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI1:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:ROI1:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:ROI1:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi1,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:ROI1:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:ROI1:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI1:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:ROI1:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:ROI1:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI1:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI1:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:ROI1:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.rois.roi1,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:ROI1:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.rois.roi1,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:ROI1:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-DI-OAV-01:ROI1:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi1,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-DI-OAV-01:ROI1:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi1,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:PoolFreeBuffers") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:PoolUsedBuffers") -} - -record(calc, "S03SIM-DI-OAV-01:ROI1:PoolUsedBuffers") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI1:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:ROI1:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-DI-OAV-01:ROI1:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI1:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi1,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:ROI1:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.rois.roi1,0,1)NDARRAY_PORT") - field(VAL, "OAV.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI1:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi1,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI1:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI1:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI1:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI1:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi1,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ROI1:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi1,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI1:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:ROI1:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI1:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI1:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:ROI1:MinCallbackTime PP") -} - -record(calc, "S03SIM-DI-OAV-01:ROI1:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI1:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-DI-OAV-01:ROI1:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi1,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ROI1:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi1,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:ROI1:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi1,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI1:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI1:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI1:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-DI-OAV-01:ROI1:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI1:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI1:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:ROI1:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ROI1:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:ROI1:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:ROI1:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ROI1:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:ROI1:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:ROI1:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ROI1:QueueUse.HIHI") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:ROI1:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:ROI1:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:ROI1:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-DI-OAV-01:ROI1:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:ROI1:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI1:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI1:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi1,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-DI-OAV-01:ROI1:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi1,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI1:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI1:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:ROI1:SortSize") - field(OUT, "S03SIM-DI-OAV-01:ROI1:SortFree.LOW") -} - -record(longout, "S03SIM-DI-OAV-01:ROI1:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI1:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:ROI1:AsynIO") -{ - field(PORT, "OAV.rois.roi1") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the label for the ROI # -################################################################### -record(stringout, "S03SIM-DI-OAV-01:ROI1:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.rois.roi1,0,1)NAME") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI1:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi1,0,1)NAME") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the ROI definition # -# including binning, region start and size # -################################################################### - -record(longout, "S03SIM-DI-OAV-01:ROI1:BinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM0_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:BinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DIM0_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI1:BinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM1_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:BinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DIM1_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI1:BinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM2_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:BinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DIM2_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI1:MinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM0_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:MinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DIM0_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI1:MinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM1_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:MinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DIM1_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI1:MinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM2_MIN") - field(LOPR, "1") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:MinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DIM2_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI1:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM0_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DIM0_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI1:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM1_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DIM1_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI1:SizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM2_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:SizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DIM2_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI1:AutoSizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM0_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI1:AutoSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DIM0_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI1:AutoSizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM1_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI1:AutoSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DIM1_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI1:AutoSizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM2_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI1:AutoSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DIM2_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DIM0_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DIM1_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:MaxSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DIM2_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI1:ReverseX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM0_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI1:ReverseX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DIM0_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI1:ReverseY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM1_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI1:ReverseY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DIM1_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI1:ReverseZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM2_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI1:ReverseZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DIM2_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI1:EnableX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM0_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI1:EnableX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DIM0_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI1:EnableY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM1_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI1:EnableY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DIM1_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI1:EnableZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)DIM2_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI1:EnableZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)DIM2_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the scaling of the data. Useful when # -# binning or converting data types # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ROI1:EnableScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)ENABLE_SCALE") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI1:EnableScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)ENABLE_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI1:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi1,0,1)SCALE_VALUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ROI1:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi1,0,1)SCALE_VALUE") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ROI1:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI1:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-DI-OAV-01:ROI1:MaxX") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:ROI1:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:ROI1:MaxX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:ROI1:MinX.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:ROI1:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:ROI1:MaxY") -{ - field(INP, "S03SIM-DI-OAV-01:ROI1:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:ROI1:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:ROI1:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:ROI1:MaxY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:ROI1:MinY.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:ROI1:SizeY.HOPR NPP") -} - -################################################################### -# These records whether dimensions of 1 are collapsed (removed) # # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ROI1:CollapseDims") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi1,0,1)COLLAPSE_DIMS") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI1:CollapseDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi1,0,1)COLLAPSE_DIMS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -#=================================================================# -# Template file: NDROI.template -# Database for ND ROIs -# Mark Rivers -# April 22, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, OAV.rois.roi2, edmtab, NDROI.edl, P=S03SIM-DI-OAV-01,R=:ROI2: - -# This associates a BOY screen with the template -# % gui, OAV.rois.roi2, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-DI-OAV-01, R=:ROI2:, DESC=Region of Interest -# % gui, OAV.rois.roi2, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-DI-OAV-01, R=:ROI2:, DESC=Region of Interest -# % gui, OAV.rois.roi2, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-DI-OAV-01, R=:ROI2:, DESC=Region of Interest - -# % gui, OAV.rois.roi2, groupHeading, Info -# % gui, OAV.rois.roi2, readback, Port name, S03SIM-DI-OAV-01:ROI2:PortName_RBV -# % gui, OAV.rois.roi2, readback, Plugin type, S03SIM-DI-OAV-01:ROI2:PluginType_RBV -# Input -# % gui, OAV.rois.roi2, demandString, Input, S03SIM-DI-OAV-01:ROI2:NDArrayPort -# % gui, OAV.rois.roi2, readback, Input, S03SIM-DI-OAV-01:ROI2:NDArrayPort_RBV - -# % gui, OAV.rois.roi2, groupHeading, Callback -# % gui, OAV.rois.roi2, enum, Callbacks, S03SIM-DI-OAV-01:ROI2:EnableCallbacks -# % gui, OAV.rois.roi2, statusbits, Callbacks, S03SIM-DI-OAV-01:ROI2:EnableCallbacks_RBV -# % gui, OAV.rois.roi2, demand, Min Callback Time, S03SIM-DI-OAV-01:ROI2:MinCallbackTime -# % gui, OAV.rois.roi2, readback, Min Callback Time, S03SIM-DI-OAV-01:ROI2:MinCallbackTime_RBV -# % gui, OAV.rois.roi2, enum, Block Callbacks, S03SIM-DI-OAV-01:ROI2:BlockingCallbacks -# % gui, OAV.rois.roi2, statusbits, Block Callbacks, S03SIM-DI-OAV-01:ROI2:BlockingCallbacks_RBV - -# % gui, OAV.rois.roi2, groupHeading, Counters -# % gui, OAV.rois.roi2, demand, Array Counter, S03SIM-DI-OAV-01:ROI2:ArrayCounter -# % gui, OAV.rois.roi2, readback, Array Counter, S03SIM-DI-OAV-01:ROI2:ArrayCounter_RBV -# % gui, OAV.rois.roi2, readback, Array Rate (fps), S03SIM-DI-OAV-01:ROI2:ArrayRate_RBV -# % gui, OAV.rois.roi2, readback, Queue Use, S03SIM-DI-OAV-01:ROI2:QueueUse -# % gui, OAV.rois.roi2, readback, Queue Size, S03SIM-DI-OAV-01:ROI2:QueueSize -# % gui, OAV.rois.roi2, demand, Dropped Arrays, S03SIM-DI-OAV-01:ROI2:DroppedArrays -# % gui, OAV.rois.roi2, readback, Dropped Arrays, S03SIM-DI-OAV-01:ROI2:DroppedArrays_RBV - -# % gui, OAV.rois.roi2, groupHeading, Array Settings -# % gui, OAV.rois.roi2, readback, Num Dimensions, S03SIM-DI-OAV-01:ROI2:NDimensions_RBV -# % gui, OAV.rois.roi2, readback, Dim 0 Size, S03SIM-DI-OAV-01:ROI2:ArraySize0_RBV -# % gui, OAV.rois.roi2, readback, Dim 1 Size, S03SIM-DI-OAV-01:ROI2:ArraySize1_RBV -# % gui, OAV.rois.roi2, readback, Dim 2 Size, S03SIM-DI-OAV-01:ROI2:ArraySize2_RBV -# % gui, OAV.rois.roi2, readback, Input Data Type, S03SIM-DI-OAV-01:ROI2:DataType_RBV -# % gui, OAV.rois.roi2, readback, Colour Mode, S03SIM-DI-OAV-01:ROI2:ColorMode_RBV -# % gui, OAV.rois.roi2, readback, Bayer Pattern, S03SIM-DI-OAV-01:ROI2:BayerPattern_RBV -# % gui, OAV.rois.roi2, readback, Unique id, S03SIM-DI-OAV-01:ROI2:UniqueId_RBV -# % gui, OAV.rois.roi2, readback, Timestamp, S03SIM-DI-OAV-01:ROI2:TimeStamp_RBV - -# Output -# % gui, OAV.rois.roi2, groupHeading, Output -# % gui, OAV.rois.roi2, demand, Name, S03SIM-DI-OAV-01:ROI2:Name -# % gui, OAV.rois.roi2, enum, Out data type, S03SIM-DI-OAV-01:ROI2:DataTypeOut -# % gui, OAV.rois.roi2, readback, Out data type, S03SIM-DI-OAV-01:ROI2:DataTypeOut_RBV -# % gui, OAV.rois.roi2, demand, Attributes file, S03SIM-DI-OAV-01:ROI2:NDAttributesFile -# Scaling -# % gui, OAV.rois.roi2, groupHeading, Scaling -# % gui, OAV.rois.roi2, enum, Enable Scaling, S03SIM-DI-OAV-01:ROI2:EnableScale -# % gui, OAV.rois.roi2, readback, Enable Scaling, S03SIM-DI-OAV-01:ROI2:EnableScale_RBV -# % gui, OAV.rois.roi2, demand, Scale Divisor, S03SIM-DI-OAV-01:ROI2:Scale -# % gui, OAV.rois.roi2, readback, Scale Divisor, S03SIM-DI-OAV-01:ROI2:Scale_RBV -# X region -# % gui, OAV.rois.roi2, groupHeading, X Region -# % gui, OAV.rois.roi2, enum, X, S03SIM-DI-OAV-01:ROI2:EnableX -# % gui, OAV.rois.roi2, readback, X, S03SIM-DI-OAV-01:ROI2:EnableX_RBV -# % gui, OAV.rois.roi2, enum, Autosize X, S03SIM-DI-OAV-01:ROI2:AutoSizeX -# % gui, OAV.rois.roi2, readback, Autosize X, S03SIM-DI-OAV-01:ROI2:AutoSizeX_RBV -# % gui, OAV.rois.roi2, readback, Input Size X, S03SIM-DI-OAV-01:ROI2:MaxSizeX_RBV -# % gui, OAV.rois.roi2, demand, Binning X, S03SIM-DI-OAV-01:ROI2:BinX -# % gui, OAV.rois.roi2, readback, Binning X, S03SIM-DI-OAV-01:ROI2:BinX_RBV -# % gui, OAV.rois.roi2, demand, Start X, S03SIM-DI-OAV-01:ROI2:MinX -# % gui, OAV.rois.roi2, readback, Start X, S03SIM-DI-OAV-01:ROI2:MinX_RBV -# % gui, OAV.rois.roi2, demand, Size X, S03SIM-DI-OAV-01:ROI2:SizeX -# % gui, OAV.rois.roi2, readback, Size X, S03SIM-DI-OAV-01:ROI2:SizeX_RBV -# % gui, OAV.rois.roi2, enum, Reverse X, S03SIM-DI-OAV-01:ROI2:ReverseX -# % gui, OAV.rois.roi2, readback, Reverse X, S03SIM-DI-OAV-01:ROI2:ReverseX_RBV -# % gui, OAV.rois.roi2, readback, Bytes X, S03SIM-DI-OAV-01:ROI2:ArraySizeX_RBV -# Y region -# % gui, OAV.rois.roi2, groupHeading, Y Region -# % gui, OAV.rois.roi2, enum, Y, S03SIM-DI-OAV-01:ROI2:EnableY -# % gui, OAV.rois.roi2, readback, Y, S03SIM-DI-OAV-01:ROI2:EnableY_RBV -# % gui, OAV.rois.roi2, enum, Autosize Y, S03SIM-DI-OAV-01:ROI2:AutoSizeY -# % gui, OAV.rois.roi2, readback, Autosize Y, S03SIM-DI-OAV-01:ROI2:AutoSizeY_RBV -# % gui, OAV.rois.roi2, readback, Input size Y, S03SIM-DI-OAV-01:ROI2:MaxSizeY_RBV -# % gui, OAV.rois.roi2, demand, Binning Y, S03SIM-DI-OAV-01:ROI2:BinY -# % gui, OAV.rois.roi2, readback, Binning Y, S03SIM-DI-OAV-01:ROI2:BinY_RBV -# % gui, OAV.rois.roi2, demand, Start Y, S03SIM-DI-OAV-01:ROI2:MinY -# % gui, OAV.rois.roi2, readback, Start Y, S03SIM-DI-OAV-01:ROI2:MinY_RBV -# % gui, OAV.rois.roi2, demand, Size Y, S03SIM-DI-OAV-01:ROI2:SizeY -# % gui, OAV.rois.roi2, readback, Size Y, S03SIM-DI-OAV-01:ROI2:SizeY_RBV -# % gui, OAV.rois.roi2, enum, Reverse Y, S03SIM-DI-OAV-01:ROI2:ReverseY -# % gui, OAV.rois.roi2, readback, Reverse Y, S03SIM-DI-OAV-01:ROI2:ReverseY_RBV -# % gui, OAV.rois.roi2, readback, Bytes Y, S03SIM-DI-OAV-01:ROI2:ArraySizeY_RBV -# Z region -# % gui, OAV.rois.roi2, groupHeading, Z Region -# % gui, OAV.rois.roi2, enum, Z, S03SIM-DI-OAV-01:ROI2:EnableZ -# % gui, OAV.rois.roi2, readback, Z, S03SIM-DI-OAV-01:ROI2:EnableZ_RBV -# % gui, OAV.rois.roi2, enum, Autosize Z, S03SIM-DI-OAV-01:ROI2:AutoSizeZ -# % gui, OAV.rois.roi2, readback, Autosize Z, S03SIM-DI-OAV-01:ROI2:AutoSizeZ_RBV -# % gui, OAV.rois.roi2, readback, Input size Z, S03SIM-DI-OAV-01:ROI2:MaxSizeZ_RBV -# % gui, OAV.rois.roi2, demand, Binning Z, S03SIM-DI-OAV-01:ROI2:BinZ -# % gui, OAV.rois.roi2, readback, Binning Z, S03SIM-DI-OAV-01:ROI2:BinZ_RBV -# % gui, OAV.rois.roi2, demand, Start Z, S03SIM-DI-OAV-01:ROI2:MinZ -# % gui, OAV.rois.roi2, readback, Start Z, S03SIM-DI-OAV-01:ROI2:MinZ_RBV -# % gui, OAV.rois.roi2, demand, Size Z, S03SIM-DI-OAV-01:ROI2:SizeZ -# % gui, OAV.rois.roi2, readback, Size Z, S03SIM-DI-OAV-01:ROI2:SizeZ_RBV -# % gui, OAV.rois.roi2, enum, Reverse Z, S03SIM-DI-OAV-01:ROI2:ReverseZ -# % gui, OAV.rois.roi2, readback, Reverse Z, S03SIM-DI-OAV-01:ROI2:ReverseZ_RBV -# % gui, OAV.rois.roi2, readback, Bytes Z, S03SIM-DI-OAV-01:ROI2:ArraySizeZ_RBV -# Memory -# % gui, OAV.rois.roi2, groupHeading, Memory -# % gui, OAV.rois.roi2, readback, Max memory, S03SIM-DI-OAV-01:ROI2:PoolMaxMem -# % gui, OAV.rois.roi2, readback, Max buffers, S03SIM-DI-OAV-01:ROI2:PoolMaxBuffers -# % gui, OAV.rois.roi2, readback, Used memory, S03SIM-DI-OAV-01:ROI2:PoolUsedMem -# % gui, OAV.rois.roi2, readback, Allocated buffers, S03SIM-DI-OAV-01:ROI2:PoolAllocBuffers -# % gui, OAV.rois.roi2, readback, Free buffers, S03SIM-DI-OAV-01:ROI2:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI2:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi2,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI2:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi2,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI2:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi2,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI2:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi2,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI2:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi2,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI2:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi2,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI2:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi2,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI2:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi2,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ROI2:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:ROI2:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI2:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI2:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:ROI2:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:ROI2:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:ROI2:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI2:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:ROI2:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:ROI2:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:ROI2:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:ROI2:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:ROI2:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI2:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:ROI2:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:ROI2:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi2,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ROI2:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI2:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ROI2:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI2:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:ROI2:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:ROI2:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi2,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:ROI2:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:ROI2:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI2:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:ROI2:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:ROI2:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI2:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI2:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:ROI2:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.rois.roi2,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:ROI2:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.rois.roi2,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:ROI2:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-DI-OAV-01:ROI2:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi2,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-DI-OAV-01:ROI2:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi2,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:PoolFreeBuffers") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:PoolUsedBuffers") -} - -record(calc, "S03SIM-DI-OAV-01:ROI2:PoolUsedBuffers") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI2:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:ROI2:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-DI-OAV-01:ROI2:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI2:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi2,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:ROI2:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.rois.roi2,0,1)NDARRAY_PORT") - field(VAL, "OAV.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI2:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi2,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI2:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI2:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI2:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI2:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi2,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ROI2:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi2,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI2:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:ROI2:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI2:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI2:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:ROI2:MinCallbackTime PP") -} - -record(calc, "S03SIM-DI-OAV-01:ROI2:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI2:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-DI-OAV-01:ROI2:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi2,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ROI2:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi2,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:ROI2:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi2,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI2:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI2:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI2:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-DI-OAV-01:ROI2:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI2:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI2:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:ROI2:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ROI2:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:ROI2:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:ROI2:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ROI2:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:ROI2:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:ROI2:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ROI2:QueueUse.HIHI") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:ROI2:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:ROI2:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:ROI2:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-DI-OAV-01:ROI2:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:ROI2:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI2:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI2:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi2,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-DI-OAV-01:ROI2:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi2,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI2:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI2:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:ROI2:SortSize") - field(OUT, "S03SIM-DI-OAV-01:ROI2:SortFree.LOW") -} - -record(longout, "S03SIM-DI-OAV-01:ROI2:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI2:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:ROI2:AsynIO") -{ - field(PORT, "OAV.rois.roi2") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the label for the ROI # -################################################################### -record(stringout, "S03SIM-DI-OAV-01:ROI2:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.rois.roi2,0,1)NAME") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI2:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi2,0,1)NAME") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the ROI definition # -# including binning, region start and size # -################################################################### - -record(longout, "S03SIM-DI-OAV-01:ROI2:BinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM0_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:BinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DIM0_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI2:BinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM1_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:BinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DIM1_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI2:BinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM2_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:BinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DIM2_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI2:MinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM0_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:MinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DIM0_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI2:MinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM1_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:MinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DIM1_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI2:MinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM2_MIN") - field(LOPR, "1") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:MinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DIM2_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI2:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM0_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DIM0_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI2:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM1_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DIM1_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI2:SizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM2_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:SizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DIM2_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI2:AutoSizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM0_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI2:AutoSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DIM0_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI2:AutoSizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM1_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI2:AutoSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DIM1_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI2:AutoSizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM2_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI2:AutoSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DIM2_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DIM0_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DIM1_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:MaxSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DIM2_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI2:ReverseX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM0_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI2:ReverseX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DIM0_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI2:ReverseY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM1_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI2:ReverseY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DIM1_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI2:ReverseZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM2_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI2:ReverseZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DIM2_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI2:EnableX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM0_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI2:EnableX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DIM0_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI2:EnableY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM1_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI2:EnableY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DIM1_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI2:EnableZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)DIM2_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI2:EnableZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)DIM2_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the scaling of the data. Useful when # -# binning or converting data types # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ROI2:EnableScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)ENABLE_SCALE") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI2:EnableScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)ENABLE_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI2:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi2,0,1)SCALE_VALUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ROI2:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi2,0,1)SCALE_VALUE") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ROI2:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI2:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-DI-OAV-01:ROI2:MaxX") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:ROI2:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:ROI2:MaxX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:ROI2:MinX.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:ROI2:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:ROI2:MaxY") -{ - field(INP, "S03SIM-DI-OAV-01:ROI2:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:ROI2:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:ROI2:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:ROI2:MaxY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:ROI2:MinY.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:ROI2:SizeY.HOPR NPP") -} - -################################################################### -# These records whether dimensions of 1 are collapsed (removed) # # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ROI2:CollapseDims") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi2,0,1)COLLAPSE_DIMS") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI2:CollapseDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi2,0,1)COLLAPSE_DIMS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -#=================================================================# -# Template file: NDROI.template -# Database for ND ROIs -# Mark Rivers -# April 22, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, OAV.rois.roi3, edmtab, NDROI.edl, P=S03SIM-DI-OAV-01,R=:ROI3: - -# This associates a BOY screen with the template -# % gui, OAV.rois.roi3, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-DI-OAV-01, R=:ROI3:, DESC=Region of Interest -# % gui, OAV.rois.roi3, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-DI-OAV-01, R=:ROI3:, DESC=Region of Interest -# % gui, OAV.rois.roi3, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-DI-OAV-01, R=:ROI3:, DESC=Region of Interest - -# % gui, OAV.rois.roi3, groupHeading, Info -# % gui, OAV.rois.roi3, readback, Port name, S03SIM-DI-OAV-01:ROI3:PortName_RBV -# % gui, OAV.rois.roi3, readback, Plugin type, S03SIM-DI-OAV-01:ROI3:PluginType_RBV -# Input -# % gui, OAV.rois.roi3, demandString, Input, S03SIM-DI-OAV-01:ROI3:NDArrayPort -# % gui, OAV.rois.roi3, readback, Input, S03SIM-DI-OAV-01:ROI3:NDArrayPort_RBV - -# % gui, OAV.rois.roi3, groupHeading, Callback -# % gui, OAV.rois.roi3, enum, Callbacks, S03SIM-DI-OAV-01:ROI3:EnableCallbacks -# % gui, OAV.rois.roi3, statusbits, Callbacks, S03SIM-DI-OAV-01:ROI3:EnableCallbacks_RBV -# % gui, OAV.rois.roi3, demand, Min Callback Time, S03SIM-DI-OAV-01:ROI3:MinCallbackTime -# % gui, OAV.rois.roi3, readback, Min Callback Time, S03SIM-DI-OAV-01:ROI3:MinCallbackTime_RBV -# % gui, OAV.rois.roi3, enum, Block Callbacks, S03SIM-DI-OAV-01:ROI3:BlockingCallbacks -# % gui, OAV.rois.roi3, statusbits, Block Callbacks, S03SIM-DI-OAV-01:ROI3:BlockingCallbacks_RBV - -# % gui, OAV.rois.roi3, groupHeading, Counters -# % gui, OAV.rois.roi3, demand, Array Counter, S03SIM-DI-OAV-01:ROI3:ArrayCounter -# % gui, OAV.rois.roi3, readback, Array Counter, S03SIM-DI-OAV-01:ROI3:ArrayCounter_RBV -# % gui, OAV.rois.roi3, readback, Array Rate (fps), S03SIM-DI-OAV-01:ROI3:ArrayRate_RBV -# % gui, OAV.rois.roi3, readback, Queue Use, S03SIM-DI-OAV-01:ROI3:QueueUse -# % gui, OAV.rois.roi3, readback, Queue Size, S03SIM-DI-OAV-01:ROI3:QueueSize -# % gui, OAV.rois.roi3, demand, Dropped Arrays, S03SIM-DI-OAV-01:ROI3:DroppedArrays -# % gui, OAV.rois.roi3, readback, Dropped Arrays, S03SIM-DI-OAV-01:ROI3:DroppedArrays_RBV - -# % gui, OAV.rois.roi3, groupHeading, Array Settings -# % gui, OAV.rois.roi3, readback, Num Dimensions, S03SIM-DI-OAV-01:ROI3:NDimensions_RBV -# % gui, OAV.rois.roi3, readback, Dim 0 Size, S03SIM-DI-OAV-01:ROI3:ArraySize0_RBV -# % gui, OAV.rois.roi3, readback, Dim 1 Size, S03SIM-DI-OAV-01:ROI3:ArraySize1_RBV -# % gui, OAV.rois.roi3, readback, Dim 2 Size, S03SIM-DI-OAV-01:ROI3:ArraySize2_RBV -# % gui, OAV.rois.roi3, readback, Input Data Type, S03SIM-DI-OAV-01:ROI3:DataType_RBV -# % gui, OAV.rois.roi3, readback, Colour Mode, S03SIM-DI-OAV-01:ROI3:ColorMode_RBV -# % gui, OAV.rois.roi3, readback, Bayer Pattern, S03SIM-DI-OAV-01:ROI3:BayerPattern_RBV -# % gui, OAV.rois.roi3, readback, Unique id, S03SIM-DI-OAV-01:ROI3:UniqueId_RBV -# % gui, OAV.rois.roi3, readback, Timestamp, S03SIM-DI-OAV-01:ROI3:TimeStamp_RBV - -# Output -# % gui, OAV.rois.roi3, groupHeading, Output -# % gui, OAV.rois.roi3, demand, Name, S03SIM-DI-OAV-01:ROI3:Name -# % gui, OAV.rois.roi3, enum, Out data type, S03SIM-DI-OAV-01:ROI3:DataTypeOut -# % gui, OAV.rois.roi3, readback, Out data type, S03SIM-DI-OAV-01:ROI3:DataTypeOut_RBV -# % gui, OAV.rois.roi3, demand, Attributes file, S03SIM-DI-OAV-01:ROI3:NDAttributesFile -# Scaling -# % gui, OAV.rois.roi3, groupHeading, Scaling -# % gui, OAV.rois.roi3, enum, Enable Scaling, S03SIM-DI-OAV-01:ROI3:EnableScale -# % gui, OAV.rois.roi3, readback, Enable Scaling, S03SIM-DI-OAV-01:ROI3:EnableScale_RBV -# % gui, OAV.rois.roi3, demand, Scale Divisor, S03SIM-DI-OAV-01:ROI3:Scale -# % gui, OAV.rois.roi3, readback, Scale Divisor, S03SIM-DI-OAV-01:ROI3:Scale_RBV -# X region -# % gui, OAV.rois.roi3, groupHeading, X Region -# % gui, OAV.rois.roi3, enum, X, S03SIM-DI-OAV-01:ROI3:EnableX -# % gui, OAV.rois.roi3, readback, X, S03SIM-DI-OAV-01:ROI3:EnableX_RBV -# % gui, OAV.rois.roi3, enum, Autosize X, S03SIM-DI-OAV-01:ROI3:AutoSizeX -# % gui, OAV.rois.roi3, readback, Autosize X, S03SIM-DI-OAV-01:ROI3:AutoSizeX_RBV -# % gui, OAV.rois.roi3, readback, Input Size X, S03SIM-DI-OAV-01:ROI3:MaxSizeX_RBV -# % gui, OAV.rois.roi3, demand, Binning X, S03SIM-DI-OAV-01:ROI3:BinX -# % gui, OAV.rois.roi3, readback, Binning X, S03SIM-DI-OAV-01:ROI3:BinX_RBV -# % gui, OAV.rois.roi3, demand, Start X, S03SIM-DI-OAV-01:ROI3:MinX -# % gui, OAV.rois.roi3, readback, Start X, S03SIM-DI-OAV-01:ROI3:MinX_RBV -# % gui, OAV.rois.roi3, demand, Size X, S03SIM-DI-OAV-01:ROI3:SizeX -# % gui, OAV.rois.roi3, readback, Size X, S03SIM-DI-OAV-01:ROI3:SizeX_RBV -# % gui, OAV.rois.roi3, enum, Reverse X, S03SIM-DI-OAV-01:ROI3:ReverseX -# % gui, OAV.rois.roi3, readback, Reverse X, S03SIM-DI-OAV-01:ROI3:ReverseX_RBV -# % gui, OAV.rois.roi3, readback, Bytes X, S03SIM-DI-OAV-01:ROI3:ArraySizeX_RBV -# Y region -# % gui, OAV.rois.roi3, groupHeading, Y Region -# % gui, OAV.rois.roi3, enum, Y, S03SIM-DI-OAV-01:ROI3:EnableY -# % gui, OAV.rois.roi3, readback, Y, S03SIM-DI-OAV-01:ROI3:EnableY_RBV -# % gui, OAV.rois.roi3, enum, Autosize Y, S03SIM-DI-OAV-01:ROI3:AutoSizeY -# % gui, OAV.rois.roi3, readback, Autosize Y, S03SIM-DI-OAV-01:ROI3:AutoSizeY_RBV -# % gui, OAV.rois.roi3, readback, Input size Y, S03SIM-DI-OAV-01:ROI3:MaxSizeY_RBV -# % gui, OAV.rois.roi3, demand, Binning Y, S03SIM-DI-OAV-01:ROI3:BinY -# % gui, OAV.rois.roi3, readback, Binning Y, S03SIM-DI-OAV-01:ROI3:BinY_RBV -# % gui, OAV.rois.roi3, demand, Start Y, S03SIM-DI-OAV-01:ROI3:MinY -# % gui, OAV.rois.roi3, readback, Start Y, S03SIM-DI-OAV-01:ROI3:MinY_RBV -# % gui, OAV.rois.roi3, demand, Size Y, S03SIM-DI-OAV-01:ROI3:SizeY -# % gui, OAV.rois.roi3, readback, Size Y, S03SIM-DI-OAV-01:ROI3:SizeY_RBV -# % gui, OAV.rois.roi3, enum, Reverse Y, S03SIM-DI-OAV-01:ROI3:ReverseY -# % gui, OAV.rois.roi3, readback, Reverse Y, S03SIM-DI-OAV-01:ROI3:ReverseY_RBV -# % gui, OAV.rois.roi3, readback, Bytes Y, S03SIM-DI-OAV-01:ROI3:ArraySizeY_RBV -# Z region -# % gui, OAV.rois.roi3, groupHeading, Z Region -# % gui, OAV.rois.roi3, enum, Z, S03SIM-DI-OAV-01:ROI3:EnableZ -# % gui, OAV.rois.roi3, readback, Z, S03SIM-DI-OAV-01:ROI3:EnableZ_RBV -# % gui, OAV.rois.roi3, enum, Autosize Z, S03SIM-DI-OAV-01:ROI3:AutoSizeZ -# % gui, OAV.rois.roi3, readback, Autosize Z, S03SIM-DI-OAV-01:ROI3:AutoSizeZ_RBV -# % gui, OAV.rois.roi3, readback, Input size Z, S03SIM-DI-OAV-01:ROI3:MaxSizeZ_RBV -# % gui, OAV.rois.roi3, demand, Binning Z, S03SIM-DI-OAV-01:ROI3:BinZ -# % gui, OAV.rois.roi3, readback, Binning Z, S03SIM-DI-OAV-01:ROI3:BinZ_RBV -# % gui, OAV.rois.roi3, demand, Start Z, S03SIM-DI-OAV-01:ROI3:MinZ -# % gui, OAV.rois.roi3, readback, Start Z, S03SIM-DI-OAV-01:ROI3:MinZ_RBV -# % gui, OAV.rois.roi3, demand, Size Z, S03SIM-DI-OAV-01:ROI3:SizeZ -# % gui, OAV.rois.roi3, readback, Size Z, S03SIM-DI-OAV-01:ROI3:SizeZ_RBV -# % gui, OAV.rois.roi3, enum, Reverse Z, S03SIM-DI-OAV-01:ROI3:ReverseZ -# % gui, OAV.rois.roi3, readback, Reverse Z, S03SIM-DI-OAV-01:ROI3:ReverseZ_RBV -# % gui, OAV.rois.roi3, readback, Bytes Z, S03SIM-DI-OAV-01:ROI3:ArraySizeZ_RBV -# Memory -# % gui, OAV.rois.roi3, groupHeading, Memory -# % gui, OAV.rois.roi3, readback, Max memory, S03SIM-DI-OAV-01:ROI3:PoolMaxMem -# % gui, OAV.rois.roi3, readback, Max buffers, S03SIM-DI-OAV-01:ROI3:PoolMaxBuffers -# % gui, OAV.rois.roi3, readback, Used memory, S03SIM-DI-OAV-01:ROI3:PoolUsedMem -# % gui, OAV.rois.roi3, readback, Allocated buffers, S03SIM-DI-OAV-01:ROI3:PoolAllocBuffers -# % gui, OAV.rois.roi3, readback, Free buffers, S03SIM-DI-OAV-01:ROI3:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI3:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi3,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI3:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi3,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI3:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi3,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI3:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi3,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI3:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi3,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI3:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi3,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI3:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi3,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI3:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi3,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ROI3:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:ROI3:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI3:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI3:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:ROI3:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:ROI3:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:ROI3:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI3:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:ROI3:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:ROI3:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:ROI3:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:ROI3:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:ROI3:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI3:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:ROI3:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:ROI3:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi3,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ROI3:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI3:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ROI3:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI3:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:ROI3:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:ROI3:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi3,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:ROI3:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:ROI3:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI3:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:ROI3:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:ROI3:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI3:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI3:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:ROI3:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.rois.roi3,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:ROI3:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.rois.roi3,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:ROI3:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-DI-OAV-01:ROI3:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi3,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-DI-OAV-01:ROI3:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi3,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:PoolFreeBuffers") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:PoolUsedBuffers") -} - -record(calc, "S03SIM-DI-OAV-01:ROI3:PoolUsedBuffers") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI3:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:ROI3:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-DI-OAV-01:ROI3:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI3:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi3,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:ROI3:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.rois.roi3,0,1)NDARRAY_PORT") - field(VAL, "OAV.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI3:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi3,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI3:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI3:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI3:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI3:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi3,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ROI3:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi3,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI3:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:ROI3:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI3:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI3:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:ROI3:MinCallbackTime PP") -} - -record(calc, "S03SIM-DI-OAV-01:ROI3:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI3:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-DI-OAV-01:ROI3:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi3,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ROI3:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi3,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:ROI3:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi3,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI3:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI3:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI3:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-DI-OAV-01:ROI3:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI3:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI3:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:ROI3:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ROI3:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:ROI3:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:ROI3:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ROI3:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:ROI3:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:ROI3:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ROI3:QueueUse.HIHI") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:ROI3:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:ROI3:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:ROI3:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-DI-OAV-01:ROI3:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:ROI3:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI3:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI3:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi3,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-DI-OAV-01:ROI3:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi3,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI3:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI3:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:ROI3:SortSize") - field(OUT, "S03SIM-DI-OAV-01:ROI3:SortFree.LOW") -} - -record(longout, "S03SIM-DI-OAV-01:ROI3:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI3:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:ROI3:AsynIO") -{ - field(PORT, "OAV.rois.roi3") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the label for the ROI # -################################################################### -record(stringout, "S03SIM-DI-OAV-01:ROI3:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.rois.roi3,0,1)NAME") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI3:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi3,0,1)NAME") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the ROI definition # -# including binning, region start and size # -################################################################### - -record(longout, "S03SIM-DI-OAV-01:ROI3:BinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM0_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:BinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DIM0_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI3:BinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM1_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:BinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DIM1_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI3:BinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM2_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:BinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DIM2_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI3:MinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM0_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:MinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DIM0_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI3:MinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM1_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:MinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DIM1_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI3:MinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM2_MIN") - field(LOPR, "1") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:MinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DIM2_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI3:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM0_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DIM0_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI3:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM1_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DIM1_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI3:SizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM2_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:SizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DIM2_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI3:AutoSizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM0_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI3:AutoSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DIM0_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI3:AutoSizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM1_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI3:AutoSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DIM1_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI3:AutoSizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM2_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI3:AutoSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DIM2_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DIM0_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DIM1_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:MaxSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DIM2_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI3:ReverseX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM0_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI3:ReverseX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DIM0_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI3:ReverseY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM1_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI3:ReverseY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DIM1_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI3:ReverseZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM2_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI3:ReverseZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DIM2_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI3:EnableX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM0_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI3:EnableX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DIM0_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI3:EnableY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM1_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI3:EnableY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DIM1_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI3:EnableZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)DIM2_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI3:EnableZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)DIM2_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the scaling of the data. Useful when # -# binning or converting data types # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ROI3:EnableScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)ENABLE_SCALE") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI3:EnableScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)ENABLE_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI3:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi3,0,1)SCALE_VALUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ROI3:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi3,0,1)SCALE_VALUE") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ROI3:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI3:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-DI-OAV-01:ROI3:MaxX") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:ROI3:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:ROI3:MaxX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:ROI3:MinX.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:ROI3:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:ROI3:MaxY") -{ - field(INP, "S03SIM-DI-OAV-01:ROI3:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:ROI3:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:ROI3:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:ROI3:MaxY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:ROI3:MinY.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:ROI3:SizeY.HOPR NPP") -} - -################################################################### -# These records whether dimensions of 1 are collapsed (removed) # # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ROI3:CollapseDims") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi3,0,1)COLLAPSE_DIMS") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI3:CollapseDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi3,0,1)COLLAPSE_DIMS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -#=================================================================# -# Template file: NDROI.template -# Database for ND ROIs -# Mark Rivers -# April 22, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, OAV.rois.roi4, edmtab, NDROI.edl, P=S03SIM-DI-OAV-01,R=:ROI4: - -# This associates a BOY screen with the template -# % gui, OAV.rois.roi4, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-DI-OAV-01, R=:ROI4:, DESC=Region of Interest -# % gui, OAV.rois.roi4, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-DI-OAV-01, R=:ROI4:, DESC=Region of Interest -# % gui, OAV.rois.roi4, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-DI-OAV-01, R=:ROI4:, DESC=Region of Interest - -# % gui, OAV.rois.roi4, groupHeading, Info -# % gui, OAV.rois.roi4, readback, Port name, S03SIM-DI-OAV-01:ROI4:PortName_RBV -# % gui, OAV.rois.roi4, readback, Plugin type, S03SIM-DI-OAV-01:ROI4:PluginType_RBV -# Input -# % gui, OAV.rois.roi4, demandString, Input, S03SIM-DI-OAV-01:ROI4:NDArrayPort -# % gui, OAV.rois.roi4, readback, Input, S03SIM-DI-OAV-01:ROI4:NDArrayPort_RBV - -# % gui, OAV.rois.roi4, groupHeading, Callback -# % gui, OAV.rois.roi4, enum, Callbacks, S03SIM-DI-OAV-01:ROI4:EnableCallbacks -# % gui, OAV.rois.roi4, statusbits, Callbacks, S03SIM-DI-OAV-01:ROI4:EnableCallbacks_RBV -# % gui, OAV.rois.roi4, demand, Min Callback Time, S03SIM-DI-OAV-01:ROI4:MinCallbackTime -# % gui, OAV.rois.roi4, readback, Min Callback Time, S03SIM-DI-OAV-01:ROI4:MinCallbackTime_RBV -# % gui, OAV.rois.roi4, enum, Block Callbacks, S03SIM-DI-OAV-01:ROI4:BlockingCallbacks -# % gui, OAV.rois.roi4, statusbits, Block Callbacks, S03SIM-DI-OAV-01:ROI4:BlockingCallbacks_RBV - -# % gui, OAV.rois.roi4, groupHeading, Counters -# % gui, OAV.rois.roi4, demand, Array Counter, S03SIM-DI-OAV-01:ROI4:ArrayCounter -# % gui, OAV.rois.roi4, readback, Array Counter, S03SIM-DI-OAV-01:ROI4:ArrayCounter_RBV -# % gui, OAV.rois.roi4, readback, Array Rate (fps), S03SIM-DI-OAV-01:ROI4:ArrayRate_RBV -# % gui, OAV.rois.roi4, readback, Queue Use, S03SIM-DI-OAV-01:ROI4:QueueUse -# % gui, OAV.rois.roi4, readback, Queue Size, S03SIM-DI-OAV-01:ROI4:QueueSize -# % gui, OAV.rois.roi4, demand, Dropped Arrays, S03SIM-DI-OAV-01:ROI4:DroppedArrays -# % gui, OAV.rois.roi4, readback, Dropped Arrays, S03SIM-DI-OAV-01:ROI4:DroppedArrays_RBV - -# % gui, OAV.rois.roi4, groupHeading, Array Settings -# % gui, OAV.rois.roi4, readback, Num Dimensions, S03SIM-DI-OAV-01:ROI4:NDimensions_RBV -# % gui, OAV.rois.roi4, readback, Dim 0 Size, S03SIM-DI-OAV-01:ROI4:ArraySize0_RBV -# % gui, OAV.rois.roi4, readback, Dim 1 Size, S03SIM-DI-OAV-01:ROI4:ArraySize1_RBV -# % gui, OAV.rois.roi4, readback, Dim 2 Size, S03SIM-DI-OAV-01:ROI4:ArraySize2_RBV -# % gui, OAV.rois.roi4, readback, Input Data Type, S03SIM-DI-OAV-01:ROI4:DataType_RBV -# % gui, OAV.rois.roi4, readback, Colour Mode, S03SIM-DI-OAV-01:ROI4:ColorMode_RBV -# % gui, OAV.rois.roi4, readback, Bayer Pattern, S03SIM-DI-OAV-01:ROI4:BayerPattern_RBV -# % gui, OAV.rois.roi4, readback, Unique id, S03SIM-DI-OAV-01:ROI4:UniqueId_RBV -# % gui, OAV.rois.roi4, readback, Timestamp, S03SIM-DI-OAV-01:ROI4:TimeStamp_RBV - -# Output -# % gui, OAV.rois.roi4, groupHeading, Output -# % gui, OAV.rois.roi4, demand, Name, S03SIM-DI-OAV-01:ROI4:Name -# % gui, OAV.rois.roi4, enum, Out data type, S03SIM-DI-OAV-01:ROI4:DataTypeOut -# % gui, OAV.rois.roi4, readback, Out data type, S03SIM-DI-OAV-01:ROI4:DataTypeOut_RBV -# % gui, OAV.rois.roi4, demand, Attributes file, S03SIM-DI-OAV-01:ROI4:NDAttributesFile -# Scaling -# % gui, OAV.rois.roi4, groupHeading, Scaling -# % gui, OAV.rois.roi4, enum, Enable Scaling, S03SIM-DI-OAV-01:ROI4:EnableScale -# % gui, OAV.rois.roi4, readback, Enable Scaling, S03SIM-DI-OAV-01:ROI4:EnableScale_RBV -# % gui, OAV.rois.roi4, demand, Scale Divisor, S03SIM-DI-OAV-01:ROI4:Scale -# % gui, OAV.rois.roi4, readback, Scale Divisor, S03SIM-DI-OAV-01:ROI4:Scale_RBV -# X region -# % gui, OAV.rois.roi4, groupHeading, X Region -# % gui, OAV.rois.roi4, enum, X, S03SIM-DI-OAV-01:ROI4:EnableX -# % gui, OAV.rois.roi4, readback, X, S03SIM-DI-OAV-01:ROI4:EnableX_RBV -# % gui, OAV.rois.roi4, enum, Autosize X, S03SIM-DI-OAV-01:ROI4:AutoSizeX -# % gui, OAV.rois.roi4, readback, Autosize X, S03SIM-DI-OAV-01:ROI4:AutoSizeX_RBV -# % gui, OAV.rois.roi4, readback, Input Size X, S03SIM-DI-OAV-01:ROI4:MaxSizeX_RBV -# % gui, OAV.rois.roi4, demand, Binning X, S03SIM-DI-OAV-01:ROI4:BinX -# % gui, OAV.rois.roi4, readback, Binning X, S03SIM-DI-OAV-01:ROI4:BinX_RBV -# % gui, OAV.rois.roi4, demand, Start X, S03SIM-DI-OAV-01:ROI4:MinX -# % gui, OAV.rois.roi4, readback, Start X, S03SIM-DI-OAV-01:ROI4:MinX_RBV -# % gui, OAV.rois.roi4, demand, Size X, S03SIM-DI-OAV-01:ROI4:SizeX -# % gui, OAV.rois.roi4, readback, Size X, S03SIM-DI-OAV-01:ROI4:SizeX_RBV -# % gui, OAV.rois.roi4, enum, Reverse X, S03SIM-DI-OAV-01:ROI4:ReverseX -# % gui, OAV.rois.roi4, readback, Reverse X, S03SIM-DI-OAV-01:ROI4:ReverseX_RBV -# % gui, OAV.rois.roi4, readback, Bytes X, S03SIM-DI-OAV-01:ROI4:ArraySizeX_RBV -# Y region -# % gui, OAV.rois.roi4, groupHeading, Y Region -# % gui, OAV.rois.roi4, enum, Y, S03SIM-DI-OAV-01:ROI4:EnableY -# % gui, OAV.rois.roi4, readback, Y, S03SIM-DI-OAV-01:ROI4:EnableY_RBV -# % gui, OAV.rois.roi4, enum, Autosize Y, S03SIM-DI-OAV-01:ROI4:AutoSizeY -# % gui, OAV.rois.roi4, readback, Autosize Y, S03SIM-DI-OAV-01:ROI4:AutoSizeY_RBV -# % gui, OAV.rois.roi4, readback, Input size Y, S03SIM-DI-OAV-01:ROI4:MaxSizeY_RBV -# % gui, OAV.rois.roi4, demand, Binning Y, S03SIM-DI-OAV-01:ROI4:BinY -# % gui, OAV.rois.roi4, readback, Binning Y, S03SIM-DI-OAV-01:ROI4:BinY_RBV -# % gui, OAV.rois.roi4, demand, Start Y, S03SIM-DI-OAV-01:ROI4:MinY -# % gui, OAV.rois.roi4, readback, Start Y, S03SIM-DI-OAV-01:ROI4:MinY_RBV -# % gui, OAV.rois.roi4, demand, Size Y, S03SIM-DI-OAV-01:ROI4:SizeY -# % gui, OAV.rois.roi4, readback, Size Y, S03SIM-DI-OAV-01:ROI4:SizeY_RBV -# % gui, OAV.rois.roi4, enum, Reverse Y, S03SIM-DI-OAV-01:ROI4:ReverseY -# % gui, OAV.rois.roi4, readback, Reverse Y, S03SIM-DI-OAV-01:ROI4:ReverseY_RBV -# % gui, OAV.rois.roi4, readback, Bytes Y, S03SIM-DI-OAV-01:ROI4:ArraySizeY_RBV -# Z region -# % gui, OAV.rois.roi4, groupHeading, Z Region -# % gui, OAV.rois.roi4, enum, Z, S03SIM-DI-OAV-01:ROI4:EnableZ -# % gui, OAV.rois.roi4, readback, Z, S03SIM-DI-OAV-01:ROI4:EnableZ_RBV -# % gui, OAV.rois.roi4, enum, Autosize Z, S03SIM-DI-OAV-01:ROI4:AutoSizeZ -# % gui, OAV.rois.roi4, readback, Autosize Z, S03SIM-DI-OAV-01:ROI4:AutoSizeZ_RBV -# % gui, OAV.rois.roi4, readback, Input size Z, S03SIM-DI-OAV-01:ROI4:MaxSizeZ_RBV -# % gui, OAV.rois.roi4, demand, Binning Z, S03SIM-DI-OAV-01:ROI4:BinZ -# % gui, OAV.rois.roi4, readback, Binning Z, S03SIM-DI-OAV-01:ROI4:BinZ_RBV -# % gui, OAV.rois.roi4, demand, Start Z, S03SIM-DI-OAV-01:ROI4:MinZ -# % gui, OAV.rois.roi4, readback, Start Z, S03SIM-DI-OAV-01:ROI4:MinZ_RBV -# % gui, OAV.rois.roi4, demand, Size Z, S03SIM-DI-OAV-01:ROI4:SizeZ -# % gui, OAV.rois.roi4, readback, Size Z, S03SIM-DI-OAV-01:ROI4:SizeZ_RBV -# % gui, OAV.rois.roi4, enum, Reverse Z, S03SIM-DI-OAV-01:ROI4:ReverseZ -# % gui, OAV.rois.roi4, readback, Reverse Z, S03SIM-DI-OAV-01:ROI4:ReverseZ_RBV -# % gui, OAV.rois.roi4, readback, Bytes Z, S03SIM-DI-OAV-01:ROI4:ArraySizeZ_RBV -# Memory -# % gui, OAV.rois.roi4, groupHeading, Memory -# % gui, OAV.rois.roi4, readback, Max memory, S03SIM-DI-OAV-01:ROI4:PoolMaxMem -# % gui, OAV.rois.roi4, readback, Max buffers, S03SIM-DI-OAV-01:ROI4:PoolMaxBuffers -# % gui, OAV.rois.roi4, readback, Used memory, S03SIM-DI-OAV-01:ROI4:PoolUsedMem -# % gui, OAV.rois.roi4, readback, Allocated buffers, S03SIM-DI-OAV-01:ROI4:PoolAllocBuffers -# % gui, OAV.rois.roi4, readback, Free buffers, S03SIM-DI-OAV-01:ROI4:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI4:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi4,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI4:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi4,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI4:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi4,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI4:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi4,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI4:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi4,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI4:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi4,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI4:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi4,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI4:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi4,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ROI4:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:ROI4:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI4:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI4:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:ROI4:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:ROI4:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:ROI4:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI4:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:ROI4:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:ROI4:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:ROI4:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:ROI4:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:ROI4:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI4:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:ROI4:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:ROI4:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi4,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ROI4:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI4:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ROI4:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI4:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:ROI4:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:ROI4:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi4,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:ROI4:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:ROI4:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI4:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:ROI4:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:ROI4:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI4:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI4:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:ROI4:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.rois.roi4,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:ROI4:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.rois.roi4,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:ROI4:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-DI-OAV-01:ROI4:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi4,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-DI-OAV-01:ROI4:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi4,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:PoolFreeBuffers") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:PoolUsedBuffers") -} - -record(calc, "S03SIM-DI-OAV-01:ROI4:PoolUsedBuffers") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI4:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:ROI4:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-DI-OAV-01:ROI4:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI4:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi4,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:ROI4:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.rois.roi4,0,1)NDARRAY_PORT") - field(VAL, "OAV.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI4:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi4,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI4:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI4:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI4:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI4:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi4,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ROI4:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi4,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI4:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:ROI4:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI4:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI4:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:ROI4:MinCallbackTime PP") -} - -record(calc, "S03SIM-DI-OAV-01:ROI4:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI4:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-DI-OAV-01:ROI4:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi4,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ROI4:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi4,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:ROI4:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi4,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI4:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI4:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI4:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-DI-OAV-01:ROI4:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI4:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI4:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:ROI4:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ROI4:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:ROI4:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:ROI4:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ROI4:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:ROI4:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:ROI4:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ROI4:QueueUse.HIHI") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:ROI4:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:ROI4:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:ROI4:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-DI-OAV-01:ROI4:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:ROI4:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI4:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI4:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi4,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-DI-OAV-01:ROI4:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi4,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI4:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI4:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:ROI4:SortSize") - field(OUT, "S03SIM-DI-OAV-01:ROI4:SortFree.LOW") -} - -record(longout, "S03SIM-DI-OAV-01:ROI4:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI4:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:ROI4:AsynIO") -{ - field(PORT, "OAV.rois.roi4") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the label for the ROI # -################################################################### -record(stringout, "S03SIM-DI-OAV-01:ROI4:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.rois.roi4,0,1)NAME") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI4:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi4,0,1)NAME") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the ROI definition # -# including binning, region start and size # -################################################################### - -record(longout, "S03SIM-DI-OAV-01:ROI4:BinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM0_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:BinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DIM0_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI4:BinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM1_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:BinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DIM1_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI4:BinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM2_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:BinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DIM2_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI4:MinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM0_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:MinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DIM0_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI4:MinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM1_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:MinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DIM1_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI4:MinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM2_MIN") - field(LOPR, "1") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:MinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DIM2_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI4:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM0_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DIM0_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI4:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM1_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DIM1_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI4:SizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM2_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:SizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DIM2_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI4:AutoSizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM0_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI4:AutoSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DIM0_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI4:AutoSizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM1_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI4:AutoSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DIM1_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI4:AutoSizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM2_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI4:AutoSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DIM2_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DIM0_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DIM1_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:MaxSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DIM2_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI4:ReverseX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM0_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI4:ReverseX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DIM0_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI4:ReverseY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM1_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI4:ReverseY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DIM1_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI4:ReverseZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM2_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI4:ReverseZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DIM2_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI4:EnableX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM0_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI4:EnableX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DIM0_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI4:EnableY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM1_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI4:EnableY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DIM1_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI4:EnableZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)DIM2_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI4:EnableZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)DIM2_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the scaling of the data. Useful when # -# binning or converting data types # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ROI4:EnableScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)ENABLE_SCALE") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI4:EnableScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)ENABLE_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI4:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi4,0,1)SCALE_VALUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ROI4:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi4,0,1)SCALE_VALUE") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ROI4:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI4:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-DI-OAV-01:ROI4:MaxX") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:ROI4:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:ROI4:MaxX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:ROI4:MinX.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:ROI4:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:ROI4:MaxY") -{ - field(INP, "S03SIM-DI-OAV-01:ROI4:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:ROI4:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:ROI4:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:ROI4:MaxY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:ROI4:MinY.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:ROI4:SizeY.HOPR NPP") -} - -################################################################### -# These records whether dimensions of 1 are collapsed (removed) # # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ROI4:CollapseDims") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi4,0,1)COLLAPSE_DIMS") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI4:CollapseDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi4,0,1)COLLAPSE_DIMS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -#=================================================================# -# Template file: NDROI.template -# Database for ND ROIs -# Mark Rivers -# April 22, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, OAV.rois.roi5, edmtab, NDROI.edl, P=S03SIM-DI-OAV-01,R=:ROI5: - -# This associates a BOY screen with the template -# % gui, OAV.rois.roi5, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-DI-OAV-01, R=:ROI5:, DESC=Region of Interest -# % gui, OAV.rois.roi5, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-DI-OAV-01, R=:ROI5:, DESC=Region of Interest -# % gui, OAV.rois.roi5, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-DI-OAV-01, R=:ROI5:, DESC=Region of Interest - -# % gui, OAV.rois.roi5, groupHeading, Info -# % gui, OAV.rois.roi5, readback, Port name, S03SIM-DI-OAV-01:ROI5:PortName_RBV -# % gui, OAV.rois.roi5, readback, Plugin type, S03SIM-DI-OAV-01:ROI5:PluginType_RBV -# Input -# % gui, OAV.rois.roi5, demandString, Input, S03SIM-DI-OAV-01:ROI5:NDArrayPort -# % gui, OAV.rois.roi5, readback, Input, S03SIM-DI-OAV-01:ROI5:NDArrayPort_RBV - -# % gui, OAV.rois.roi5, groupHeading, Callback -# % gui, OAV.rois.roi5, enum, Callbacks, S03SIM-DI-OAV-01:ROI5:EnableCallbacks -# % gui, OAV.rois.roi5, statusbits, Callbacks, S03SIM-DI-OAV-01:ROI5:EnableCallbacks_RBV -# % gui, OAV.rois.roi5, demand, Min Callback Time, S03SIM-DI-OAV-01:ROI5:MinCallbackTime -# % gui, OAV.rois.roi5, readback, Min Callback Time, S03SIM-DI-OAV-01:ROI5:MinCallbackTime_RBV -# % gui, OAV.rois.roi5, enum, Block Callbacks, S03SIM-DI-OAV-01:ROI5:BlockingCallbacks -# % gui, OAV.rois.roi5, statusbits, Block Callbacks, S03SIM-DI-OAV-01:ROI5:BlockingCallbacks_RBV - -# % gui, OAV.rois.roi5, groupHeading, Counters -# % gui, OAV.rois.roi5, demand, Array Counter, S03SIM-DI-OAV-01:ROI5:ArrayCounter -# % gui, OAV.rois.roi5, readback, Array Counter, S03SIM-DI-OAV-01:ROI5:ArrayCounter_RBV -# % gui, OAV.rois.roi5, readback, Array Rate (fps), S03SIM-DI-OAV-01:ROI5:ArrayRate_RBV -# % gui, OAV.rois.roi5, readback, Queue Use, S03SIM-DI-OAV-01:ROI5:QueueUse -# % gui, OAV.rois.roi5, readback, Queue Size, S03SIM-DI-OAV-01:ROI5:QueueSize -# % gui, OAV.rois.roi5, demand, Dropped Arrays, S03SIM-DI-OAV-01:ROI5:DroppedArrays -# % gui, OAV.rois.roi5, readback, Dropped Arrays, S03SIM-DI-OAV-01:ROI5:DroppedArrays_RBV - -# % gui, OAV.rois.roi5, groupHeading, Array Settings -# % gui, OAV.rois.roi5, readback, Num Dimensions, S03SIM-DI-OAV-01:ROI5:NDimensions_RBV -# % gui, OAV.rois.roi5, readback, Dim 0 Size, S03SIM-DI-OAV-01:ROI5:ArraySize0_RBV -# % gui, OAV.rois.roi5, readback, Dim 1 Size, S03SIM-DI-OAV-01:ROI5:ArraySize1_RBV -# % gui, OAV.rois.roi5, readback, Dim 2 Size, S03SIM-DI-OAV-01:ROI5:ArraySize2_RBV -# % gui, OAV.rois.roi5, readback, Input Data Type, S03SIM-DI-OAV-01:ROI5:DataType_RBV -# % gui, OAV.rois.roi5, readback, Colour Mode, S03SIM-DI-OAV-01:ROI5:ColorMode_RBV -# % gui, OAV.rois.roi5, readback, Bayer Pattern, S03SIM-DI-OAV-01:ROI5:BayerPattern_RBV -# % gui, OAV.rois.roi5, readback, Unique id, S03SIM-DI-OAV-01:ROI5:UniqueId_RBV -# % gui, OAV.rois.roi5, readback, Timestamp, S03SIM-DI-OAV-01:ROI5:TimeStamp_RBV - -# Output -# % gui, OAV.rois.roi5, groupHeading, Output -# % gui, OAV.rois.roi5, demand, Name, S03SIM-DI-OAV-01:ROI5:Name -# % gui, OAV.rois.roi5, enum, Out data type, S03SIM-DI-OAV-01:ROI5:DataTypeOut -# % gui, OAV.rois.roi5, readback, Out data type, S03SIM-DI-OAV-01:ROI5:DataTypeOut_RBV -# % gui, OAV.rois.roi5, demand, Attributes file, S03SIM-DI-OAV-01:ROI5:NDAttributesFile -# Scaling -# % gui, OAV.rois.roi5, groupHeading, Scaling -# % gui, OAV.rois.roi5, enum, Enable Scaling, S03SIM-DI-OAV-01:ROI5:EnableScale -# % gui, OAV.rois.roi5, readback, Enable Scaling, S03SIM-DI-OAV-01:ROI5:EnableScale_RBV -# % gui, OAV.rois.roi5, demand, Scale Divisor, S03SIM-DI-OAV-01:ROI5:Scale -# % gui, OAV.rois.roi5, readback, Scale Divisor, S03SIM-DI-OAV-01:ROI5:Scale_RBV -# X region -# % gui, OAV.rois.roi5, groupHeading, X Region -# % gui, OAV.rois.roi5, enum, X, S03SIM-DI-OAV-01:ROI5:EnableX -# % gui, OAV.rois.roi5, readback, X, S03SIM-DI-OAV-01:ROI5:EnableX_RBV -# % gui, OAV.rois.roi5, enum, Autosize X, S03SIM-DI-OAV-01:ROI5:AutoSizeX -# % gui, OAV.rois.roi5, readback, Autosize X, S03SIM-DI-OAV-01:ROI5:AutoSizeX_RBV -# % gui, OAV.rois.roi5, readback, Input Size X, S03SIM-DI-OAV-01:ROI5:MaxSizeX_RBV -# % gui, OAV.rois.roi5, demand, Binning X, S03SIM-DI-OAV-01:ROI5:BinX -# % gui, OAV.rois.roi5, readback, Binning X, S03SIM-DI-OAV-01:ROI5:BinX_RBV -# % gui, OAV.rois.roi5, demand, Start X, S03SIM-DI-OAV-01:ROI5:MinX -# % gui, OAV.rois.roi5, readback, Start X, S03SIM-DI-OAV-01:ROI5:MinX_RBV -# % gui, OAV.rois.roi5, demand, Size X, S03SIM-DI-OAV-01:ROI5:SizeX -# % gui, OAV.rois.roi5, readback, Size X, S03SIM-DI-OAV-01:ROI5:SizeX_RBV -# % gui, OAV.rois.roi5, enum, Reverse X, S03SIM-DI-OAV-01:ROI5:ReverseX -# % gui, OAV.rois.roi5, readback, Reverse X, S03SIM-DI-OAV-01:ROI5:ReverseX_RBV -# % gui, OAV.rois.roi5, readback, Bytes X, S03SIM-DI-OAV-01:ROI5:ArraySizeX_RBV -# Y region -# % gui, OAV.rois.roi5, groupHeading, Y Region -# % gui, OAV.rois.roi5, enum, Y, S03SIM-DI-OAV-01:ROI5:EnableY -# % gui, OAV.rois.roi5, readback, Y, S03SIM-DI-OAV-01:ROI5:EnableY_RBV -# % gui, OAV.rois.roi5, enum, Autosize Y, S03SIM-DI-OAV-01:ROI5:AutoSizeY -# % gui, OAV.rois.roi5, readback, Autosize Y, S03SIM-DI-OAV-01:ROI5:AutoSizeY_RBV -# % gui, OAV.rois.roi5, readback, Input size Y, S03SIM-DI-OAV-01:ROI5:MaxSizeY_RBV -# % gui, OAV.rois.roi5, demand, Binning Y, S03SIM-DI-OAV-01:ROI5:BinY -# % gui, OAV.rois.roi5, readback, Binning Y, S03SIM-DI-OAV-01:ROI5:BinY_RBV -# % gui, OAV.rois.roi5, demand, Start Y, S03SIM-DI-OAV-01:ROI5:MinY -# % gui, OAV.rois.roi5, readback, Start Y, S03SIM-DI-OAV-01:ROI5:MinY_RBV -# % gui, OAV.rois.roi5, demand, Size Y, S03SIM-DI-OAV-01:ROI5:SizeY -# % gui, OAV.rois.roi5, readback, Size Y, S03SIM-DI-OAV-01:ROI5:SizeY_RBV -# % gui, OAV.rois.roi5, enum, Reverse Y, S03SIM-DI-OAV-01:ROI5:ReverseY -# % gui, OAV.rois.roi5, readback, Reverse Y, S03SIM-DI-OAV-01:ROI5:ReverseY_RBV -# % gui, OAV.rois.roi5, readback, Bytes Y, S03SIM-DI-OAV-01:ROI5:ArraySizeY_RBV -# Z region -# % gui, OAV.rois.roi5, groupHeading, Z Region -# % gui, OAV.rois.roi5, enum, Z, S03SIM-DI-OAV-01:ROI5:EnableZ -# % gui, OAV.rois.roi5, readback, Z, S03SIM-DI-OAV-01:ROI5:EnableZ_RBV -# % gui, OAV.rois.roi5, enum, Autosize Z, S03SIM-DI-OAV-01:ROI5:AutoSizeZ -# % gui, OAV.rois.roi5, readback, Autosize Z, S03SIM-DI-OAV-01:ROI5:AutoSizeZ_RBV -# % gui, OAV.rois.roi5, readback, Input size Z, S03SIM-DI-OAV-01:ROI5:MaxSizeZ_RBV -# % gui, OAV.rois.roi5, demand, Binning Z, S03SIM-DI-OAV-01:ROI5:BinZ -# % gui, OAV.rois.roi5, readback, Binning Z, S03SIM-DI-OAV-01:ROI5:BinZ_RBV -# % gui, OAV.rois.roi5, demand, Start Z, S03SIM-DI-OAV-01:ROI5:MinZ -# % gui, OAV.rois.roi5, readback, Start Z, S03SIM-DI-OAV-01:ROI5:MinZ_RBV -# % gui, OAV.rois.roi5, demand, Size Z, S03SIM-DI-OAV-01:ROI5:SizeZ -# % gui, OAV.rois.roi5, readback, Size Z, S03SIM-DI-OAV-01:ROI5:SizeZ_RBV -# % gui, OAV.rois.roi5, enum, Reverse Z, S03SIM-DI-OAV-01:ROI5:ReverseZ -# % gui, OAV.rois.roi5, readback, Reverse Z, S03SIM-DI-OAV-01:ROI5:ReverseZ_RBV -# % gui, OAV.rois.roi5, readback, Bytes Z, S03SIM-DI-OAV-01:ROI5:ArraySizeZ_RBV -# Memory -# % gui, OAV.rois.roi5, groupHeading, Memory -# % gui, OAV.rois.roi5, readback, Max memory, S03SIM-DI-OAV-01:ROI5:PoolMaxMem -# % gui, OAV.rois.roi5, readback, Max buffers, S03SIM-DI-OAV-01:ROI5:PoolMaxBuffers -# % gui, OAV.rois.roi5, readback, Used memory, S03SIM-DI-OAV-01:ROI5:PoolUsedMem -# % gui, OAV.rois.roi5, readback, Allocated buffers, S03SIM-DI-OAV-01:ROI5:PoolAllocBuffers -# % gui, OAV.rois.roi5, readback, Free buffers, S03SIM-DI-OAV-01:ROI5:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI5:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi5,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI5:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi5,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI5:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi5,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI5:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi5,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI5:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi5,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI5:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi5,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI5:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi5,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI5:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi5,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ROI5:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:ROI5:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI5:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI5:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:ROI5:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:ROI5:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:ROI5:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI5:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:ROI5:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:ROI5:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:ROI5:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:ROI5:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:ROI5:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI5:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:ROI5:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:ROI5:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi5,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ROI5:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI5:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ROI5:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI5:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:ROI5:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:ROI5:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi5,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:ROI5:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:ROI5:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI5:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:ROI5:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:ROI5:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI5:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI5:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:ROI5:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.rois.roi5,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:ROI5:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.rois.roi5,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:ROI5:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-DI-OAV-01:ROI5:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi5,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-DI-OAV-01:ROI5:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi5,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:PoolFreeBuffers") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:PoolUsedBuffers") -} - -record(calc, "S03SIM-DI-OAV-01:ROI5:PoolUsedBuffers") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI5:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:ROI5:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-DI-OAV-01:ROI5:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI5:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi5,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:ROI5:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.rois.roi5,0,1)NDARRAY_PORT") - field(VAL, "OAV.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI5:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi5,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI5:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI5:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI5:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI5:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi5,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ROI5:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi5,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI5:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:ROI5:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI5:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI5:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:ROI5:MinCallbackTime PP") -} - -record(calc, "S03SIM-DI-OAV-01:ROI5:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI5:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-DI-OAV-01:ROI5:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi5,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ROI5:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi5,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:ROI5:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi5,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI5:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI5:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI5:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-DI-OAV-01:ROI5:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI5:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI5:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:ROI5:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ROI5:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:ROI5:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:ROI5:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ROI5:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:ROI5:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:ROI5:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ROI5:QueueUse.HIHI") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:ROI5:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:ROI5:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:ROI5:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-DI-OAV-01:ROI5:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:ROI5:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI5:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI5:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi5,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-DI-OAV-01:ROI5:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi5,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI5:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI5:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:ROI5:SortSize") - field(OUT, "S03SIM-DI-OAV-01:ROI5:SortFree.LOW") -} - -record(longout, "S03SIM-DI-OAV-01:ROI5:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI5:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:ROI5:AsynIO") -{ - field(PORT, "OAV.rois.roi5") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the label for the ROI # -################################################################### -record(stringout, "S03SIM-DI-OAV-01:ROI5:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.rois.roi5,0,1)NAME") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI5:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi5,0,1)NAME") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the ROI definition # -# including binning, region start and size # -################################################################### - -record(longout, "S03SIM-DI-OAV-01:ROI5:BinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM0_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:BinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DIM0_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI5:BinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM1_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:BinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DIM1_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI5:BinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM2_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:BinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DIM2_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI5:MinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM0_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:MinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DIM0_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI5:MinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM1_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:MinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DIM1_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI5:MinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM2_MIN") - field(LOPR, "1") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:MinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DIM2_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI5:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM0_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DIM0_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI5:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM1_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DIM1_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI5:SizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM2_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:SizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DIM2_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI5:AutoSizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM0_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI5:AutoSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DIM0_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI5:AutoSizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM1_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI5:AutoSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DIM1_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI5:AutoSizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM2_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI5:AutoSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DIM2_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DIM0_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DIM1_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:MaxSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DIM2_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI5:ReverseX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM0_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI5:ReverseX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DIM0_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI5:ReverseY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM1_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI5:ReverseY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DIM1_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI5:ReverseZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM2_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI5:ReverseZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DIM2_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI5:EnableX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM0_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI5:EnableX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DIM0_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI5:EnableY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM1_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI5:EnableY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DIM1_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI5:EnableZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)DIM2_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI5:EnableZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)DIM2_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the scaling of the data. Useful when # -# binning or converting data types # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ROI5:EnableScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)ENABLE_SCALE") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI5:EnableScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)ENABLE_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI5:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi5,0,1)SCALE_VALUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ROI5:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi5,0,1)SCALE_VALUE") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ROI5:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI5:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-DI-OAV-01:ROI5:MaxX") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:ROI5:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:ROI5:MaxX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:ROI5:MinX.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:ROI5:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:ROI5:MaxY") -{ - field(INP, "S03SIM-DI-OAV-01:ROI5:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:ROI5:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:ROI5:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:ROI5:MaxY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:ROI5:MinY.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:ROI5:SizeY.HOPR NPP") -} - -################################################################### -# These records whether dimensions of 1 are collapsed (removed) # # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ROI5:CollapseDims") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi5,0,1)COLLAPSE_DIMS") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI5:CollapseDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi5,0,1)COLLAPSE_DIMS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -#=================================================================# -# Template file: NDROI.template -# Database for ND ROIs -# Mark Rivers -# April 22, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, OAV.rois.roi6, edmtab, NDROI.edl, P=S03SIM-DI-OAV-01,R=:ROI6: - -# This associates a BOY screen with the template -# % gui, OAV.rois.roi6, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-DI-OAV-01, R=:ROI6:, DESC=Region of Interest -# % gui, OAV.rois.roi6, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-DI-OAV-01, R=:ROI6:, DESC=Region of Interest -# % gui, OAV.rois.roi6, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-DI-OAV-01, R=:ROI6:, DESC=Region of Interest - -# % gui, OAV.rois.roi6, groupHeading, Info -# % gui, OAV.rois.roi6, readback, Port name, S03SIM-DI-OAV-01:ROI6:PortName_RBV -# % gui, OAV.rois.roi6, readback, Plugin type, S03SIM-DI-OAV-01:ROI6:PluginType_RBV -# Input -# % gui, OAV.rois.roi6, demandString, Input, S03SIM-DI-OAV-01:ROI6:NDArrayPort -# % gui, OAV.rois.roi6, readback, Input, S03SIM-DI-OAV-01:ROI6:NDArrayPort_RBV - -# % gui, OAV.rois.roi6, groupHeading, Callback -# % gui, OAV.rois.roi6, enum, Callbacks, S03SIM-DI-OAV-01:ROI6:EnableCallbacks -# % gui, OAV.rois.roi6, statusbits, Callbacks, S03SIM-DI-OAV-01:ROI6:EnableCallbacks_RBV -# % gui, OAV.rois.roi6, demand, Min Callback Time, S03SIM-DI-OAV-01:ROI6:MinCallbackTime -# % gui, OAV.rois.roi6, readback, Min Callback Time, S03SIM-DI-OAV-01:ROI6:MinCallbackTime_RBV -# % gui, OAV.rois.roi6, enum, Block Callbacks, S03SIM-DI-OAV-01:ROI6:BlockingCallbacks -# % gui, OAV.rois.roi6, statusbits, Block Callbacks, S03SIM-DI-OAV-01:ROI6:BlockingCallbacks_RBV - -# % gui, OAV.rois.roi6, groupHeading, Counters -# % gui, OAV.rois.roi6, demand, Array Counter, S03SIM-DI-OAV-01:ROI6:ArrayCounter -# % gui, OAV.rois.roi6, readback, Array Counter, S03SIM-DI-OAV-01:ROI6:ArrayCounter_RBV -# % gui, OAV.rois.roi6, readback, Array Rate (fps), S03SIM-DI-OAV-01:ROI6:ArrayRate_RBV -# % gui, OAV.rois.roi6, readback, Queue Use, S03SIM-DI-OAV-01:ROI6:QueueUse -# % gui, OAV.rois.roi6, readback, Queue Size, S03SIM-DI-OAV-01:ROI6:QueueSize -# % gui, OAV.rois.roi6, demand, Dropped Arrays, S03SIM-DI-OAV-01:ROI6:DroppedArrays -# % gui, OAV.rois.roi6, readback, Dropped Arrays, S03SIM-DI-OAV-01:ROI6:DroppedArrays_RBV - -# % gui, OAV.rois.roi6, groupHeading, Array Settings -# % gui, OAV.rois.roi6, readback, Num Dimensions, S03SIM-DI-OAV-01:ROI6:NDimensions_RBV -# % gui, OAV.rois.roi6, readback, Dim 0 Size, S03SIM-DI-OAV-01:ROI6:ArraySize0_RBV -# % gui, OAV.rois.roi6, readback, Dim 1 Size, S03SIM-DI-OAV-01:ROI6:ArraySize1_RBV -# % gui, OAV.rois.roi6, readback, Dim 2 Size, S03SIM-DI-OAV-01:ROI6:ArraySize2_RBV -# % gui, OAV.rois.roi6, readback, Input Data Type, S03SIM-DI-OAV-01:ROI6:DataType_RBV -# % gui, OAV.rois.roi6, readback, Colour Mode, S03SIM-DI-OAV-01:ROI6:ColorMode_RBV -# % gui, OAV.rois.roi6, readback, Bayer Pattern, S03SIM-DI-OAV-01:ROI6:BayerPattern_RBV -# % gui, OAV.rois.roi6, readback, Unique id, S03SIM-DI-OAV-01:ROI6:UniqueId_RBV -# % gui, OAV.rois.roi6, readback, Timestamp, S03SIM-DI-OAV-01:ROI6:TimeStamp_RBV - -# Output -# % gui, OAV.rois.roi6, groupHeading, Output -# % gui, OAV.rois.roi6, demand, Name, S03SIM-DI-OAV-01:ROI6:Name -# % gui, OAV.rois.roi6, enum, Out data type, S03SIM-DI-OAV-01:ROI6:DataTypeOut -# % gui, OAV.rois.roi6, readback, Out data type, S03SIM-DI-OAV-01:ROI6:DataTypeOut_RBV -# % gui, OAV.rois.roi6, demand, Attributes file, S03SIM-DI-OAV-01:ROI6:NDAttributesFile -# Scaling -# % gui, OAV.rois.roi6, groupHeading, Scaling -# % gui, OAV.rois.roi6, enum, Enable Scaling, S03SIM-DI-OAV-01:ROI6:EnableScale -# % gui, OAV.rois.roi6, readback, Enable Scaling, S03SIM-DI-OAV-01:ROI6:EnableScale_RBV -# % gui, OAV.rois.roi6, demand, Scale Divisor, S03SIM-DI-OAV-01:ROI6:Scale -# % gui, OAV.rois.roi6, readback, Scale Divisor, S03SIM-DI-OAV-01:ROI6:Scale_RBV -# X region -# % gui, OAV.rois.roi6, groupHeading, X Region -# % gui, OAV.rois.roi6, enum, X, S03SIM-DI-OAV-01:ROI6:EnableX -# % gui, OAV.rois.roi6, readback, X, S03SIM-DI-OAV-01:ROI6:EnableX_RBV -# % gui, OAV.rois.roi6, enum, Autosize X, S03SIM-DI-OAV-01:ROI6:AutoSizeX -# % gui, OAV.rois.roi6, readback, Autosize X, S03SIM-DI-OAV-01:ROI6:AutoSizeX_RBV -# % gui, OAV.rois.roi6, readback, Input Size X, S03SIM-DI-OAV-01:ROI6:MaxSizeX_RBV -# % gui, OAV.rois.roi6, demand, Binning X, S03SIM-DI-OAV-01:ROI6:BinX -# % gui, OAV.rois.roi6, readback, Binning X, S03SIM-DI-OAV-01:ROI6:BinX_RBV -# % gui, OAV.rois.roi6, demand, Start X, S03SIM-DI-OAV-01:ROI6:MinX -# % gui, OAV.rois.roi6, readback, Start X, S03SIM-DI-OAV-01:ROI6:MinX_RBV -# % gui, OAV.rois.roi6, demand, Size X, S03SIM-DI-OAV-01:ROI6:SizeX -# % gui, OAV.rois.roi6, readback, Size X, S03SIM-DI-OAV-01:ROI6:SizeX_RBV -# % gui, OAV.rois.roi6, enum, Reverse X, S03SIM-DI-OAV-01:ROI6:ReverseX -# % gui, OAV.rois.roi6, readback, Reverse X, S03SIM-DI-OAV-01:ROI6:ReverseX_RBV -# % gui, OAV.rois.roi6, readback, Bytes X, S03SIM-DI-OAV-01:ROI6:ArraySizeX_RBV -# Y region -# % gui, OAV.rois.roi6, groupHeading, Y Region -# % gui, OAV.rois.roi6, enum, Y, S03SIM-DI-OAV-01:ROI6:EnableY -# % gui, OAV.rois.roi6, readback, Y, S03SIM-DI-OAV-01:ROI6:EnableY_RBV -# % gui, OAV.rois.roi6, enum, Autosize Y, S03SIM-DI-OAV-01:ROI6:AutoSizeY -# % gui, OAV.rois.roi6, readback, Autosize Y, S03SIM-DI-OAV-01:ROI6:AutoSizeY_RBV -# % gui, OAV.rois.roi6, readback, Input size Y, S03SIM-DI-OAV-01:ROI6:MaxSizeY_RBV -# % gui, OAV.rois.roi6, demand, Binning Y, S03SIM-DI-OAV-01:ROI6:BinY -# % gui, OAV.rois.roi6, readback, Binning Y, S03SIM-DI-OAV-01:ROI6:BinY_RBV -# % gui, OAV.rois.roi6, demand, Start Y, S03SIM-DI-OAV-01:ROI6:MinY -# % gui, OAV.rois.roi6, readback, Start Y, S03SIM-DI-OAV-01:ROI6:MinY_RBV -# % gui, OAV.rois.roi6, demand, Size Y, S03SIM-DI-OAV-01:ROI6:SizeY -# % gui, OAV.rois.roi6, readback, Size Y, S03SIM-DI-OAV-01:ROI6:SizeY_RBV -# % gui, OAV.rois.roi6, enum, Reverse Y, S03SIM-DI-OAV-01:ROI6:ReverseY -# % gui, OAV.rois.roi6, readback, Reverse Y, S03SIM-DI-OAV-01:ROI6:ReverseY_RBV -# % gui, OAV.rois.roi6, readback, Bytes Y, S03SIM-DI-OAV-01:ROI6:ArraySizeY_RBV -# Z region -# % gui, OAV.rois.roi6, groupHeading, Z Region -# % gui, OAV.rois.roi6, enum, Z, S03SIM-DI-OAV-01:ROI6:EnableZ -# % gui, OAV.rois.roi6, readback, Z, S03SIM-DI-OAV-01:ROI6:EnableZ_RBV -# % gui, OAV.rois.roi6, enum, Autosize Z, S03SIM-DI-OAV-01:ROI6:AutoSizeZ -# % gui, OAV.rois.roi6, readback, Autosize Z, S03SIM-DI-OAV-01:ROI6:AutoSizeZ_RBV -# % gui, OAV.rois.roi6, readback, Input size Z, S03SIM-DI-OAV-01:ROI6:MaxSizeZ_RBV -# % gui, OAV.rois.roi6, demand, Binning Z, S03SIM-DI-OAV-01:ROI6:BinZ -# % gui, OAV.rois.roi6, readback, Binning Z, S03SIM-DI-OAV-01:ROI6:BinZ_RBV -# % gui, OAV.rois.roi6, demand, Start Z, S03SIM-DI-OAV-01:ROI6:MinZ -# % gui, OAV.rois.roi6, readback, Start Z, S03SIM-DI-OAV-01:ROI6:MinZ_RBV -# % gui, OAV.rois.roi6, demand, Size Z, S03SIM-DI-OAV-01:ROI6:SizeZ -# % gui, OAV.rois.roi6, readback, Size Z, S03SIM-DI-OAV-01:ROI6:SizeZ_RBV -# % gui, OAV.rois.roi6, enum, Reverse Z, S03SIM-DI-OAV-01:ROI6:ReverseZ -# % gui, OAV.rois.roi6, readback, Reverse Z, S03SIM-DI-OAV-01:ROI6:ReverseZ_RBV -# % gui, OAV.rois.roi6, readback, Bytes Z, S03SIM-DI-OAV-01:ROI6:ArraySizeZ_RBV -# Memory -# % gui, OAV.rois.roi6, groupHeading, Memory -# % gui, OAV.rois.roi6, readback, Max memory, S03SIM-DI-OAV-01:ROI6:PoolMaxMem -# % gui, OAV.rois.roi6, readback, Max buffers, S03SIM-DI-OAV-01:ROI6:PoolMaxBuffers -# % gui, OAV.rois.roi6, readback, Used memory, S03SIM-DI-OAV-01:ROI6:PoolUsedMem -# % gui, OAV.rois.roi6, readback, Allocated buffers, S03SIM-DI-OAV-01:ROI6:PoolAllocBuffers -# % gui, OAV.rois.roi6, readback, Free buffers, S03SIM-DI-OAV-01:ROI6:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI6:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi6,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI6:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi6,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI6:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi6,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI6:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi6,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI6:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi6,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI6:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi6,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI6:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi6,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI6:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi6,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ROI6:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:ROI6:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI6:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI6:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:ROI6:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:ROI6:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:ROI6:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI6:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:ROI6:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:ROI6:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:ROI6:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:ROI6:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:ROI6:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ROI6:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:ROI6:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:ROI6:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi6,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ROI6:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI6:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ROI6:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI6:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:ROI6:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:ROI6:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi6,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:ROI6:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:ROI6:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI6:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:ROI6:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:ROI6:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI6:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI6:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:ROI6:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.rois.roi6,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:ROI6:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.rois.roi6,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:ROI6:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-DI-OAV-01:ROI6:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi6,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-DI-OAV-01:ROI6:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi6,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:PoolFreeBuffers") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:PoolUsedBuffers") -} - -record(calc, "S03SIM-DI-OAV-01:ROI6:PoolUsedBuffers") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI6:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:ROI6:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-DI-OAV-01:ROI6:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ROI6:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi6,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:ROI6:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.rois.roi6,0,1)NDARRAY_PORT") - field(VAL, "OAV.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI6:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi6,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI6:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI6:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI6:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI6:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi6,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ROI6:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi6,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI6:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:ROI6:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI6:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI6:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:ROI6:MinCallbackTime PP") -} - -record(calc, "S03SIM-DI-OAV-01:ROI6:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:ROI6:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-DI-OAV-01:ROI6:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi6,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ROI6:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi6,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:ROI6:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi6,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI6:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ROI6:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI6:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-DI-OAV-01:ROI6:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI6:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI6:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:ROI6:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ROI6:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:ROI6:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:ROI6:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ROI6:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:ROI6:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:ROI6:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ROI6:QueueUse.HIHI") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:ROI6:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:ROI6:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:ROI6:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-DI-OAV-01:ROI6:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:ROI6:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI6:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI6:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi6,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-DI-OAV-01:ROI6:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi6,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI6:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ROI6:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:ROI6:SortSize") - field(OUT, "S03SIM-DI-OAV-01:ROI6:SortFree.LOW") -} - -record(longout, "S03SIM-DI-OAV-01:ROI6:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI6:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:ROI6:AsynIO") -{ - field(PORT, "OAV.rois.roi6") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the label for the ROI # -################################################################### -record(stringout, "S03SIM-DI-OAV-01:ROI6:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.rois.roi6,0,1)NAME") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:ROI6:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.rois.roi6,0,1)NAME") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the ROI definition # -# including binning, region start and size # -################################################################### - -record(longout, "S03SIM-DI-OAV-01:ROI6:BinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM0_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:BinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DIM0_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI6:BinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM1_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:BinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DIM1_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI6:BinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM2_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:BinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DIM2_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI6:MinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM0_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:MinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DIM0_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI6:MinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM1_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:MinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DIM1_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI6:MinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM2_MIN") - field(LOPR, "1") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:MinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DIM2_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI6:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM0_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DIM0_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI6:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM1_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DIM1_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ROI6:SizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM2_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:SizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DIM2_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI6:AutoSizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM0_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI6:AutoSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DIM0_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI6:AutoSizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM1_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI6:AutoSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DIM1_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI6:AutoSizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM2_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI6:AutoSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DIM2_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DIM0_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DIM1_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:MaxSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DIM2_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI6:ReverseX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM0_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI6:ReverseX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DIM0_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI6:ReverseY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM1_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI6:ReverseY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DIM1_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI6:ReverseZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM2_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI6:ReverseZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DIM2_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI6:EnableX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM0_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI6:EnableX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DIM0_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI6:EnableY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM1_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI6:EnableY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DIM1_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:ROI6:EnableZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)DIM2_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI6:EnableZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)DIM2_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the scaling of the data. Useful when # -# binning or converting data types # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ROI6:EnableScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)ENABLE_SCALE") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI6:EnableScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)ENABLE_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ROI6:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.rois.roi6,0,1)SCALE_VALUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ROI6:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.rois.roi6,0,1)SCALE_VALUE") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ROI6:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ROI6:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-DI-OAV-01:ROI6:MaxX") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:ROI6:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:ROI6:MaxX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:ROI6:MinX.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:ROI6:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:ROI6:MaxY") -{ - field(INP, "S03SIM-DI-OAV-01:ROI6:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:ROI6:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:ROI6:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:ROI6:MaxY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:ROI6:MinY.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:ROI6:SizeY.HOPR NPP") -} - -################################################################### -# These records whether dimensions of 1 are collapsed (removed) # # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ROI6:CollapseDims") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.rois.roi6,0,1)COLLAPSE_DIMS") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ROI6:CollapseDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.rois.roi6,0,1)COLLAPSE_DIMS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -#=================================================================# -# Template file: NDROI.template -# Database for ND ROIs -# Mark Rivers -# April 22, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, FSCN1.roi, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-01,R=:ROI: - -# This associates a BOY screen with the template -# % gui, FSCN1.roi, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-01, R=:ROI:, DESC=Region of Interest -# % gui, FSCN1.roi, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:ROI:, DESC=Region of Interest -# % gui, FSCN1.roi, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-01, R=:ROI:, DESC=Region of Interest - -# % gui, FSCN1.roi, groupHeading, Info -# % gui, FSCN1.roi, readback, Port name, S03SIM-EA-FSCN-01:ROI:PortName_RBV -# % gui, FSCN1.roi, readback, Plugin type, S03SIM-EA-FSCN-01:ROI:PluginType_RBV -# Input -# % gui, FSCN1.roi, demandString, Input, S03SIM-EA-FSCN-01:ROI:NDArrayPort -# % gui, FSCN1.roi, readback, Input, S03SIM-EA-FSCN-01:ROI:NDArrayPort_RBV - -# % gui, FSCN1.roi, groupHeading, Callback -# % gui, FSCN1.roi, enum, Callbacks, S03SIM-EA-FSCN-01:ROI:EnableCallbacks -# % gui, FSCN1.roi, statusbits, Callbacks, S03SIM-EA-FSCN-01:ROI:EnableCallbacks_RBV -# % gui, FSCN1.roi, demand, Min Callback Time, S03SIM-EA-FSCN-01:ROI:MinCallbackTime -# % gui, FSCN1.roi, readback, Min Callback Time, S03SIM-EA-FSCN-01:ROI:MinCallbackTime_RBV -# % gui, FSCN1.roi, enum, Block Callbacks, S03SIM-EA-FSCN-01:ROI:BlockingCallbacks -# % gui, FSCN1.roi, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:ROI:BlockingCallbacks_RBV - -# % gui, FSCN1.roi, groupHeading, Counters -# % gui, FSCN1.roi, demand, Array Counter, S03SIM-EA-FSCN-01:ROI:ArrayCounter -# % gui, FSCN1.roi, readback, Array Counter, S03SIM-EA-FSCN-01:ROI:ArrayCounter_RBV -# % gui, FSCN1.roi, readback, Array Rate (fps), S03SIM-EA-FSCN-01:ROI:ArrayRate_RBV -# % gui, FSCN1.roi, readback, Queue Use, S03SIM-EA-FSCN-01:ROI:QueueUse -# % gui, FSCN1.roi, readback, Queue Size, S03SIM-EA-FSCN-01:ROI:QueueSize -# % gui, FSCN1.roi, demand, Dropped Arrays, S03SIM-EA-FSCN-01:ROI:DroppedArrays -# % gui, FSCN1.roi, readback, Dropped Arrays, S03SIM-EA-FSCN-01:ROI:DroppedArrays_RBV - -# % gui, FSCN1.roi, groupHeading, Array Settings -# % gui, FSCN1.roi, readback, Num Dimensions, S03SIM-EA-FSCN-01:ROI:NDimensions_RBV -# % gui, FSCN1.roi, readback, Dim 0 Size, S03SIM-EA-FSCN-01:ROI:ArraySize0_RBV -# % gui, FSCN1.roi, readback, Dim 1 Size, S03SIM-EA-FSCN-01:ROI:ArraySize1_RBV -# % gui, FSCN1.roi, readback, Dim 2 Size, S03SIM-EA-FSCN-01:ROI:ArraySize2_RBV -# % gui, FSCN1.roi, readback, Input Data Type, S03SIM-EA-FSCN-01:ROI:DataType_RBV -# % gui, FSCN1.roi, readback, Colour Mode, S03SIM-EA-FSCN-01:ROI:ColorMode_RBV -# % gui, FSCN1.roi, readback, Bayer Pattern, S03SIM-EA-FSCN-01:ROI:BayerPattern_RBV -# % gui, FSCN1.roi, readback, Unique id, S03SIM-EA-FSCN-01:ROI:UniqueId_RBV -# % gui, FSCN1.roi, readback, Timestamp, S03SIM-EA-FSCN-01:ROI:TimeStamp_RBV - -# Output -# % gui, FSCN1.roi, groupHeading, Output -# % gui, FSCN1.roi, demand, Name, S03SIM-EA-FSCN-01:ROI:Name -# % gui, FSCN1.roi, enum, Out data type, S03SIM-EA-FSCN-01:ROI:DataTypeOut -# % gui, FSCN1.roi, readback, Out data type, S03SIM-EA-FSCN-01:ROI:DataTypeOut_RBV -# % gui, FSCN1.roi, demand, Attributes file, S03SIM-EA-FSCN-01:ROI:NDAttributesFile -# Scaling -# % gui, FSCN1.roi, groupHeading, Scaling -# % gui, FSCN1.roi, enum, Enable Scaling, S03SIM-EA-FSCN-01:ROI:EnableScale -# % gui, FSCN1.roi, readback, Enable Scaling, S03SIM-EA-FSCN-01:ROI:EnableScale_RBV -# % gui, FSCN1.roi, demand, Scale Divisor, S03SIM-EA-FSCN-01:ROI:Scale -# % gui, FSCN1.roi, readback, Scale Divisor, S03SIM-EA-FSCN-01:ROI:Scale_RBV -# X region -# % gui, FSCN1.roi, groupHeading, X Region -# % gui, FSCN1.roi, enum, X, S03SIM-EA-FSCN-01:ROI:EnableX -# % gui, FSCN1.roi, readback, X, S03SIM-EA-FSCN-01:ROI:EnableX_RBV -# % gui, FSCN1.roi, enum, Autosize X, S03SIM-EA-FSCN-01:ROI:AutoSizeX -# % gui, FSCN1.roi, readback, Autosize X, S03SIM-EA-FSCN-01:ROI:AutoSizeX_RBV -# % gui, FSCN1.roi, readback, Input Size X, S03SIM-EA-FSCN-01:ROI:MaxSizeX_RBV -# % gui, FSCN1.roi, demand, Binning X, S03SIM-EA-FSCN-01:ROI:BinX -# % gui, FSCN1.roi, readback, Binning X, S03SIM-EA-FSCN-01:ROI:BinX_RBV -# % gui, FSCN1.roi, demand, Start X, S03SIM-EA-FSCN-01:ROI:MinX -# % gui, FSCN1.roi, readback, Start X, S03SIM-EA-FSCN-01:ROI:MinX_RBV -# % gui, FSCN1.roi, demand, Size X, S03SIM-EA-FSCN-01:ROI:SizeX -# % gui, FSCN1.roi, readback, Size X, S03SIM-EA-FSCN-01:ROI:SizeX_RBV -# % gui, FSCN1.roi, enum, Reverse X, S03SIM-EA-FSCN-01:ROI:ReverseX -# % gui, FSCN1.roi, readback, Reverse X, S03SIM-EA-FSCN-01:ROI:ReverseX_RBV -# % gui, FSCN1.roi, readback, Bytes X, S03SIM-EA-FSCN-01:ROI:ArraySizeX_RBV -# Y region -# % gui, FSCN1.roi, groupHeading, Y Region -# % gui, FSCN1.roi, enum, Y, S03SIM-EA-FSCN-01:ROI:EnableY -# % gui, FSCN1.roi, readback, Y, S03SIM-EA-FSCN-01:ROI:EnableY_RBV -# % gui, FSCN1.roi, enum, Autosize Y, S03SIM-EA-FSCN-01:ROI:AutoSizeY -# % gui, FSCN1.roi, readback, Autosize Y, S03SIM-EA-FSCN-01:ROI:AutoSizeY_RBV -# % gui, FSCN1.roi, readback, Input size Y, S03SIM-EA-FSCN-01:ROI:MaxSizeY_RBV -# % gui, FSCN1.roi, demand, Binning Y, S03SIM-EA-FSCN-01:ROI:BinY -# % gui, FSCN1.roi, readback, Binning Y, S03SIM-EA-FSCN-01:ROI:BinY_RBV -# % gui, FSCN1.roi, demand, Start Y, S03SIM-EA-FSCN-01:ROI:MinY -# % gui, FSCN1.roi, readback, Start Y, S03SIM-EA-FSCN-01:ROI:MinY_RBV -# % gui, FSCN1.roi, demand, Size Y, S03SIM-EA-FSCN-01:ROI:SizeY -# % gui, FSCN1.roi, readback, Size Y, S03SIM-EA-FSCN-01:ROI:SizeY_RBV -# % gui, FSCN1.roi, enum, Reverse Y, S03SIM-EA-FSCN-01:ROI:ReverseY -# % gui, FSCN1.roi, readback, Reverse Y, S03SIM-EA-FSCN-01:ROI:ReverseY_RBV -# % gui, FSCN1.roi, readback, Bytes Y, S03SIM-EA-FSCN-01:ROI:ArraySizeY_RBV -# Z region -# % gui, FSCN1.roi, groupHeading, Z Region -# % gui, FSCN1.roi, enum, Z, S03SIM-EA-FSCN-01:ROI:EnableZ -# % gui, FSCN1.roi, readback, Z, S03SIM-EA-FSCN-01:ROI:EnableZ_RBV -# % gui, FSCN1.roi, enum, Autosize Z, S03SIM-EA-FSCN-01:ROI:AutoSizeZ -# % gui, FSCN1.roi, readback, Autosize Z, S03SIM-EA-FSCN-01:ROI:AutoSizeZ_RBV -# % gui, FSCN1.roi, readback, Input size Z, S03SIM-EA-FSCN-01:ROI:MaxSizeZ_RBV -# % gui, FSCN1.roi, demand, Binning Z, S03SIM-EA-FSCN-01:ROI:BinZ -# % gui, FSCN1.roi, readback, Binning Z, S03SIM-EA-FSCN-01:ROI:BinZ_RBV -# % gui, FSCN1.roi, demand, Start Z, S03SIM-EA-FSCN-01:ROI:MinZ -# % gui, FSCN1.roi, readback, Start Z, S03SIM-EA-FSCN-01:ROI:MinZ_RBV -# % gui, FSCN1.roi, demand, Size Z, S03SIM-EA-FSCN-01:ROI:SizeZ -# % gui, FSCN1.roi, readback, Size Z, S03SIM-EA-FSCN-01:ROI:SizeZ_RBV -# % gui, FSCN1.roi, enum, Reverse Z, S03SIM-EA-FSCN-01:ROI:ReverseZ -# % gui, FSCN1.roi, readback, Reverse Z, S03SIM-EA-FSCN-01:ROI:ReverseZ_RBV -# % gui, FSCN1.roi, readback, Bytes Z, S03SIM-EA-FSCN-01:ROI:ArraySizeZ_RBV -# Memory -# % gui, FSCN1.roi, groupHeading, Memory -# % gui, FSCN1.roi, readback, Max memory, S03SIM-EA-FSCN-01:ROI:PoolMaxMem -# % gui, FSCN1.roi, readback, Max buffers, S03SIM-EA-FSCN-01:ROI:PoolMaxBuffers -# % gui, FSCN1.roi, readback, Used memory, S03SIM-EA-FSCN-01:ROI:PoolUsedMem -# % gui, FSCN1.roi, readback, Allocated buffers, S03SIM-EA-FSCN-01:ROI:PoolAllocBuffers -# % gui, FSCN1.roi, readback, Free buffers, S03SIM-EA-FSCN-01:ROI:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.roi,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.roi,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.roi,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.roi,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.roi,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.roi,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.roi,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.roi,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ROI:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:ROI:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:ROI:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:ROI:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:ROI:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:ROI:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-01:ROI:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-01:ROI:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.roi,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ROI:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ROI:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-01:ROI:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.roi,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-01:ROI:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:ROI:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:ROI:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:ROI:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:ROI:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.roi,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:ROI:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.roi,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-01:ROI:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-01:ROI:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.roi,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.roi,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-01:ROI:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:ROI:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.roi,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-01:ROI:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.roi,0,1)NDARRAY_PORT") - field(VAL, "FSCN1.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.roi,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.roi,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.roi,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:ROI:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:ROI:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-01:ROI:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.roi,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.roi,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-01:ROI:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.roi,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-01:ROI:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:ROI:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:ROI:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:ROI:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:ROI:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:ROI:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:ROI:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:ROI:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:ROI:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:ROI:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.roi,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.roi,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:ROI:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:ROI:AsynIO") -{ - field(PORT, "FSCN1.roi") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the label for the ROI # -################################################################### -record(stringout, "S03SIM-EA-FSCN-01:ROI:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.roi,0,1)NAME") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.roi,0,1)NAME") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the ROI definition # -# including binning, region start and size # -################################################################### - -record(longout, "S03SIM-EA-FSCN-01:ROI:BinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DIM0_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:BinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DIM0_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI:BinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DIM1_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:BinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DIM1_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI:BinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DIM2_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:BinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DIM2_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI:MinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DIM0_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:MinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DIM0_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI:MinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DIM1_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:MinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DIM1_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI:MinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DIM2_MIN") - field(LOPR, "1") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:MinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DIM2_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DIM0_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DIM0_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DIM1_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DIM1_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI:SizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DIM2_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:SizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DIM2_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI:AutoSizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DIM0_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI:AutoSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DIM0_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI:AutoSizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DIM1_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI:AutoSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DIM1_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI:AutoSizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DIM2_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI:AutoSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DIM2_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DIM0_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DIM1_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:MaxSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DIM2_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI:ReverseX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DIM0_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI:ReverseX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DIM0_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI:ReverseY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DIM1_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI:ReverseY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DIM1_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI:ReverseZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DIM2_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI:ReverseZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DIM2_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI:EnableX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DIM0_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI:EnableX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DIM0_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI:EnableY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DIM1_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI:EnableY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DIM1_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI:EnableZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)DIM2_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI:EnableZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)DIM2_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the scaling of the data. Useful when # -# binning or converting data types # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ROI:EnableScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)ENABLE_SCALE") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI:EnableScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)ENABLE_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.roi,0,1)SCALE_VALUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.roi,0,1)SCALE_VALUE") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ROI:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-01:ROI:MaxX") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:ROI:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:ROI:MaxX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:ROI:MinX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:ROI:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI:MaxY") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:ROI:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:ROI:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:ROI:MaxY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:ROI:MinY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:ROI:SizeY.HOPR NPP") -} - -################################################################### -# These records whether dimensions of 1 are collapsed (removed) # # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ROI:CollapseDims") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.roi,0,1)COLLAPSE_DIMS") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI:CollapseDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.roi,0,1)COLLAPSE_DIMS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -#=================================================================# -# Template file: NDROI.template -# Database for ND ROIs -# Mark Rivers -# April 22, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, FSCN1.rois.roi1, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-01,R=:ROI1: - -# This associates a BOY screen with the template -# % gui, FSCN1.rois.roi1, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-01, R=:ROI1:, DESC=Region of Interest -# % gui, FSCN1.rois.roi1, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:ROI1:, DESC=Region of Interest -# % gui, FSCN1.rois.roi1, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-01, R=:ROI1:, DESC=Region of Interest - -# % gui, FSCN1.rois.roi1, groupHeading, Info -# % gui, FSCN1.rois.roi1, readback, Port name, S03SIM-EA-FSCN-01:ROI1:PortName_RBV -# % gui, FSCN1.rois.roi1, readback, Plugin type, S03SIM-EA-FSCN-01:ROI1:PluginType_RBV -# Input -# % gui, FSCN1.rois.roi1, demandString, Input, S03SIM-EA-FSCN-01:ROI1:NDArrayPort -# % gui, FSCN1.rois.roi1, readback, Input, S03SIM-EA-FSCN-01:ROI1:NDArrayPort_RBV - -# % gui, FSCN1.rois.roi1, groupHeading, Callback -# % gui, FSCN1.rois.roi1, enum, Callbacks, S03SIM-EA-FSCN-01:ROI1:EnableCallbacks -# % gui, FSCN1.rois.roi1, statusbits, Callbacks, S03SIM-EA-FSCN-01:ROI1:EnableCallbacks_RBV -# % gui, FSCN1.rois.roi1, demand, Min Callback Time, S03SIM-EA-FSCN-01:ROI1:MinCallbackTime -# % gui, FSCN1.rois.roi1, readback, Min Callback Time, S03SIM-EA-FSCN-01:ROI1:MinCallbackTime_RBV -# % gui, FSCN1.rois.roi1, enum, Block Callbacks, S03SIM-EA-FSCN-01:ROI1:BlockingCallbacks -# % gui, FSCN1.rois.roi1, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:ROI1:BlockingCallbacks_RBV - -# % gui, FSCN1.rois.roi1, groupHeading, Counters -# % gui, FSCN1.rois.roi1, demand, Array Counter, S03SIM-EA-FSCN-01:ROI1:ArrayCounter -# % gui, FSCN1.rois.roi1, readback, Array Counter, S03SIM-EA-FSCN-01:ROI1:ArrayCounter_RBV -# % gui, FSCN1.rois.roi1, readback, Array Rate (fps), S03SIM-EA-FSCN-01:ROI1:ArrayRate_RBV -# % gui, FSCN1.rois.roi1, readback, Queue Use, S03SIM-EA-FSCN-01:ROI1:QueueUse -# % gui, FSCN1.rois.roi1, readback, Queue Size, S03SIM-EA-FSCN-01:ROI1:QueueSize -# % gui, FSCN1.rois.roi1, demand, Dropped Arrays, S03SIM-EA-FSCN-01:ROI1:DroppedArrays -# % gui, FSCN1.rois.roi1, readback, Dropped Arrays, S03SIM-EA-FSCN-01:ROI1:DroppedArrays_RBV - -# % gui, FSCN1.rois.roi1, groupHeading, Array Settings -# % gui, FSCN1.rois.roi1, readback, Num Dimensions, S03SIM-EA-FSCN-01:ROI1:NDimensions_RBV -# % gui, FSCN1.rois.roi1, readback, Dim 0 Size, S03SIM-EA-FSCN-01:ROI1:ArraySize0_RBV -# % gui, FSCN1.rois.roi1, readback, Dim 1 Size, S03SIM-EA-FSCN-01:ROI1:ArraySize1_RBV -# % gui, FSCN1.rois.roi1, readback, Dim 2 Size, S03SIM-EA-FSCN-01:ROI1:ArraySize2_RBV -# % gui, FSCN1.rois.roi1, readback, Input Data Type, S03SIM-EA-FSCN-01:ROI1:DataType_RBV -# % gui, FSCN1.rois.roi1, readback, Colour Mode, S03SIM-EA-FSCN-01:ROI1:ColorMode_RBV -# % gui, FSCN1.rois.roi1, readback, Bayer Pattern, S03SIM-EA-FSCN-01:ROI1:BayerPattern_RBV -# % gui, FSCN1.rois.roi1, readback, Unique id, S03SIM-EA-FSCN-01:ROI1:UniqueId_RBV -# % gui, FSCN1.rois.roi1, readback, Timestamp, S03SIM-EA-FSCN-01:ROI1:TimeStamp_RBV - -# Output -# % gui, FSCN1.rois.roi1, groupHeading, Output -# % gui, FSCN1.rois.roi1, demand, Name, S03SIM-EA-FSCN-01:ROI1:Name -# % gui, FSCN1.rois.roi1, enum, Out data type, S03SIM-EA-FSCN-01:ROI1:DataTypeOut -# % gui, FSCN1.rois.roi1, readback, Out data type, S03SIM-EA-FSCN-01:ROI1:DataTypeOut_RBV -# % gui, FSCN1.rois.roi1, demand, Attributes file, S03SIM-EA-FSCN-01:ROI1:NDAttributesFile -# Scaling -# % gui, FSCN1.rois.roi1, groupHeading, Scaling -# % gui, FSCN1.rois.roi1, enum, Enable Scaling, S03SIM-EA-FSCN-01:ROI1:EnableScale -# % gui, FSCN1.rois.roi1, readback, Enable Scaling, S03SIM-EA-FSCN-01:ROI1:EnableScale_RBV -# % gui, FSCN1.rois.roi1, demand, Scale Divisor, S03SIM-EA-FSCN-01:ROI1:Scale -# % gui, FSCN1.rois.roi1, readback, Scale Divisor, S03SIM-EA-FSCN-01:ROI1:Scale_RBV -# X region -# % gui, FSCN1.rois.roi1, groupHeading, X Region -# % gui, FSCN1.rois.roi1, enum, X, S03SIM-EA-FSCN-01:ROI1:EnableX -# % gui, FSCN1.rois.roi1, readback, X, S03SIM-EA-FSCN-01:ROI1:EnableX_RBV -# % gui, FSCN1.rois.roi1, enum, Autosize X, S03SIM-EA-FSCN-01:ROI1:AutoSizeX -# % gui, FSCN1.rois.roi1, readback, Autosize X, S03SIM-EA-FSCN-01:ROI1:AutoSizeX_RBV -# % gui, FSCN1.rois.roi1, readback, Input Size X, S03SIM-EA-FSCN-01:ROI1:MaxSizeX_RBV -# % gui, FSCN1.rois.roi1, demand, Binning X, S03SIM-EA-FSCN-01:ROI1:BinX -# % gui, FSCN1.rois.roi1, readback, Binning X, S03SIM-EA-FSCN-01:ROI1:BinX_RBV -# % gui, FSCN1.rois.roi1, demand, Start X, S03SIM-EA-FSCN-01:ROI1:MinX -# % gui, FSCN1.rois.roi1, readback, Start X, S03SIM-EA-FSCN-01:ROI1:MinX_RBV -# % gui, FSCN1.rois.roi1, demand, Size X, S03SIM-EA-FSCN-01:ROI1:SizeX -# % gui, FSCN1.rois.roi1, readback, Size X, S03SIM-EA-FSCN-01:ROI1:SizeX_RBV -# % gui, FSCN1.rois.roi1, enum, Reverse X, S03SIM-EA-FSCN-01:ROI1:ReverseX -# % gui, FSCN1.rois.roi1, readback, Reverse X, S03SIM-EA-FSCN-01:ROI1:ReverseX_RBV -# % gui, FSCN1.rois.roi1, readback, Bytes X, S03SIM-EA-FSCN-01:ROI1:ArraySizeX_RBV -# Y region -# % gui, FSCN1.rois.roi1, groupHeading, Y Region -# % gui, FSCN1.rois.roi1, enum, Y, S03SIM-EA-FSCN-01:ROI1:EnableY -# % gui, FSCN1.rois.roi1, readback, Y, S03SIM-EA-FSCN-01:ROI1:EnableY_RBV -# % gui, FSCN1.rois.roi1, enum, Autosize Y, S03SIM-EA-FSCN-01:ROI1:AutoSizeY -# % gui, FSCN1.rois.roi1, readback, Autosize Y, S03SIM-EA-FSCN-01:ROI1:AutoSizeY_RBV -# % gui, FSCN1.rois.roi1, readback, Input size Y, S03SIM-EA-FSCN-01:ROI1:MaxSizeY_RBV -# % gui, FSCN1.rois.roi1, demand, Binning Y, S03SIM-EA-FSCN-01:ROI1:BinY -# % gui, FSCN1.rois.roi1, readback, Binning Y, S03SIM-EA-FSCN-01:ROI1:BinY_RBV -# % gui, FSCN1.rois.roi1, demand, Start Y, S03SIM-EA-FSCN-01:ROI1:MinY -# % gui, FSCN1.rois.roi1, readback, Start Y, S03SIM-EA-FSCN-01:ROI1:MinY_RBV -# % gui, FSCN1.rois.roi1, demand, Size Y, S03SIM-EA-FSCN-01:ROI1:SizeY -# % gui, FSCN1.rois.roi1, readback, Size Y, S03SIM-EA-FSCN-01:ROI1:SizeY_RBV -# % gui, FSCN1.rois.roi1, enum, Reverse Y, S03SIM-EA-FSCN-01:ROI1:ReverseY -# % gui, FSCN1.rois.roi1, readback, Reverse Y, S03SIM-EA-FSCN-01:ROI1:ReverseY_RBV -# % gui, FSCN1.rois.roi1, readback, Bytes Y, S03SIM-EA-FSCN-01:ROI1:ArraySizeY_RBV -# Z region -# % gui, FSCN1.rois.roi1, groupHeading, Z Region -# % gui, FSCN1.rois.roi1, enum, Z, S03SIM-EA-FSCN-01:ROI1:EnableZ -# % gui, FSCN1.rois.roi1, readback, Z, S03SIM-EA-FSCN-01:ROI1:EnableZ_RBV -# % gui, FSCN1.rois.roi1, enum, Autosize Z, S03SIM-EA-FSCN-01:ROI1:AutoSizeZ -# % gui, FSCN1.rois.roi1, readback, Autosize Z, S03SIM-EA-FSCN-01:ROI1:AutoSizeZ_RBV -# % gui, FSCN1.rois.roi1, readback, Input size Z, S03SIM-EA-FSCN-01:ROI1:MaxSizeZ_RBV -# % gui, FSCN1.rois.roi1, demand, Binning Z, S03SIM-EA-FSCN-01:ROI1:BinZ -# % gui, FSCN1.rois.roi1, readback, Binning Z, S03SIM-EA-FSCN-01:ROI1:BinZ_RBV -# % gui, FSCN1.rois.roi1, demand, Start Z, S03SIM-EA-FSCN-01:ROI1:MinZ -# % gui, FSCN1.rois.roi1, readback, Start Z, S03SIM-EA-FSCN-01:ROI1:MinZ_RBV -# % gui, FSCN1.rois.roi1, demand, Size Z, S03SIM-EA-FSCN-01:ROI1:SizeZ -# % gui, FSCN1.rois.roi1, readback, Size Z, S03SIM-EA-FSCN-01:ROI1:SizeZ_RBV -# % gui, FSCN1.rois.roi1, enum, Reverse Z, S03SIM-EA-FSCN-01:ROI1:ReverseZ -# % gui, FSCN1.rois.roi1, readback, Reverse Z, S03SIM-EA-FSCN-01:ROI1:ReverseZ_RBV -# % gui, FSCN1.rois.roi1, readback, Bytes Z, S03SIM-EA-FSCN-01:ROI1:ArraySizeZ_RBV -# Memory -# % gui, FSCN1.rois.roi1, groupHeading, Memory -# % gui, FSCN1.rois.roi1, readback, Max memory, S03SIM-EA-FSCN-01:ROI1:PoolMaxMem -# % gui, FSCN1.rois.roi1, readback, Max buffers, S03SIM-EA-FSCN-01:ROI1:PoolMaxBuffers -# % gui, FSCN1.rois.roi1, readback, Used memory, S03SIM-EA-FSCN-01:ROI1:PoolUsedMem -# % gui, FSCN1.rois.roi1, readback, Allocated buffers, S03SIM-EA-FSCN-01:ROI1:PoolAllocBuffers -# % gui, FSCN1.rois.roi1, readback, Free buffers, S03SIM-EA-FSCN-01:ROI1:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI1:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI1:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI1:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI1:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI1:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI1:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI1:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI1:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ROI1:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI1:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI1:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI1:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:ROI1:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI1:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI1:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI1:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:ROI1:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:ROI1:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI1:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:ROI1:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:ROI1:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI1:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-01:ROI1:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-01:ROI1:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ROI1:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI1:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ROI1:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI1:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-01:ROI1:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI1:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-01:ROI1:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:ROI1:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI1:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:ROI1:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:ROI1:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI1:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI1:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:ROI1:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:ROI1:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-01:ROI1:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-01:ROI1:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI1:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-01:ROI1:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI1:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:ROI1:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI1:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI1:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-01:ROI1:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)NDARRAY_PORT") - field(VAL, "FSCN1.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI1:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI1:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI1:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI1:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI1:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI1:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI1:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:ROI1:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI1:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI1:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:ROI1:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-01:ROI1:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI1:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI1:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI1:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-01:ROI1:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI1:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI1:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI1:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-01:ROI1:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI1:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI1:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:ROI1:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI1:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:ROI1:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:ROI1:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI1:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:ROI1:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:ROI1:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI1:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:ROI1:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:ROI1:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:ROI1:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI1:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:ROI1:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI1:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI1:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI1:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI1:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI1:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:ROI1:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI1:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI1:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI1:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:ROI1:AsynIO") -{ - field(PORT, "FSCN1.rois.roi1") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the label for the ROI # -################################################################### -record(stringout, "S03SIM-EA-FSCN-01:ROI1:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)NAME") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI1:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)NAME") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the ROI definition # -# including binning, region start and size # -################################################################### - -record(longout, "S03SIM-EA-FSCN-01:ROI1:BinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM0_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:BinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM0_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI1:BinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM1_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:BinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM1_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI1:BinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM2_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:BinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM2_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI1:MinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM0_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:MinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM0_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI1:MinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM1_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:MinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM1_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI1:MinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM2_MIN") - field(LOPR, "1") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:MinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM2_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI1:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM0_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM0_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI1:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM1_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM1_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI1:SizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM2_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:SizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM2_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI1:AutoSizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM0_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI1:AutoSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM0_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI1:AutoSizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM1_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI1:AutoSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM1_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI1:AutoSizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM2_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI1:AutoSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM2_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM0_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM1_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:MaxSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM2_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI1:ReverseX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM0_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI1:ReverseX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM0_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI1:ReverseY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM1_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI1:ReverseY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM1_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI1:ReverseZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM2_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI1:ReverseZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM2_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI1:EnableX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM0_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI1:EnableX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM0_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI1:EnableY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM1_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI1:EnableY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM1_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI1:EnableZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)DIM2_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI1:EnableZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)DIM2_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the scaling of the data. Useful when # -# binning or converting data types # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ROI1:EnableScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)ENABLE_SCALE") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI1:EnableScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)ENABLE_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI1:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)SCALE_VALUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI1:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)SCALE_VALUE") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ROI1:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI1:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-01:ROI1:MaxX") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:ROI1:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:ROI1:MaxX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:ROI1:MinX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:ROI1:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI1:MaxY") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI1:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:ROI1:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:ROI1:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:ROI1:MaxY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:ROI1:MinY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:ROI1:SizeY.HOPR NPP") -} - -################################################################### -# These records whether dimensions of 1 are collapsed (removed) # # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ROI1:CollapseDims") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi1,0,1)COLLAPSE_DIMS") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI1:CollapseDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi1,0,1)COLLAPSE_DIMS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -#=================================================================# -# Template file: NDROI.template -# Database for ND ROIs -# Mark Rivers -# April 22, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, FSCN1.rois.roi2, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-01,R=:ROI2: - -# This associates a BOY screen with the template -# % gui, FSCN1.rois.roi2, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-01, R=:ROI2:, DESC=Region of Interest -# % gui, FSCN1.rois.roi2, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:ROI2:, DESC=Region of Interest -# % gui, FSCN1.rois.roi2, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-01, R=:ROI2:, DESC=Region of Interest - -# % gui, FSCN1.rois.roi2, groupHeading, Info -# % gui, FSCN1.rois.roi2, readback, Port name, S03SIM-EA-FSCN-01:ROI2:PortName_RBV -# % gui, FSCN1.rois.roi2, readback, Plugin type, S03SIM-EA-FSCN-01:ROI2:PluginType_RBV -# Input -# % gui, FSCN1.rois.roi2, demandString, Input, S03SIM-EA-FSCN-01:ROI2:NDArrayPort -# % gui, FSCN1.rois.roi2, readback, Input, S03SIM-EA-FSCN-01:ROI2:NDArrayPort_RBV - -# % gui, FSCN1.rois.roi2, groupHeading, Callback -# % gui, FSCN1.rois.roi2, enum, Callbacks, S03SIM-EA-FSCN-01:ROI2:EnableCallbacks -# % gui, FSCN1.rois.roi2, statusbits, Callbacks, S03SIM-EA-FSCN-01:ROI2:EnableCallbacks_RBV -# % gui, FSCN1.rois.roi2, demand, Min Callback Time, S03SIM-EA-FSCN-01:ROI2:MinCallbackTime -# % gui, FSCN1.rois.roi2, readback, Min Callback Time, S03SIM-EA-FSCN-01:ROI2:MinCallbackTime_RBV -# % gui, FSCN1.rois.roi2, enum, Block Callbacks, S03SIM-EA-FSCN-01:ROI2:BlockingCallbacks -# % gui, FSCN1.rois.roi2, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:ROI2:BlockingCallbacks_RBV - -# % gui, FSCN1.rois.roi2, groupHeading, Counters -# % gui, FSCN1.rois.roi2, demand, Array Counter, S03SIM-EA-FSCN-01:ROI2:ArrayCounter -# % gui, FSCN1.rois.roi2, readback, Array Counter, S03SIM-EA-FSCN-01:ROI2:ArrayCounter_RBV -# % gui, FSCN1.rois.roi2, readback, Array Rate (fps), S03SIM-EA-FSCN-01:ROI2:ArrayRate_RBV -# % gui, FSCN1.rois.roi2, readback, Queue Use, S03SIM-EA-FSCN-01:ROI2:QueueUse -# % gui, FSCN1.rois.roi2, readback, Queue Size, S03SIM-EA-FSCN-01:ROI2:QueueSize -# % gui, FSCN1.rois.roi2, demand, Dropped Arrays, S03SIM-EA-FSCN-01:ROI2:DroppedArrays -# % gui, FSCN1.rois.roi2, readback, Dropped Arrays, S03SIM-EA-FSCN-01:ROI2:DroppedArrays_RBV - -# % gui, FSCN1.rois.roi2, groupHeading, Array Settings -# % gui, FSCN1.rois.roi2, readback, Num Dimensions, S03SIM-EA-FSCN-01:ROI2:NDimensions_RBV -# % gui, FSCN1.rois.roi2, readback, Dim 0 Size, S03SIM-EA-FSCN-01:ROI2:ArraySize0_RBV -# % gui, FSCN1.rois.roi2, readback, Dim 1 Size, S03SIM-EA-FSCN-01:ROI2:ArraySize1_RBV -# % gui, FSCN1.rois.roi2, readback, Dim 2 Size, S03SIM-EA-FSCN-01:ROI2:ArraySize2_RBV -# % gui, FSCN1.rois.roi2, readback, Input Data Type, S03SIM-EA-FSCN-01:ROI2:DataType_RBV -# % gui, FSCN1.rois.roi2, readback, Colour Mode, S03SIM-EA-FSCN-01:ROI2:ColorMode_RBV -# % gui, FSCN1.rois.roi2, readback, Bayer Pattern, S03SIM-EA-FSCN-01:ROI2:BayerPattern_RBV -# % gui, FSCN1.rois.roi2, readback, Unique id, S03SIM-EA-FSCN-01:ROI2:UniqueId_RBV -# % gui, FSCN1.rois.roi2, readback, Timestamp, S03SIM-EA-FSCN-01:ROI2:TimeStamp_RBV - -# Output -# % gui, FSCN1.rois.roi2, groupHeading, Output -# % gui, FSCN1.rois.roi2, demand, Name, S03SIM-EA-FSCN-01:ROI2:Name -# % gui, FSCN1.rois.roi2, enum, Out data type, S03SIM-EA-FSCN-01:ROI2:DataTypeOut -# % gui, FSCN1.rois.roi2, readback, Out data type, S03SIM-EA-FSCN-01:ROI2:DataTypeOut_RBV -# % gui, FSCN1.rois.roi2, demand, Attributes file, S03SIM-EA-FSCN-01:ROI2:NDAttributesFile -# Scaling -# % gui, FSCN1.rois.roi2, groupHeading, Scaling -# % gui, FSCN1.rois.roi2, enum, Enable Scaling, S03SIM-EA-FSCN-01:ROI2:EnableScale -# % gui, FSCN1.rois.roi2, readback, Enable Scaling, S03SIM-EA-FSCN-01:ROI2:EnableScale_RBV -# % gui, FSCN1.rois.roi2, demand, Scale Divisor, S03SIM-EA-FSCN-01:ROI2:Scale -# % gui, FSCN1.rois.roi2, readback, Scale Divisor, S03SIM-EA-FSCN-01:ROI2:Scale_RBV -# X region -# % gui, FSCN1.rois.roi2, groupHeading, X Region -# % gui, FSCN1.rois.roi2, enum, X, S03SIM-EA-FSCN-01:ROI2:EnableX -# % gui, FSCN1.rois.roi2, readback, X, S03SIM-EA-FSCN-01:ROI2:EnableX_RBV -# % gui, FSCN1.rois.roi2, enum, Autosize X, S03SIM-EA-FSCN-01:ROI2:AutoSizeX -# % gui, FSCN1.rois.roi2, readback, Autosize X, S03SIM-EA-FSCN-01:ROI2:AutoSizeX_RBV -# % gui, FSCN1.rois.roi2, readback, Input Size X, S03SIM-EA-FSCN-01:ROI2:MaxSizeX_RBV -# % gui, FSCN1.rois.roi2, demand, Binning X, S03SIM-EA-FSCN-01:ROI2:BinX -# % gui, FSCN1.rois.roi2, readback, Binning X, S03SIM-EA-FSCN-01:ROI2:BinX_RBV -# % gui, FSCN1.rois.roi2, demand, Start X, S03SIM-EA-FSCN-01:ROI2:MinX -# % gui, FSCN1.rois.roi2, readback, Start X, S03SIM-EA-FSCN-01:ROI2:MinX_RBV -# % gui, FSCN1.rois.roi2, demand, Size X, S03SIM-EA-FSCN-01:ROI2:SizeX -# % gui, FSCN1.rois.roi2, readback, Size X, S03SIM-EA-FSCN-01:ROI2:SizeX_RBV -# % gui, FSCN1.rois.roi2, enum, Reverse X, S03SIM-EA-FSCN-01:ROI2:ReverseX -# % gui, FSCN1.rois.roi2, readback, Reverse X, S03SIM-EA-FSCN-01:ROI2:ReverseX_RBV -# % gui, FSCN1.rois.roi2, readback, Bytes X, S03SIM-EA-FSCN-01:ROI2:ArraySizeX_RBV -# Y region -# % gui, FSCN1.rois.roi2, groupHeading, Y Region -# % gui, FSCN1.rois.roi2, enum, Y, S03SIM-EA-FSCN-01:ROI2:EnableY -# % gui, FSCN1.rois.roi2, readback, Y, S03SIM-EA-FSCN-01:ROI2:EnableY_RBV -# % gui, FSCN1.rois.roi2, enum, Autosize Y, S03SIM-EA-FSCN-01:ROI2:AutoSizeY -# % gui, FSCN1.rois.roi2, readback, Autosize Y, S03SIM-EA-FSCN-01:ROI2:AutoSizeY_RBV -# % gui, FSCN1.rois.roi2, readback, Input size Y, S03SIM-EA-FSCN-01:ROI2:MaxSizeY_RBV -# % gui, FSCN1.rois.roi2, demand, Binning Y, S03SIM-EA-FSCN-01:ROI2:BinY -# % gui, FSCN1.rois.roi2, readback, Binning Y, S03SIM-EA-FSCN-01:ROI2:BinY_RBV -# % gui, FSCN1.rois.roi2, demand, Start Y, S03SIM-EA-FSCN-01:ROI2:MinY -# % gui, FSCN1.rois.roi2, readback, Start Y, S03SIM-EA-FSCN-01:ROI2:MinY_RBV -# % gui, FSCN1.rois.roi2, demand, Size Y, S03SIM-EA-FSCN-01:ROI2:SizeY -# % gui, FSCN1.rois.roi2, readback, Size Y, S03SIM-EA-FSCN-01:ROI2:SizeY_RBV -# % gui, FSCN1.rois.roi2, enum, Reverse Y, S03SIM-EA-FSCN-01:ROI2:ReverseY -# % gui, FSCN1.rois.roi2, readback, Reverse Y, S03SIM-EA-FSCN-01:ROI2:ReverseY_RBV -# % gui, FSCN1.rois.roi2, readback, Bytes Y, S03SIM-EA-FSCN-01:ROI2:ArraySizeY_RBV -# Z region -# % gui, FSCN1.rois.roi2, groupHeading, Z Region -# % gui, FSCN1.rois.roi2, enum, Z, S03SIM-EA-FSCN-01:ROI2:EnableZ -# % gui, FSCN1.rois.roi2, readback, Z, S03SIM-EA-FSCN-01:ROI2:EnableZ_RBV -# % gui, FSCN1.rois.roi2, enum, Autosize Z, S03SIM-EA-FSCN-01:ROI2:AutoSizeZ -# % gui, FSCN1.rois.roi2, readback, Autosize Z, S03SIM-EA-FSCN-01:ROI2:AutoSizeZ_RBV -# % gui, FSCN1.rois.roi2, readback, Input size Z, S03SIM-EA-FSCN-01:ROI2:MaxSizeZ_RBV -# % gui, FSCN1.rois.roi2, demand, Binning Z, S03SIM-EA-FSCN-01:ROI2:BinZ -# % gui, FSCN1.rois.roi2, readback, Binning Z, S03SIM-EA-FSCN-01:ROI2:BinZ_RBV -# % gui, FSCN1.rois.roi2, demand, Start Z, S03SIM-EA-FSCN-01:ROI2:MinZ -# % gui, FSCN1.rois.roi2, readback, Start Z, S03SIM-EA-FSCN-01:ROI2:MinZ_RBV -# % gui, FSCN1.rois.roi2, demand, Size Z, S03SIM-EA-FSCN-01:ROI2:SizeZ -# % gui, FSCN1.rois.roi2, readback, Size Z, S03SIM-EA-FSCN-01:ROI2:SizeZ_RBV -# % gui, FSCN1.rois.roi2, enum, Reverse Z, S03SIM-EA-FSCN-01:ROI2:ReverseZ -# % gui, FSCN1.rois.roi2, readback, Reverse Z, S03SIM-EA-FSCN-01:ROI2:ReverseZ_RBV -# % gui, FSCN1.rois.roi2, readback, Bytes Z, S03SIM-EA-FSCN-01:ROI2:ArraySizeZ_RBV -# Memory -# % gui, FSCN1.rois.roi2, groupHeading, Memory -# % gui, FSCN1.rois.roi2, readback, Max memory, S03SIM-EA-FSCN-01:ROI2:PoolMaxMem -# % gui, FSCN1.rois.roi2, readback, Max buffers, S03SIM-EA-FSCN-01:ROI2:PoolMaxBuffers -# % gui, FSCN1.rois.roi2, readback, Used memory, S03SIM-EA-FSCN-01:ROI2:PoolUsedMem -# % gui, FSCN1.rois.roi2, readback, Allocated buffers, S03SIM-EA-FSCN-01:ROI2:PoolAllocBuffers -# % gui, FSCN1.rois.roi2, readback, Free buffers, S03SIM-EA-FSCN-01:ROI2:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI2:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI2:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI2:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI2:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI2:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI2:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI2:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI2:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ROI2:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI2:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI2:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI2:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:ROI2:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI2:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI2:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI2:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:ROI2:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:ROI2:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI2:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:ROI2:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:ROI2:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI2:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-01:ROI2:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-01:ROI2:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ROI2:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI2:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ROI2:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI2:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-01:ROI2:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI2:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-01:ROI2:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:ROI2:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI2:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:ROI2:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:ROI2:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI2:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI2:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:ROI2:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:ROI2:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-01:ROI2:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-01:ROI2:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI2:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-01:ROI2:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI2:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:ROI2:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI2:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI2:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-01:ROI2:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)NDARRAY_PORT") - field(VAL, "FSCN1.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI2:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI2:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI2:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI2:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI2:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI2:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI2:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:ROI2:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI2:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI2:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:ROI2:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-01:ROI2:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI2:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI2:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI2:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-01:ROI2:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI2:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI2:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI2:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-01:ROI2:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI2:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI2:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:ROI2:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI2:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:ROI2:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:ROI2:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI2:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:ROI2:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:ROI2:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI2:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:ROI2:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:ROI2:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:ROI2:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI2:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:ROI2:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI2:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI2:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI2:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI2:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI2:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:ROI2:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI2:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI2:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI2:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:ROI2:AsynIO") -{ - field(PORT, "FSCN1.rois.roi2") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the label for the ROI # -################################################################### -record(stringout, "S03SIM-EA-FSCN-01:ROI2:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)NAME") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI2:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)NAME") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the ROI definition # -# including binning, region start and size # -################################################################### - -record(longout, "S03SIM-EA-FSCN-01:ROI2:BinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM0_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:BinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM0_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI2:BinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM1_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:BinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM1_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI2:BinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM2_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:BinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM2_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI2:MinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM0_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:MinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM0_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI2:MinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM1_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:MinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM1_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI2:MinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM2_MIN") - field(LOPR, "1") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:MinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM2_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI2:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM0_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM0_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI2:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM1_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM1_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI2:SizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM2_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:SizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM2_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI2:AutoSizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM0_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI2:AutoSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM0_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI2:AutoSizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM1_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI2:AutoSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM1_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI2:AutoSizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM2_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI2:AutoSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM2_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM0_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM1_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:MaxSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM2_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI2:ReverseX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM0_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI2:ReverseX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM0_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI2:ReverseY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM1_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI2:ReverseY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM1_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI2:ReverseZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM2_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI2:ReverseZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM2_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI2:EnableX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM0_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI2:EnableX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM0_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI2:EnableY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM1_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI2:EnableY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM1_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI2:EnableZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)DIM2_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI2:EnableZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)DIM2_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the scaling of the data. Useful when # -# binning or converting data types # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ROI2:EnableScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)ENABLE_SCALE") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI2:EnableScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)ENABLE_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI2:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)SCALE_VALUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI2:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)SCALE_VALUE") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ROI2:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI2:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-01:ROI2:MaxX") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:ROI2:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:ROI2:MaxX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:ROI2:MinX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:ROI2:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI2:MaxY") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI2:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:ROI2:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:ROI2:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:ROI2:MaxY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:ROI2:MinY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:ROI2:SizeY.HOPR NPP") -} - -################################################################### -# These records whether dimensions of 1 are collapsed (removed) # # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ROI2:CollapseDims") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi2,0,1)COLLAPSE_DIMS") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI2:CollapseDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi2,0,1)COLLAPSE_DIMS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -#=================================================================# -# Template file: NDROI.template -# Database for ND ROIs -# Mark Rivers -# April 22, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, FSCN1.rois.roi3, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-01,R=:ROI3: - -# This associates a BOY screen with the template -# % gui, FSCN1.rois.roi3, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-01, R=:ROI3:, DESC=Region of Interest -# % gui, FSCN1.rois.roi3, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:ROI3:, DESC=Region of Interest -# % gui, FSCN1.rois.roi3, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-01, R=:ROI3:, DESC=Region of Interest - -# % gui, FSCN1.rois.roi3, groupHeading, Info -# % gui, FSCN1.rois.roi3, readback, Port name, S03SIM-EA-FSCN-01:ROI3:PortName_RBV -# % gui, FSCN1.rois.roi3, readback, Plugin type, S03SIM-EA-FSCN-01:ROI3:PluginType_RBV -# Input -# % gui, FSCN1.rois.roi3, demandString, Input, S03SIM-EA-FSCN-01:ROI3:NDArrayPort -# % gui, FSCN1.rois.roi3, readback, Input, S03SIM-EA-FSCN-01:ROI3:NDArrayPort_RBV - -# % gui, FSCN1.rois.roi3, groupHeading, Callback -# % gui, FSCN1.rois.roi3, enum, Callbacks, S03SIM-EA-FSCN-01:ROI3:EnableCallbacks -# % gui, FSCN1.rois.roi3, statusbits, Callbacks, S03SIM-EA-FSCN-01:ROI3:EnableCallbacks_RBV -# % gui, FSCN1.rois.roi3, demand, Min Callback Time, S03SIM-EA-FSCN-01:ROI3:MinCallbackTime -# % gui, FSCN1.rois.roi3, readback, Min Callback Time, S03SIM-EA-FSCN-01:ROI3:MinCallbackTime_RBV -# % gui, FSCN1.rois.roi3, enum, Block Callbacks, S03SIM-EA-FSCN-01:ROI3:BlockingCallbacks -# % gui, FSCN1.rois.roi3, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:ROI3:BlockingCallbacks_RBV - -# % gui, FSCN1.rois.roi3, groupHeading, Counters -# % gui, FSCN1.rois.roi3, demand, Array Counter, S03SIM-EA-FSCN-01:ROI3:ArrayCounter -# % gui, FSCN1.rois.roi3, readback, Array Counter, S03SIM-EA-FSCN-01:ROI3:ArrayCounter_RBV -# % gui, FSCN1.rois.roi3, readback, Array Rate (fps), S03SIM-EA-FSCN-01:ROI3:ArrayRate_RBV -# % gui, FSCN1.rois.roi3, readback, Queue Use, S03SIM-EA-FSCN-01:ROI3:QueueUse -# % gui, FSCN1.rois.roi3, readback, Queue Size, S03SIM-EA-FSCN-01:ROI3:QueueSize -# % gui, FSCN1.rois.roi3, demand, Dropped Arrays, S03SIM-EA-FSCN-01:ROI3:DroppedArrays -# % gui, FSCN1.rois.roi3, readback, Dropped Arrays, S03SIM-EA-FSCN-01:ROI3:DroppedArrays_RBV - -# % gui, FSCN1.rois.roi3, groupHeading, Array Settings -# % gui, FSCN1.rois.roi3, readback, Num Dimensions, S03SIM-EA-FSCN-01:ROI3:NDimensions_RBV -# % gui, FSCN1.rois.roi3, readback, Dim 0 Size, S03SIM-EA-FSCN-01:ROI3:ArraySize0_RBV -# % gui, FSCN1.rois.roi3, readback, Dim 1 Size, S03SIM-EA-FSCN-01:ROI3:ArraySize1_RBV -# % gui, FSCN1.rois.roi3, readback, Dim 2 Size, S03SIM-EA-FSCN-01:ROI3:ArraySize2_RBV -# % gui, FSCN1.rois.roi3, readback, Input Data Type, S03SIM-EA-FSCN-01:ROI3:DataType_RBV -# % gui, FSCN1.rois.roi3, readback, Colour Mode, S03SIM-EA-FSCN-01:ROI3:ColorMode_RBV -# % gui, FSCN1.rois.roi3, readback, Bayer Pattern, S03SIM-EA-FSCN-01:ROI3:BayerPattern_RBV -# % gui, FSCN1.rois.roi3, readback, Unique id, S03SIM-EA-FSCN-01:ROI3:UniqueId_RBV -# % gui, FSCN1.rois.roi3, readback, Timestamp, S03SIM-EA-FSCN-01:ROI3:TimeStamp_RBV - -# Output -# % gui, FSCN1.rois.roi3, groupHeading, Output -# % gui, FSCN1.rois.roi3, demand, Name, S03SIM-EA-FSCN-01:ROI3:Name -# % gui, FSCN1.rois.roi3, enum, Out data type, S03SIM-EA-FSCN-01:ROI3:DataTypeOut -# % gui, FSCN1.rois.roi3, readback, Out data type, S03SIM-EA-FSCN-01:ROI3:DataTypeOut_RBV -# % gui, FSCN1.rois.roi3, demand, Attributes file, S03SIM-EA-FSCN-01:ROI3:NDAttributesFile -# Scaling -# % gui, FSCN1.rois.roi3, groupHeading, Scaling -# % gui, FSCN1.rois.roi3, enum, Enable Scaling, S03SIM-EA-FSCN-01:ROI3:EnableScale -# % gui, FSCN1.rois.roi3, readback, Enable Scaling, S03SIM-EA-FSCN-01:ROI3:EnableScale_RBV -# % gui, FSCN1.rois.roi3, demand, Scale Divisor, S03SIM-EA-FSCN-01:ROI3:Scale -# % gui, FSCN1.rois.roi3, readback, Scale Divisor, S03SIM-EA-FSCN-01:ROI3:Scale_RBV -# X region -# % gui, FSCN1.rois.roi3, groupHeading, X Region -# % gui, FSCN1.rois.roi3, enum, X, S03SIM-EA-FSCN-01:ROI3:EnableX -# % gui, FSCN1.rois.roi3, readback, X, S03SIM-EA-FSCN-01:ROI3:EnableX_RBV -# % gui, FSCN1.rois.roi3, enum, Autosize X, S03SIM-EA-FSCN-01:ROI3:AutoSizeX -# % gui, FSCN1.rois.roi3, readback, Autosize X, S03SIM-EA-FSCN-01:ROI3:AutoSizeX_RBV -# % gui, FSCN1.rois.roi3, readback, Input Size X, S03SIM-EA-FSCN-01:ROI3:MaxSizeX_RBV -# % gui, FSCN1.rois.roi3, demand, Binning X, S03SIM-EA-FSCN-01:ROI3:BinX -# % gui, FSCN1.rois.roi3, readback, Binning X, S03SIM-EA-FSCN-01:ROI3:BinX_RBV -# % gui, FSCN1.rois.roi3, demand, Start X, S03SIM-EA-FSCN-01:ROI3:MinX -# % gui, FSCN1.rois.roi3, readback, Start X, S03SIM-EA-FSCN-01:ROI3:MinX_RBV -# % gui, FSCN1.rois.roi3, demand, Size X, S03SIM-EA-FSCN-01:ROI3:SizeX -# % gui, FSCN1.rois.roi3, readback, Size X, S03SIM-EA-FSCN-01:ROI3:SizeX_RBV -# % gui, FSCN1.rois.roi3, enum, Reverse X, S03SIM-EA-FSCN-01:ROI3:ReverseX -# % gui, FSCN1.rois.roi3, readback, Reverse X, S03SIM-EA-FSCN-01:ROI3:ReverseX_RBV -# % gui, FSCN1.rois.roi3, readback, Bytes X, S03SIM-EA-FSCN-01:ROI3:ArraySizeX_RBV -# Y region -# % gui, FSCN1.rois.roi3, groupHeading, Y Region -# % gui, FSCN1.rois.roi3, enum, Y, S03SIM-EA-FSCN-01:ROI3:EnableY -# % gui, FSCN1.rois.roi3, readback, Y, S03SIM-EA-FSCN-01:ROI3:EnableY_RBV -# % gui, FSCN1.rois.roi3, enum, Autosize Y, S03SIM-EA-FSCN-01:ROI3:AutoSizeY -# % gui, FSCN1.rois.roi3, readback, Autosize Y, S03SIM-EA-FSCN-01:ROI3:AutoSizeY_RBV -# % gui, FSCN1.rois.roi3, readback, Input size Y, S03SIM-EA-FSCN-01:ROI3:MaxSizeY_RBV -# % gui, FSCN1.rois.roi3, demand, Binning Y, S03SIM-EA-FSCN-01:ROI3:BinY -# % gui, FSCN1.rois.roi3, readback, Binning Y, S03SIM-EA-FSCN-01:ROI3:BinY_RBV -# % gui, FSCN1.rois.roi3, demand, Start Y, S03SIM-EA-FSCN-01:ROI3:MinY -# % gui, FSCN1.rois.roi3, readback, Start Y, S03SIM-EA-FSCN-01:ROI3:MinY_RBV -# % gui, FSCN1.rois.roi3, demand, Size Y, S03SIM-EA-FSCN-01:ROI3:SizeY -# % gui, FSCN1.rois.roi3, readback, Size Y, S03SIM-EA-FSCN-01:ROI3:SizeY_RBV -# % gui, FSCN1.rois.roi3, enum, Reverse Y, S03SIM-EA-FSCN-01:ROI3:ReverseY -# % gui, FSCN1.rois.roi3, readback, Reverse Y, S03SIM-EA-FSCN-01:ROI3:ReverseY_RBV -# % gui, FSCN1.rois.roi3, readback, Bytes Y, S03SIM-EA-FSCN-01:ROI3:ArraySizeY_RBV -# Z region -# % gui, FSCN1.rois.roi3, groupHeading, Z Region -# % gui, FSCN1.rois.roi3, enum, Z, S03SIM-EA-FSCN-01:ROI3:EnableZ -# % gui, FSCN1.rois.roi3, readback, Z, S03SIM-EA-FSCN-01:ROI3:EnableZ_RBV -# % gui, FSCN1.rois.roi3, enum, Autosize Z, S03SIM-EA-FSCN-01:ROI3:AutoSizeZ -# % gui, FSCN1.rois.roi3, readback, Autosize Z, S03SIM-EA-FSCN-01:ROI3:AutoSizeZ_RBV -# % gui, FSCN1.rois.roi3, readback, Input size Z, S03SIM-EA-FSCN-01:ROI3:MaxSizeZ_RBV -# % gui, FSCN1.rois.roi3, demand, Binning Z, S03SIM-EA-FSCN-01:ROI3:BinZ -# % gui, FSCN1.rois.roi3, readback, Binning Z, S03SIM-EA-FSCN-01:ROI3:BinZ_RBV -# % gui, FSCN1.rois.roi3, demand, Start Z, S03SIM-EA-FSCN-01:ROI3:MinZ -# % gui, FSCN1.rois.roi3, readback, Start Z, S03SIM-EA-FSCN-01:ROI3:MinZ_RBV -# % gui, FSCN1.rois.roi3, demand, Size Z, S03SIM-EA-FSCN-01:ROI3:SizeZ -# % gui, FSCN1.rois.roi3, readback, Size Z, S03SIM-EA-FSCN-01:ROI3:SizeZ_RBV -# % gui, FSCN1.rois.roi3, enum, Reverse Z, S03SIM-EA-FSCN-01:ROI3:ReverseZ -# % gui, FSCN1.rois.roi3, readback, Reverse Z, S03SIM-EA-FSCN-01:ROI3:ReverseZ_RBV -# % gui, FSCN1.rois.roi3, readback, Bytes Z, S03SIM-EA-FSCN-01:ROI3:ArraySizeZ_RBV -# Memory -# % gui, FSCN1.rois.roi3, groupHeading, Memory -# % gui, FSCN1.rois.roi3, readback, Max memory, S03SIM-EA-FSCN-01:ROI3:PoolMaxMem -# % gui, FSCN1.rois.roi3, readback, Max buffers, S03SIM-EA-FSCN-01:ROI3:PoolMaxBuffers -# % gui, FSCN1.rois.roi3, readback, Used memory, S03SIM-EA-FSCN-01:ROI3:PoolUsedMem -# % gui, FSCN1.rois.roi3, readback, Allocated buffers, S03SIM-EA-FSCN-01:ROI3:PoolAllocBuffers -# % gui, FSCN1.rois.roi3, readback, Free buffers, S03SIM-EA-FSCN-01:ROI3:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI3:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI3:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI3:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI3:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI3:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI3:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI3:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI3:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ROI3:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI3:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI3:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI3:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:ROI3:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI3:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI3:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI3:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:ROI3:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:ROI3:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI3:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:ROI3:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:ROI3:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI3:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-01:ROI3:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-01:ROI3:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ROI3:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI3:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ROI3:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI3:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-01:ROI3:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI3:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-01:ROI3:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:ROI3:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI3:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:ROI3:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:ROI3:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI3:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI3:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:ROI3:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:ROI3:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-01:ROI3:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-01:ROI3:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI3:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-01:ROI3:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI3:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:ROI3:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI3:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI3:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-01:ROI3:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)NDARRAY_PORT") - field(VAL, "FSCN1.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI3:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI3:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI3:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI3:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI3:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI3:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI3:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:ROI3:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI3:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI3:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:ROI3:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-01:ROI3:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI3:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI3:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI3:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-01:ROI3:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI3:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI3:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI3:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-01:ROI3:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI3:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI3:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:ROI3:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI3:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:ROI3:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:ROI3:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI3:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:ROI3:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:ROI3:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI3:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:ROI3:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:ROI3:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:ROI3:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI3:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:ROI3:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI3:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI3:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI3:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI3:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI3:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:ROI3:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI3:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI3:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI3:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:ROI3:AsynIO") -{ - field(PORT, "FSCN1.rois.roi3") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the label for the ROI # -################################################################### -record(stringout, "S03SIM-EA-FSCN-01:ROI3:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)NAME") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI3:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)NAME") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the ROI definition # -# including binning, region start and size # -################################################################### - -record(longout, "S03SIM-EA-FSCN-01:ROI3:BinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM0_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:BinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM0_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI3:BinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM1_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:BinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM1_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI3:BinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM2_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:BinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM2_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI3:MinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM0_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:MinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM0_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI3:MinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM1_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:MinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM1_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI3:MinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM2_MIN") - field(LOPR, "1") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:MinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM2_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI3:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM0_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM0_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI3:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM1_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM1_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI3:SizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM2_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:SizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM2_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI3:AutoSizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM0_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI3:AutoSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM0_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI3:AutoSizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM1_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI3:AutoSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM1_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI3:AutoSizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM2_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI3:AutoSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM2_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM0_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM1_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:MaxSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM2_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI3:ReverseX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM0_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI3:ReverseX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM0_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI3:ReverseY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM1_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI3:ReverseY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM1_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI3:ReverseZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM2_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI3:ReverseZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM2_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI3:EnableX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM0_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI3:EnableX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM0_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI3:EnableY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM1_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI3:EnableY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM1_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI3:EnableZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)DIM2_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI3:EnableZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)DIM2_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the scaling of the data. Useful when # -# binning or converting data types # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ROI3:EnableScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)ENABLE_SCALE") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI3:EnableScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)ENABLE_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI3:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)SCALE_VALUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI3:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)SCALE_VALUE") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ROI3:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI3:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-01:ROI3:MaxX") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:ROI3:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:ROI3:MaxX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:ROI3:MinX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:ROI3:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI3:MaxY") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI3:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:ROI3:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:ROI3:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:ROI3:MaxY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:ROI3:MinY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:ROI3:SizeY.HOPR NPP") -} - -################################################################### -# These records whether dimensions of 1 are collapsed (removed) # # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ROI3:CollapseDims") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi3,0,1)COLLAPSE_DIMS") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI3:CollapseDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi3,0,1)COLLAPSE_DIMS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -#=================================================================# -# Template file: NDROI.template -# Database for ND ROIs -# Mark Rivers -# April 22, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, FSCN1.rois.roi4, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-01,R=:ROI4: - -# This associates a BOY screen with the template -# % gui, FSCN1.rois.roi4, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-01, R=:ROI4:, DESC=Region of Interest -# % gui, FSCN1.rois.roi4, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:ROI4:, DESC=Region of Interest -# % gui, FSCN1.rois.roi4, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-01, R=:ROI4:, DESC=Region of Interest - -# % gui, FSCN1.rois.roi4, groupHeading, Info -# % gui, FSCN1.rois.roi4, readback, Port name, S03SIM-EA-FSCN-01:ROI4:PortName_RBV -# % gui, FSCN1.rois.roi4, readback, Plugin type, S03SIM-EA-FSCN-01:ROI4:PluginType_RBV -# Input -# % gui, FSCN1.rois.roi4, demandString, Input, S03SIM-EA-FSCN-01:ROI4:NDArrayPort -# % gui, FSCN1.rois.roi4, readback, Input, S03SIM-EA-FSCN-01:ROI4:NDArrayPort_RBV - -# % gui, FSCN1.rois.roi4, groupHeading, Callback -# % gui, FSCN1.rois.roi4, enum, Callbacks, S03SIM-EA-FSCN-01:ROI4:EnableCallbacks -# % gui, FSCN1.rois.roi4, statusbits, Callbacks, S03SIM-EA-FSCN-01:ROI4:EnableCallbacks_RBV -# % gui, FSCN1.rois.roi4, demand, Min Callback Time, S03SIM-EA-FSCN-01:ROI4:MinCallbackTime -# % gui, FSCN1.rois.roi4, readback, Min Callback Time, S03SIM-EA-FSCN-01:ROI4:MinCallbackTime_RBV -# % gui, FSCN1.rois.roi4, enum, Block Callbacks, S03SIM-EA-FSCN-01:ROI4:BlockingCallbacks -# % gui, FSCN1.rois.roi4, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:ROI4:BlockingCallbacks_RBV - -# % gui, FSCN1.rois.roi4, groupHeading, Counters -# % gui, FSCN1.rois.roi4, demand, Array Counter, S03SIM-EA-FSCN-01:ROI4:ArrayCounter -# % gui, FSCN1.rois.roi4, readback, Array Counter, S03SIM-EA-FSCN-01:ROI4:ArrayCounter_RBV -# % gui, FSCN1.rois.roi4, readback, Array Rate (fps), S03SIM-EA-FSCN-01:ROI4:ArrayRate_RBV -# % gui, FSCN1.rois.roi4, readback, Queue Use, S03SIM-EA-FSCN-01:ROI4:QueueUse -# % gui, FSCN1.rois.roi4, readback, Queue Size, S03SIM-EA-FSCN-01:ROI4:QueueSize -# % gui, FSCN1.rois.roi4, demand, Dropped Arrays, S03SIM-EA-FSCN-01:ROI4:DroppedArrays -# % gui, FSCN1.rois.roi4, readback, Dropped Arrays, S03SIM-EA-FSCN-01:ROI4:DroppedArrays_RBV - -# % gui, FSCN1.rois.roi4, groupHeading, Array Settings -# % gui, FSCN1.rois.roi4, readback, Num Dimensions, S03SIM-EA-FSCN-01:ROI4:NDimensions_RBV -# % gui, FSCN1.rois.roi4, readback, Dim 0 Size, S03SIM-EA-FSCN-01:ROI4:ArraySize0_RBV -# % gui, FSCN1.rois.roi4, readback, Dim 1 Size, S03SIM-EA-FSCN-01:ROI4:ArraySize1_RBV -# % gui, FSCN1.rois.roi4, readback, Dim 2 Size, S03SIM-EA-FSCN-01:ROI4:ArraySize2_RBV -# % gui, FSCN1.rois.roi4, readback, Input Data Type, S03SIM-EA-FSCN-01:ROI4:DataType_RBV -# % gui, FSCN1.rois.roi4, readback, Colour Mode, S03SIM-EA-FSCN-01:ROI4:ColorMode_RBV -# % gui, FSCN1.rois.roi4, readback, Bayer Pattern, S03SIM-EA-FSCN-01:ROI4:BayerPattern_RBV -# % gui, FSCN1.rois.roi4, readback, Unique id, S03SIM-EA-FSCN-01:ROI4:UniqueId_RBV -# % gui, FSCN1.rois.roi4, readback, Timestamp, S03SIM-EA-FSCN-01:ROI4:TimeStamp_RBV - -# Output -# % gui, FSCN1.rois.roi4, groupHeading, Output -# % gui, FSCN1.rois.roi4, demand, Name, S03SIM-EA-FSCN-01:ROI4:Name -# % gui, FSCN1.rois.roi4, enum, Out data type, S03SIM-EA-FSCN-01:ROI4:DataTypeOut -# % gui, FSCN1.rois.roi4, readback, Out data type, S03SIM-EA-FSCN-01:ROI4:DataTypeOut_RBV -# % gui, FSCN1.rois.roi4, demand, Attributes file, S03SIM-EA-FSCN-01:ROI4:NDAttributesFile -# Scaling -# % gui, FSCN1.rois.roi4, groupHeading, Scaling -# % gui, FSCN1.rois.roi4, enum, Enable Scaling, S03SIM-EA-FSCN-01:ROI4:EnableScale -# % gui, FSCN1.rois.roi4, readback, Enable Scaling, S03SIM-EA-FSCN-01:ROI4:EnableScale_RBV -# % gui, FSCN1.rois.roi4, demand, Scale Divisor, S03SIM-EA-FSCN-01:ROI4:Scale -# % gui, FSCN1.rois.roi4, readback, Scale Divisor, S03SIM-EA-FSCN-01:ROI4:Scale_RBV -# X region -# % gui, FSCN1.rois.roi4, groupHeading, X Region -# % gui, FSCN1.rois.roi4, enum, X, S03SIM-EA-FSCN-01:ROI4:EnableX -# % gui, FSCN1.rois.roi4, readback, X, S03SIM-EA-FSCN-01:ROI4:EnableX_RBV -# % gui, FSCN1.rois.roi4, enum, Autosize X, S03SIM-EA-FSCN-01:ROI4:AutoSizeX -# % gui, FSCN1.rois.roi4, readback, Autosize X, S03SIM-EA-FSCN-01:ROI4:AutoSizeX_RBV -# % gui, FSCN1.rois.roi4, readback, Input Size X, S03SIM-EA-FSCN-01:ROI4:MaxSizeX_RBV -# % gui, FSCN1.rois.roi4, demand, Binning X, S03SIM-EA-FSCN-01:ROI4:BinX -# % gui, FSCN1.rois.roi4, readback, Binning X, S03SIM-EA-FSCN-01:ROI4:BinX_RBV -# % gui, FSCN1.rois.roi4, demand, Start X, S03SIM-EA-FSCN-01:ROI4:MinX -# % gui, FSCN1.rois.roi4, readback, Start X, S03SIM-EA-FSCN-01:ROI4:MinX_RBV -# % gui, FSCN1.rois.roi4, demand, Size X, S03SIM-EA-FSCN-01:ROI4:SizeX -# % gui, FSCN1.rois.roi4, readback, Size X, S03SIM-EA-FSCN-01:ROI4:SizeX_RBV -# % gui, FSCN1.rois.roi4, enum, Reverse X, S03SIM-EA-FSCN-01:ROI4:ReverseX -# % gui, FSCN1.rois.roi4, readback, Reverse X, S03SIM-EA-FSCN-01:ROI4:ReverseX_RBV -# % gui, FSCN1.rois.roi4, readback, Bytes X, S03SIM-EA-FSCN-01:ROI4:ArraySizeX_RBV -# Y region -# % gui, FSCN1.rois.roi4, groupHeading, Y Region -# % gui, FSCN1.rois.roi4, enum, Y, S03SIM-EA-FSCN-01:ROI4:EnableY -# % gui, FSCN1.rois.roi4, readback, Y, S03SIM-EA-FSCN-01:ROI4:EnableY_RBV -# % gui, FSCN1.rois.roi4, enum, Autosize Y, S03SIM-EA-FSCN-01:ROI4:AutoSizeY -# % gui, FSCN1.rois.roi4, readback, Autosize Y, S03SIM-EA-FSCN-01:ROI4:AutoSizeY_RBV -# % gui, FSCN1.rois.roi4, readback, Input size Y, S03SIM-EA-FSCN-01:ROI4:MaxSizeY_RBV -# % gui, FSCN1.rois.roi4, demand, Binning Y, S03SIM-EA-FSCN-01:ROI4:BinY -# % gui, FSCN1.rois.roi4, readback, Binning Y, S03SIM-EA-FSCN-01:ROI4:BinY_RBV -# % gui, FSCN1.rois.roi4, demand, Start Y, S03SIM-EA-FSCN-01:ROI4:MinY -# % gui, FSCN1.rois.roi4, readback, Start Y, S03SIM-EA-FSCN-01:ROI4:MinY_RBV -# % gui, FSCN1.rois.roi4, demand, Size Y, S03SIM-EA-FSCN-01:ROI4:SizeY -# % gui, FSCN1.rois.roi4, readback, Size Y, S03SIM-EA-FSCN-01:ROI4:SizeY_RBV -# % gui, FSCN1.rois.roi4, enum, Reverse Y, S03SIM-EA-FSCN-01:ROI4:ReverseY -# % gui, FSCN1.rois.roi4, readback, Reverse Y, S03SIM-EA-FSCN-01:ROI4:ReverseY_RBV -# % gui, FSCN1.rois.roi4, readback, Bytes Y, S03SIM-EA-FSCN-01:ROI4:ArraySizeY_RBV -# Z region -# % gui, FSCN1.rois.roi4, groupHeading, Z Region -# % gui, FSCN1.rois.roi4, enum, Z, S03SIM-EA-FSCN-01:ROI4:EnableZ -# % gui, FSCN1.rois.roi4, readback, Z, S03SIM-EA-FSCN-01:ROI4:EnableZ_RBV -# % gui, FSCN1.rois.roi4, enum, Autosize Z, S03SIM-EA-FSCN-01:ROI4:AutoSizeZ -# % gui, FSCN1.rois.roi4, readback, Autosize Z, S03SIM-EA-FSCN-01:ROI4:AutoSizeZ_RBV -# % gui, FSCN1.rois.roi4, readback, Input size Z, S03SIM-EA-FSCN-01:ROI4:MaxSizeZ_RBV -# % gui, FSCN1.rois.roi4, demand, Binning Z, S03SIM-EA-FSCN-01:ROI4:BinZ -# % gui, FSCN1.rois.roi4, readback, Binning Z, S03SIM-EA-FSCN-01:ROI4:BinZ_RBV -# % gui, FSCN1.rois.roi4, demand, Start Z, S03SIM-EA-FSCN-01:ROI4:MinZ -# % gui, FSCN1.rois.roi4, readback, Start Z, S03SIM-EA-FSCN-01:ROI4:MinZ_RBV -# % gui, FSCN1.rois.roi4, demand, Size Z, S03SIM-EA-FSCN-01:ROI4:SizeZ -# % gui, FSCN1.rois.roi4, readback, Size Z, S03SIM-EA-FSCN-01:ROI4:SizeZ_RBV -# % gui, FSCN1.rois.roi4, enum, Reverse Z, S03SIM-EA-FSCN-01:ROI4:ReverseZ -# % gui, FSCN1.rois.roi4, readback, Reverse Z, S03SIM-EA-FSCN-01:ROI4:ReverseZ_RBV -# % gui, FSCN1.rois.roi4, readback, Bytes Z, S03SIM-EA-FSCN-01:ROI4:ArraySizeZ_RBV -# Memory -# % gui, FSCN1.rois.roi4, groupHeading, Memory -# % gui, FSCN1.rois.roi4, readback, Max memory, S03SIM-EA-FSCN-01:ROI4:PoolMaxMem -# % gui, FSCN1.rois.roi4, readback, Max buffers, S03SIM-EA-FSCN-01:ROI4:PoolMaxBuffers -# % gui, FSCN1.rois.roi4, readback, Used memory, S03SIM-EA-FSCN-01:ROI4:PoolUsedMem -# % gui, FSCN1.rois.roi4, readback, Allocated buffers, S03SIM-EA-FSCN-01:ROI4:PoolAllocBuffers -# % gui, FSCN1.rois.roi4, readback, Free buffers, S03SIM-EA-FSCN-01:ROI4:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI4:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI4:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI4:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI4:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI4:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI4:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI4:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI4:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ROI4:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI4:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI4:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI4:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:ROI4:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI4:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI4:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI4:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:ROI4:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:ROI4:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI4:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:ROI4:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:ROI4:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI4:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-01:ROI4:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-01:ROI4:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ROI4:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI4:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ROI4:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI4:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-01:ROI4:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI4:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-01:ROI4:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:ROI4:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI4:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:ROI4:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:ROI4:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI4:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI4:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:ROI4:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:ROI4:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-01:ROI4:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-01:ROI4:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI4:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-01:ROI4:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI4:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:ROI4:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI4:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI4:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-01:ROI4:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)NDARRAY_PORT") - field(VAL, "FSCN1.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI4:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI4:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI4:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI4:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI4:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI4:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI4:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:ROI4:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI4:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI4:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:ROI4:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-01:ROI4:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI4:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI4:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI4:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-01:ROI4:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI4:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI4:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI4:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-01:ROI4:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI4:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI4:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:ROI4:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI4:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:ROI4:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:ROI4:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI4:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:ROI4:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:ROI4:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI4:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:ROI4:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:ROI4:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:ROI4:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI4:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:ROI4:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI4:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI4:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI4:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI4:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI4:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:ROI4:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI4:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI4:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI4:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:ROI4:AsynIO") -{ - field(PORT, "FSCN1.rois.roi4") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the label for the ROI # -################################################################### -record(stringout, "S03SIM-EA-FSCN-01:ROI4:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)NAME") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI4:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)NAME") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the ROI definition # -# including binning, region start and size # -################################################################### - -record(longout, "S03SIM-EA-FSCN-01:ROI4:BinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM0_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:BinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM0_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI4:BinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM1_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:BinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM1_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI4:BinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM2_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:BinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM2_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI4:MinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM0_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:MinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM0_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI4:MinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM1_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:MinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM1_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI4:MinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM2_MIN") - field(LOPR, "1") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:MinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM2_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI4:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM0_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM0_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI4:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM1_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM1_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI4:SizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM2_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:SizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM2_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI4:AutoSizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM0_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI4:AutoSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM0_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI4:AutoSizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM1_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI4:AutoSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM1_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI4:AutoSizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM2_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI4:AutoSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM2_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM0_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM1_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:MaxSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM2_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI4:ReverseX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM0_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI4:ReverseX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM0_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI4:ReverseY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM1_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI4:ReverseY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM1_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI4:ReverseZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM2_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI4:ReverseZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM2_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI4:EnableX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM0_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI4:EnableX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM0_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI4:EnableY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM1_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI4:EnableY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM1_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI4:EnableZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)DIM2_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI4:EnableZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)DIM2_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the scaling of the data. Useful when # -# binning or converting data types # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ROI4:EnableScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)ENABLE_SCALE") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI4:EnableScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)ENABLE_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI4:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)SCALE_VALUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI4:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)SCALE_VALUE") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ROI4:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI4:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-01:ROI4:MaxX") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:ROI4:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:ROI4:MaxX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:ROI4:MinX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:ROI4:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI4:MaxY") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI4:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:ROI4:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:ROI4:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:ROI4:MaxY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:ROI4:MinY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:ROI4:SizeY.HOPR NPP") -} - -################################################################### -# These records whether dimensions of 1 are collapsed (removed) # # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ROI4:CollapseDims") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi4,0,1)COLLAPSE_DIMS") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI4:CollapseDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi4,0,1)COLLAPSE_DIMS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -#=================================================================# -# Template file: NDROI.template -# Database for ND ROIs -# Mark Rivers -# April 22, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, FSCN1.rois.roi5, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-01,R=:ROI5: - -# This associates a BOY screen with the template -# % gui, FSCN1.rois.roi5, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-01, R=:ROI5:, DESC=Region of Interest -# % gui, FSCN1.rois.roi5, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:ROI5:, DESC=Region of Interest -# % gui, FSCN1.rois.roi5, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-01, R=:ROI5:, DESC=Region of Interest - -# % gui, FSCN1.rois.roi5, groupHeading, Info -# % gui, FSCN1.rois.roi5, readback, Port name, S03SIM-EA-FSCN-01:ROI5:PortName_RBV -# % gui, FSCN1.rois.roi5, readback, Plugin type, S03SIM-EA-FSCN-01:ROI5:PluginType_RBV -# Input -# % gui, FSCN1.rois.roi5, demandString, Input, S03SIM-EA-FSCN-01:ROI5:NDArrayPort -# % gui, FSCN1.rois.roi5, readback, Input, S03SIM-EA-FSCN-01:ROI5:NDArrayPort_RBV - -# % gui, FSCN1.rois.roi5, groupHeading, Callback -# % gui, FSCN1.rois.roi5, enum, Callbacks, S03SIM-EA-FSCN-01:ROI5:EnableCallbacks -# % gui, FSCN1.rois.roi5, statusbits, Callbacks, S03SIM-EA-FSCN-01:ROI5:EnableCallbacks_RBV -# % gui, FSCN1.rois.roi5, demand, Min Callback Time, S03SIM-EA-FSCN-01:ROI5:MinCallbackTime -# % gui, FSCN1.rois.roi5, readback, Min Callback Time, S03SIM-EA-FSCN-01:ROI5:MinCallbackTime_RBV -# % gui, FSCN1.rois.roi5, enum, Block Callbacks, S03SIM-EA-FSCN-01:ROI5:BlockingCallbacks -# % gui, FSCN1.rois.roi5, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:ROI5:BlockingCallbacks_RBV - -# % gui, FSCN1.rois.roi5, groupHeading, Counters -# % gui, FSCN1.rois.roi5, demand, Array Counter, S03SIM-EA-FSCN-01:ROI5:ArrayCounter -# % gui, FSCN1.rois.roi5, readback, Array Counter, S03SIM-EA-FSCN-01:ROI5:ArrayCounter_RBV -# % gui, FSCN1.rois.roi5, readback, Array Rate (fps), S03SIM-EA-FSCN-01:ROI5:ArrayRate_RBV -# % gui, FSCN1.rois.roi5, readback, Queue Use, S03SIM-EA-FSCN-01:ROI5:QueueUse -# % gui, FSCN1.rois.roi5, readback, Queue Size, S03SIM-EA-FSCN-01:ROI5:QueueSize -# % gui, FSCN1.rois.roi5, demand, Dropped Arrays, S03SIM-EA-FSCN-01:ROI5:DroppedArrays -# % gui, FSCN1.rois.roi5, readback, Dropped Arrays, S03SIM-EA-FSCN-01:ROI5:DroppedArrays_RBV - -# % gui, FSCN1.rois.roi5, groupHeading, Array Settings -# % gui, FSCN1.rois.roi5, readback, Num Dimensions, S03SIM-EA-FSCN-01:ROI5:NDimensions_RBV -# % gui, FSCN1.rois.roi5, readback, Dim 0 Size, S03SIM-EA-FSCN-01:ROI5:ArraySize0_RBV -# % gui, FSCN1.rois.roi5, readback, Dim 1 Size, S03SIM-EA-FSCN-01:ROI5:ArraySize1_RBV -# % gui, FSCN1.rois.roi5, readback, Dim 2 Size, S03SIM-EA-FSCN-01:ROI5:ArraySize2_RBV -# % gui, FSCN1.rois.roi5, readback, Input Data Type, S03SIM-EA-FSCN-01:ROI5:DataType_RBV -# % gui, FSCN1.rois.roi5, readback, Colour Mode, S03SIM-EA-FSCN-01:ROI5:ColorMode_RBV -# % gui, FSCN1.rois.roi5, readback, Bayer Pattern, S03SIM-EA-FSCN-01:ROI5:BayerPattern_RBV -# % gui, FSCN1.rois.roi5, readback, Unique id, S03SIM-EA-FSCN-01:ROI5:UniqueId_RBV -# % gui, FSCN1.rois.roi5, readback, Timestamp, S03SIM-EA-FSCN-01:ROI5:TimeStamp_RBV - -# Output -# % gui, FSCN1.rois.roi5, groupHeading, Output -# % gui, FSCN1.rois.roi5, demand, Name, S03SIM-EA-FSCN-01:ROI5:Name -# % gui, FSCN1.rois.roi5, enum, Out data type, S03SIM-EA-FSCN-01:ROI5:DataTypeOut -# % gui, FSCN1.rois.roi5, readback, Out data type, S03SIM-EA-FSCN-01:ROI5:DataTypeOut_RBV -# % gui, FSCN1.rois.roi5, demand, Attributes file, S03SIM-EA-FSCN-01:ROI5:NDAttributesFile -# Scaling -# % gui, FSCN1.rois.roi5, groupHeading, Scaling -# % gui, FSCN1.rois.roi5, enum, Enable Scaling, S03SIM-EA-FSCN-01:ROI5:EnableScale -# % gui, FSCN1.rois.roi5, readback, Enable Scaling, S03SIM-EA-FSCN-01:ROI5:EnableScale_RBV -# % gui, FSCN1.rois.roi5, demand, Scale Divisor, S03SIM-EA-FSCN-01:ROI5:Scale -# % gui, FSCN1.rois.roi5, readback, Scale Divisor, S03SIM-EA-FSCN-01:ROI5:Scale_RBV -# X region -# % gui, FSCN1.rois.roi5, groupHeading, X Region -# % gui, FSCN1.rois.roi5, enum, X, S03SIM-EA-FSCN-01:ROI5:EnableX -# % gui, FSCN1.rois.roi5, readback, X, S03SIM-EA-FSCN-01:ROI5:EnableX_RBV -# % gui, FSCN1.rois.roi5, enum, Autosize X, S03SIM-EA-FSCN-01:ROI5:AutoSizeX -# % gui, FSCN1.rois.roi5, readback, Autosize X, S03SIM-EA-FSCN-01:ROI5:AutoSizeX_RBV -# % gui, FSCN1.rois.roi5, readback, Input Size X, S03SIM-EA-FSCN-01:ROI5:MaxSizeX_RBV -# % gui, FSCN1.rois.roi5, demand, Binning X, S03SIM-EA-FSCN-01:ROI5:BinX -# % gui, FSCN1.rois.roi5, readback, Binning X, S03SIM-EA-FSCN-01:ROI5:BinX_RBV -# % gui, FSCN1.rois.roi5, demand, Start X, S03SIM-EA-FSCN-01:ROI5:MinX -# % gui, FSCN1.rois.roi5, readback, Start X, S03SIM-EA-FSCN-01:ROI5:MinX_RBV -# % gui, FSCN1.rois.roi5, demand, Size X, S03SIM-EA-FSCN-01:ROI5:SizeX -# % gui, FSCN1.rois.roi5, readback, Size X, S03SIM-EA-FSCN-01:ROI5:SizeX_RBV -# % gui, FSCN1.rois.roi5, enum, Reverse X, S03SIM-EA-FSCN-01:ROI5:ReverseX -# % gui, FSCN1.rois.roi5, readback, Reverse X, S03SIM-EA-FSCN-01:ROI5:ReverseX_RBV -# % gui, FSCN1.rois.roi5, readback, Bytes X, S03SIM-EA-FSCN-01:ROI5:ArraySizeX_RBV -# Y region -# % gui, FSCN1.rois.roi5, groupHeading, Y Region -# % gui, FSCN1.rois.roi5, enum, Y, S03SIM-EA-FSCN-01:ROI5:EnableY -# % gui, FSCN1.rois.roi5, readback, Y, S03SIM-EA-FSCN-01:ROI5:EnableY_RBV -# % gui, FSCN1.rois.roi5, enum, Autosize Y, S03SIM-EA-FSCN-01:ROI5:AutoSizeY -# % gui, FSCN1.rois.roi5, readback, Autosize Y, S03SIM-EA-FSCN-01:ROI5:AutoSizeY_RBV -# % gui, FSCN1.rois.roi5, readback, Input size Y, S03SIM-EA-FSCN-01:ROI5:MaxSizeY_RBV -# % gui, FSCN1.rois.roi5, demand, Binning Y, S03SIM-EA-FSCN-01:ROI5:BinY -# % gui, FSCN1.rois.roi5, readback, Binning Y, S03SIM-EA-FSCN-01:ROI5:BinY_RBV -# % gui, FSCN1.rois.roi5, demand, Start Y, S03SIM-EA-FSCN-01:ROI5:MinY -# % gui, FSCN1.rois.roi5, readback, Start Y, S03SIM-EA-FSCN-01:ROI5:MinY_RBV -# % gui, FSCN1.rois.roi5, demand, Size Y, S03SIM-EA-FSCN-01:ROI5:SizeY -# % gui, FSCN1.rois.roi5, readback, Size Y, S03SIM-EA-FSCN-01:ROI5:SizeY_RBV -# % gui, FSCN1.rois.roi5, enum, Reverse Y, S03SIM-EA-FSCN-01:ROI5:ReverseY -# % gui, FSCN1.rois.roi5, readback, Reverse Y, S03SIM-EA-FSCN-01:ROI5:ReverseY_RBV -# % gui, FSCN1.rois.roi5, readback, Bytes Y, S03SIM-EA-FSCN-01:ROI5:ArraySizeY_RBV -# Z region -# % gui, FSCN1.rois.roi5, groupHeading, Z Region -# % gui, FSCN1.rois.roi5, enum, Z, S03SIM-EA-FSCN-01:ROI5:EnableZ -# % gui, FSCN1.rois.roi5, readback, Z, S03SIM-EA-FSCN-01:ROI5:EnableZ_RBV -# % gui, FSCN1.rois.roi5, enum, Autosize Z, S03SIM-EA-FSCN-01:ROI5:AutoSizeZ -# % gui, FSCN1.rois.roi5, readback, Autosize Z, S03SIM-EA-FSCN-01:ROI5:AutoSizeZ_RBV -# % gui, FSCN1.rois.roi5, readback, Input size Z, S03SIM-EA-FSCN-01:ROI5:MaxSizeZ_RBV -# % gui, FSCN1.rois.roi5, demand, Binning Z, S03SIM-EA-FSCN-01:ROI5:BinZ -# % gui, FSCN1.rois.roi5, readback, Binning Z, S03SIM-EA-FSCN-01:ROI5:BinZ_RBV -# % gui, FSCN1.rois.roi5, demand, Start Z, S03SIM-EA-FSCN-01:ROI5:MinZ -# % gui, FSCN1.rois.roi5, readback, Start Z, S03SIM-EA-FSCN-01:ROI5:MinZ_RBV -# % gui, FSCN1.rois.roi5, demand, Size Z, S03SIM-EA-FSCN-01:ROI5:SizeZ -# % gui, FSCN1.rois.roi5, readback, Size Z, S03SIM-EA-FSCN-01:ROI5:SizeZ_RBV -# % gui, FSCN1.rois.roi5, enum, Reverse Z, S03SIM-EA-FSCN-01:ROI5:ReverseZ -# % gui, FSCN1.rois.roi5, readback, Reverse Z, S03SIM-EA-FSCN-01:ROI5:ReverseZ_RBV -# % gui, FSCN1.rois.roi5, readback, Bytes Z, S03SIM-EA-FSCN-01:ROI5:ArraySizeZ_RBV -# Memory -# % gui, FSCN1.rois.roi5, groupHeading, Memory -# % gui, FSCN1.rois.roi5, readback, Max memory, S03SIM-EA-FSCN-01:ROI5:PoolMaxMem -# % gui, FSCN1.rois.roi5, readback, Max buffers, S03SIM-EA-FSCN-01:ROI5:PoolMaxBuffers -# % gui, FSCN1.rois.roi5, readback, Used memory, S03SIM-EA-FSCN-01:ROI5:PoolUsedMem -# % gui, FSCN1.rois.roi5, readback, Allocated buffers, S03SIM-EA-FSCN-01:ROI5:PoolAllocBuffers -# % gui, FSCN1.rois.roi5, readback, Free buffers, S03SIM-EA-FSCN-01:ROI5:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI5:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI5:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI5:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI5:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI5:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI5:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI5:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI5:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ROI5:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI5:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI5:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI5:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:ROI5:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI5:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI5:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI5:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:ROI5:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:ROI5:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI5:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:ROI5:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:ROI5:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI5:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-01:ROI5:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-01:ROI5:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ROI5:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI5:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ROI5:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI5:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-01:ROI5:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI5:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-01:ROI5:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:ROI5:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI5:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:ROI5:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:ROI5:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI5:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI5:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:ROI5:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:ROI5:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-01:ROI5:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-01:ROI5:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI5:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-01:ROI5:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI5:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:ROI5:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI5:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI5:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-01:ROI5:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)NDARRAY_PORT") - field(VAL, "FSCN1.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI5:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI5:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI5:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI5:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI5:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI5:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI5:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:ROI5:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI5:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI5:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:ROI5:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-01:ROI5:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI5:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI5:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI5:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-01:ROI5:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI5:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI5:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI5:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-01:ROI5:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI5:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI5:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:ROI5:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI5:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:ROI5:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:ROI5:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI5:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:ROI5:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:ROI5:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI5:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:ROI5:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:ROI5:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:ROI5:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI5:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:ROI5:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI5:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI5:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI5:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI5:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI5:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:ROI5:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI5:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI5:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI5:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:ROI5:AsynIO") -{ - field(PORT, "FSCN1.rois.roi5") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the label for the ROI # -################################################################### -record(stringout, "S03SIM-EA-FSCN-01:ROI5:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)NAME") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI5:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)NAME") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the ROI definition # -# including binning, region start and size # -################################################################### - -record(longout, "S03SIM-EA-FSCN-01:ROI5:BinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM0_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:BinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM0_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI5:BinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM1_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:BinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM1_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI5:BinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM2_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:BinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM2_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI5:MinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM0_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:MinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM0_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI5:MinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM1_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:MinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM1_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI5:MinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM2_MIN") - field(LOPR, "1") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:MinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM2_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI5:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM0_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM0_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI5:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM1_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM1_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI5:SizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM2_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:SizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM2_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI5:AutoSizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM0_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI5:AutoSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM0_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI5:AutoSizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM1_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI5:AutoSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM1_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI5:AutoSizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM2_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI5:AutoSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM2_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM0_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM1_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:MaxSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM2_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI5:ReverseX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM0_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI5:ReverseX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM0_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI5:ReverseY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM1_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI5:ReverseY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM1_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI5:ReverseZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM2_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI5:ReverseZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM2_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI5:EnableX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM0_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI5:EnableX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM0_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI5:EnableY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM1_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI5:EnableY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM1_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI5:EnableZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)DIM2_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI5:EnableZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)DIM2_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the scaling of the data. Useful when # -# binning or converting data types # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ROI5:EnableScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)ENABLE_SCALE") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI5:EnableScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)ENABLE_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI5:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)SCALE_VALUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI5:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)SCALE_VALUE") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ROI5:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI5:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-01:ROI5:MaxX") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:ROI5:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:ROI5:MaxX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:ROI5:MinX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:ROI5:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI5:MaxY") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI5:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:ROI5:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:ROI5:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:ROI5:MaxY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:ROI5:MinY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:ROI5:SizeY.HOPR NPP") -} - -################################################################### -# These records whether dimensions of 1 are collapsed (removed) # # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ROI5:CollapseDims") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi5,0,1)COLLAPSE_DIMS") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI5:CollapseDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi5,0,1)COLLAPSE_DIMS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -#=================================================================# -# Template file: NDROI.template -# Database for ND ROIs -# Mark Rivers -# April 22, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, FSCN1.rois.roi6, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-01,R=:ROI6: - -# This associates a BOY screen with the template -# % gui, FSCN1.rois.roi6, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-01, R=:ROI6:, DESC=Region of Interest -# % gui, FSCN1.rois.roi6, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:ROI6:, DESC=Region of Interest -# % gui, FSCN1.rois.roi6, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-01, R=:ROI6:, DESC=Region of Interest - -# % gui, FSCN1.rois.roi6, groupHeading, Info -# % gui, FSCN1.rois.roi6, readback, Port name, S03SIM-EA-FSCN-01:ROI6:PortName_RBV -# % gui, FSCN1.rois.roi6, readback, Plugin type, S03SIM-EA-FSCN-01:ROI6:PluginType_RBV -# Input -# % gui, FSCN1.rois.roi6, demandString, Input, S03SIM-EA-FSCN-01:ROI6:NDArrayPort -# % gui, FSCN1.rois.roi6, readback, Input, S03SIM-EA-FSCN-01:ROI6:NDArrayPort_RBV - -# % gui, FSCN1.rois.roi6, groupHeading, Callback -# % gui, FSCN1.rois.roi6, enum, Callbacks, S03SIM-EA-FSCN-01:ROI6:EnableCallbacks -# % gui, FSCN1.rois.roi6, statusbits, Callbacks, S03SIM-EA-FSCN-01:ROI6:EnableCallbacks_RBV -# % gui, FSCN1.rois.roi6, demand, Min Callback Time, S03SIM-EA-FSCN-01:ROI6:MinCallbackTime -# % gui, FSCN1.rois.roi6, readback, Min Callback Time, S03SIM-EA-FSCN-01:ROI6:MinCallbackTime_RBV -# % gui, FSCN1.rois.roi6, enum, Block Callbacks, S03SIM-EA-FSCN-01:ROI6:BlockingCallbacks -# % gui, FSCN1.rois.roi6, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:ROI6:BlockingCallbacks_RBV - -# % gui, FSCN1.rois.roi6, groupHeading, Counters -# % gui, FSCN1.rois.roi6, demand, Array Counter, S03SIM-EA-FSCN-01:ROI6:ArrayCounter -# % gui, FSCN1.rois.roi6, readback, Array Counter, S03SIM-EA-FSCN-01:ROI6:ArrayCounter_RBV -# % gui, FSCN1.rois.roi6, readback, Array Rate (fps), S03SIM-EA-FSCN-01:ROI6:ArrayRate_RBV -# % gui, FSCN1.rois.roi6, readback, Queue Use, S03SIM-EA-FSCN-01:ROI6:QueueUse -# % gui, FSCN1.rois.roi6, readback, Queue Size, S03SIM-EA-FSCN-01:ROI6:QueueSize -# % gui, FSCN1.rois.roi6, demand, Dropped Arrays, S03SIM-EA-FSCN-01:ROI6:DroppedArrays -# % gui, FSCN1.rois.roi6, readback, Dropped Arrays, S03SIM-EA-FSCN-01:ROI6:DroppedArrays_RBV - -# % gui, FSCN1.rois.roi6, groupHeading, Array Settings -# % gui, FSCN1.rois.roi6, readback, Num Dimensions, S03SIM-EA-FSCN-01:ROI6:NDimensions_RBV -# % gui, FSCN1.rois.roi6, readback, Dim 0 Size, S03SIM-EA-FSCN-01:ROI6:ArraySize0_RBV -# % gui, FSCN1.rois.roi6, readback, Dim 1 Size, S03SIM-EA-FSCN-01:ROI6:ArraySize1_RBV -# % gui, FSCN1.rois.roi6, readback, Dim 2 Size, S03SIM-EA-FSCN-01:ROI6:ArraySize2_RBV -# % gui, FSCN1.rois.roi6, readback, Input Data Type, S03SIM-EA-FSCN-01:ROI6:DataType_RBV -# % gui, FSCN1.rois.roi6, readback, Colour Mode, S03SIM-EA-FSCN-01:ROI6:ColorMode_RBV -# % gui, FSCN1.rois.roi6, readback, Bayer Pattern, S03SIM-EA-FSCN-01:ROI6:BayerPattern_RBV -# % gui, FSCN1.rois.roi6, readback, Unique id, S03SIM-EA-FSCN-01:ROI6:UniqueId_RBV -# % gui, FSCN1.rois.roi6, readback, Timestamp, S03SIM-EA-FSCN-01:ROI6:TimeStamp_RBV - -# Output -# % gui, FSCN1.rois.roi6, groupHeading, Output -# % gui, FSCN1.rois.roi6, demand, Name, S03SIM-EA-FSCN-01:ROI6:Name -# % gui, FSCN1.rois.roi6, enum, Out data type, S03SIM-EA-FSCN-01:ROI6:DataTypeOut -# % gui, FSCN1.rois.roi6, readback, Out data type, S03SIM-EA-FSCN-01:ROI6:DataTypeOut_RBV -# % gui, FSCN1.rois.roi6, demand, Attributes file, S03SIM-EA-FSCN-01:ROI6:NDAttributesFile -# Scaling -# % gui, FSCN1.rois.roi6, groupHeading, Scaling -# % gui, FSCN1.rois.roi6, enum, Enable Scaling, S03SIM-EA-FSCN-01:ROI6:EnableScale -# % gui, FSCN1.rois.roi6, readback, Enable Scaling, S03SIM-EA-FSCN-01:ROI6:EnableScale_RBV -# % gui, FSCN1.rois.roi6, demand, Scale Divisor, S03SIM-EA-FSCN-01:ROI6:Scale -# % gui, FSCN1.rois.roi6, readback, Scale Divisor, S03SIM-EA-FSCN-01:ROI6:Scale_RBV -# X region -# % gui, FSCN1.rois.roi6, groupHeading, X Region -# % gui, FSCN1.rois.roi6, enum, X, S03SIM-EA-FSCN-01:ROI6:EnableX -# % gui, FSCN1.rois.roi6, readback, X, S03SIM-EA-FSCN-01:ROI6:EnableX_RBV -# % gui, FSCN1.rois.roi6, enum, Autosize X, S03SIM-EA-FSCN-01:ROI6:AutoSizeX -# % gui, FSCN1.rois.roi6, readback, Autosize X, S03SIM-EA-FSCN-01:ROI6:AutoSizeX_RBV -# % gui, FSCN1.rois.roi6, readback, Input Size X, S03SIM-EA-FSCN-01:ROI6:MaxSizeX_RBV -# % gui, FSCN1.rois.roi6, demand, Binning X, S03SIM-EA-FSCN-01:ROI6:BinX -# % gui, FSCN1.rois.roi6, readback, Binning X, S03SIM-EA-FSCN-01:ROI6:BinX_RBV -# % gui, FSCN1.rois.roi6, demand, Start X, S03SIM-EA-FSCN-01:ROI6:MinX -# % gui, FSCN1.rois.roi6, readback, Start X, S03SIM-EA-FSCN-01:ROI6:MinX_RBV -# % gui, FSCN1.rois.roi6, demand, Size X, S03SIM-EA-FSCN-01:ROI6:SizeX -# % gui, FSCN1.rois.roi6, readback, Size X, S03SIM-EA-FSCN-01:ROI6:SizeX_RBV -# % gui, FSCN1.rois.roi6, enum, Reverse X, S03SIM-EA-FSCN-01:ROI6:ReverseX -# % gui, FSCN1.rois.roi6, readback, Reverse X, S03SIM-EA-FSCN-01:ROI6:ReverseX_RBV -# % gui, FSCN1.rois.roi6, readback, Bytes X, S03SIM-EA-FSCN-01:ROI6:ArraySizeX_RBV -# Y region -# % gui, FSCN1.rois.roi6, groupHeading, Y Region -# % gui, FSCN1.rois.roi6, enum, Y, S03SIM-EA-FSCN-01:ROI6:EnableY -# % gui, FSCN1.rois.roi6, readback, Y, S03SIM-EA-FSCN-01:ROI6:EnableY_RBV -# % gui, FSCN1.rois.roi6, enum, Autosize Y, S03SIM-EA-FSCN-01:ROI6:AutoSizeY -# % gui, FSCN1.rois.roi6, readback, Autosize Y, S03SIM-EA-FSCN-01:ROI6:AutoSizeY_RBV -# % gui, FSCN1.rois.roi6, readback, Input size Y, S03SIM-EA-FSCN-01:ROI6:MaxSizeY_RBV -# % gui, FSCN1.rois.roi6, demand, Binning Y, S03SIM-EA-FSCN-01:ROI6:BinY -# % gui, FSCN1.rois.roi6, readback, Binning Y, S03SIM-EA-FSCN-01:ROI6:BinY_RBV -# % gui, FSCN1.rois.roi6, demand, Start Y, S03SIM-EA-FSCN-01:ROI6:MinY -# % gui, FSCN1.rois.roi6, readback, Start Y, S03SIM-EA-FSCN-01:ROI6:MinY_RBV -# % gui, FSCN1.rois.roi6, demand, Size Y, S03SIM-EA-FSCN-01:ROI6:SizeY -# % gui, FSCN1.rois.roi6, readback, Size Y, S03SIM-EA-FSCN-01:ROI6:SizeY_RBV -# % gui, FSCN1.rois.roi6, enum, Reverse Y, S03SIM-EA-FSCN-01:ROI6:ReverseY -# % gui, FSCN1.rois.roi6, readback, Reverse Y, S03SIM-EA-FSCN-01:ROI6:ReverseY_RBV -# % gui, FSCN1.rois.roi6, readback, Bytes Y, S03SIM-EA-FSCN-01:ROI6:ArraySizeY_RBV -# Z region -# % gui, FSCN1.rois.roi6, groupHeading, Z Region -# % gui, FSCN1.rois.roi6, enum, Z, S03SIM-EA-FSCN-01:ROI6:EnableZ -# % gui, FSCN1.rois.roi6, readback, Z, S03SIM-EA-FSCN-01:ROI6:EnableZ_RBV -# % gui, FSCN1.rois.roi6, enum, Autosize Z, S03SIM-EA-FSCN-01:ROI6:AutoSizeZ -# % gui, FSCN1.rois.roi6, readback, Autosize Z, S03SIM-EA-FSCN-01:ROI6:AutoSizeZ_RBV -# % gui, FSCN1.rois.roi6, readback, Input size Z, S03SIM-EA-FSCN-01:ROI6:MaxSizeZ_RBV -# % gui, FSCN1.rois.roi6, demand, Binning Z, S03SIM-EA-FSCN-01:ROI6:BinZ -# % gui, FSCN1.rois.roi6, readback, Binning Z, S03SIM-EA-FSCN-01:ROI6:BinZ_RBV -# % gui, FSCN1.rois.roi6, demand, Start Z, S03SIM-EA-FSCN-01:ROI6:MinZ -# % gui, FSCN1.rois.roi6, readback, Start Z, S03SIM-EA-FSCN-01:ROI6:MinZ_RBV -# % gui, FSCN1.rois.roi6, demand, Size Z, S03SIM-EA-FSCN-01:ROI6:SizeZ -# % gui, FSCN1.rois.roi6, readback, Size Z, S03SIM-EA-FSCN-01:ROI6:SizeZ_RBV -# % gui, FSCN1.rois.roi6, enum, Reverse Z, S03SIM-EA-FSCN-01:ROI6:ReverseZ -# % gui, FSCN1.rois.roi6, readback, Reverse Z, S03SIM-EA-FSCN-01:ROI6:ReverseZ_RBV -# % gui, FSCN1.rois.roi6, readback, Bytes Z, S03SIM-EA-FSCN-01:ROI6:ArraySizeZ_RBV -# Memory -# % gui, FSCN1.rois.roi6, groupHeading, Memory -# % gui, FSCN1.rois.roi6, readback, Max memory, S03SIM-EA-FSCN-01:ROI6:PoolMaxMem -# % gui, FSCN1.rois.roi6, readback, Max buffers, S03SIM-EA-FSCN-01:ROI6:PoolMaxBuffers -# % gui, FSCN1.rois.roi6, readback, Used memory, S03SIM-EA-FSCN-01:ROI6:PoolUsedMem -# % gui, FSCN1.rois.roi6, readback, Allocated buffers, S03SIM-EA-FSCN-01:ROI6:PoolAllocBuffers -# % gui, FSCN1.rois.roi6, readback, Free buffers, S03SIM-EA-FSCN-01:ROI6:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI6:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI6:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI6:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI6:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI6:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI6:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI6:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI6:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ROI6:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI6:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI6:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI6:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:ROI6:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI6:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI6:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI6:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:ROI6:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:ROI6:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI6:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:ROI6:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:ROI6:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ROI6:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-01:ROI6:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-01:ROI6:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ROI6:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI6:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ROI6:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI6:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-01:ROI6:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI6:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-01:ROI6:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:ROI6:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI6:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:ROI6:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:ROI6:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI6:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI6:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:ROI6:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:ROI6:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-01:ROI6:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-01:ROI6:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI6:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-01:ROI6:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI6:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:ROI6:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI6:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ROI6:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-01:ROI6:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)NDARRAY_PORT") - field(VAL, "FSCN1.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI6:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI6:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI6:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI6:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI6:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI6:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI6:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:ROI6:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI6:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI6:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:ROI6:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-01:ROI6:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:ROI6:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI6:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI6:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-01:ROI6:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI6:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ROI6:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI6:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-01:ROI6:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI6:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI6:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:ROI6:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI6:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:ROI6:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:ROI6:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI6:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:ROI6:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:ROI6:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI6:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:ROI6:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:ROI6:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:ROI6:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI6:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:ROI6:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI6:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI6:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI6:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI6:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ROI6:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:ROI6:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:ROI6:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI6:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI6:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:ROI6:AsynIO") -{ - field(PORT, "FSCN1.rois.roi6") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the label for the ROI # -################################################################### -record(stringout, "S03SIM-EA-FSCN-01:ROI6:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)NAME") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:ROI6:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)NAME") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the ROI definition # -# including binning, region start and size # -################################################################### - -record(longout, "S03SIM-EA-FSCN-01:ROI6:BinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM0_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:BinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM0_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI6:BinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM1_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:BinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM1_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI6:BinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM2_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:BinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM2_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI6:MinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM0_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:MinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM0_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI6:MinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM1_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:MinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM1_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI6:MinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM2_MIN") - field(LOPR, "1") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:MinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM2_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI6:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM0_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM0_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI6:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM1_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM1_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ROI6:SizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM2_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:SizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM2_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI6:AutoSizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM0_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI6:AutoSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM0_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI6:AutoSizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM1_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI6:AutoSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM1_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI6:AutoSizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM2_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI6:AutoSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM2_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM0_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM1_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:MaxSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM2_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI6:ReverseX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM0_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI6:ReverseX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM0_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI6:ReverseY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM1_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI6:ReverseY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM1_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI6:ReverseZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM2_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI6:ReverseZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM2_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI6:EnableX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM0_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI6:EnableX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM0_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI6:EnableY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM1_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI6:EnableY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM1_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:ROI6:EnableZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)DIM2_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI6:EnableZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)DIM2_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the scaling of the data. Useful when # -# binning or converting data types # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ROI6:EnableScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)ENABLE_SCALE") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI6:EnableScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)ENABLE_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ROI6:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)SCALE_VALUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ROI6:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)SCALE_VALUE") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ROI6:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ROI6:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-01:ROI6:MaxX") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:ROI6:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:ROI6:MaxX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:ROI6:MinX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:ROI6:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:ROI6:MaxY") -{ - field(INP, "S03SIM-EA-FSCN-01:ROI6:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:ROI6:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:ROI6:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:ROI6:MaxY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:ROI6:MinY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:ROI6:SizeY.HOPR NPP") -} - -################################################################### -# These records whether dimensions of 1 are collapsed (removed) # # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ROI6:CollapseDims") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.rois.roi6,0,1)COLLAPSE_DIMS") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ROI6:CollapseDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.rois.roi6,0,1)COLLAPSE_DIMS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -#=================================================================# -# Template file: NDROI.template -# Database for ND ROIs -# Mark Rivers -# April 22, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, FSCN2.roi, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-02,R=:ROI: - -# This associates a BOY screen with the template -# % gui, FSCN2.roi, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-02, R=:ROI:, DESC=Region of Interest -# % gui, FSCN2.roi, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:ROI:, DESC=Region of Interest -# % gui, FSCN2.roi, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-02, R=:ROI:, DESC=Region of Interest - -# % gui, FSCN2.roi, groupHeading, Info -# % gui, FSCN2.roi, readback, Port name, S03SIM-EA-FSCN-02:ROI:PortName_RBV -# % gui, FSCN2.roi, readback, Plugin type, S03SIM-EA-FSCN-02:ROI:PluginType_RBV -# Input -# % gui, FSCN2.roi, demandString, Input, S03SIM-EA-FSCN-02:ROI:NDArrayPort -# % gui, FSCN2.roi, readback, Input, S03SIM-EA-FSCN-02:ROI:NDArrayPort_RBV - -# % gui, FSCN2.roi, groupHeading, Callback -# % gui, FSCN2.roi, enum, Callbacks, S03SIM-EA-FSCN-02:ROI:EnableCallbacks -# % gui, FSCN2.roi, statusbits, Callbacks, S03SIM-EA-FSCN-02:ROI:EnableCallbacks_RBV -# % gui, FSCN2.roi, demand, Min Callback Time, S03SIM-EA-FSCN-02:ROI:MinCallbackTime -# % gui, FSCN2.roi, readback, Min Callback Time, S03SIM-EA-FSCN-02:ROI:MinCallbackTime_RBV -# % gui, FSCN2.roi, enum, Block Callbacks, S03SIM-EA-FSCN-02:ROI:BlockingCallbacks -# % gui, FSCN2.roi, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:ROI:BlockingCallbacks_RBV - -# % gui, FSCN2.roi, groupHeading, Counters -# % gui, FSCN2.roi, demand, Array Counter, S03SIM-EA-FSCN-02:ROI:ArrayCounter -# % gui, FSCN2.roi, readback, Array Counter, S03SIM-EA-FSCN-02:ROI:ArrayCounter_RBV -# % gui, FSCN2.roi, readback, Array Rate (fps), S03SIM-EA-FSCN-02:ROI:ArrayRate_RBV -# % gui, FSCN2.roi, readback, Queue Use, S03SIM-EA-FSCN-02:ROI:QueueUse -# % gui, FSCN2.roi, readback, Queue Size, S03SIM-EA-FSCN-02:ROI:QueueSize -# % gui, FSCN2.roi, demand, Dropped Arrays, S03SIM-EA-FSCN-02:ROI:DroppedArrays -# % gui, FSCN2.roi, readback, Dropped Arrays, S03SIM-EA-FSCN-02:ROI:DroppedArrays_RBV - -# % gui, FSCN2.roi, groupHeading, Array Settings -# % gui, FSCN2.roi, readback, Num Dimensions, S03SIM-EA-FSCN-02:ROI:NDimensions_RBV -# % gui, FSCN2.roi, readback, Dim 0 Size, S03SIM-EA-FSCN-02:ROI:ArraySize0_RBV -# % gui, FSCN2.roi, readback, Dim 1 Size, S03SIM-EA-FSCN-02:ROI:ArraySize1_RBV -# % gui, FSCN2.roi, readback, Dim 2 Size, S03SIM-EA-FSCN-02:ROI:ArraySize2_RBV -# % gui, FSCN2.roi, readback, Input Data Type, S03SIM-EA-FSCN-02:ROI:DataType_RBV -# % gui, FSCN2.roi, readback, Colour Mode, S03SIM-EA-FSCN-02:ROI:ColorMode_RBV -# % gui, FSCN2.roi, readback, Bayer Pattern, S03SIM-EA-FSCN-02:ROI:BayerPattern_RBV -# % gui, FSCN2.roi, readback, Unique id, S03SIM-EA-FSCN-02:ROI:UniqueId_RBV -# % gui, FSCN2.roi, readback, Timestamp, S03SIM-EA-FSCN-02:ROI:TimeStamp_RBV - -# Output -# % gui, FSCN2.roi, groupHeading, Output -# % gui, FSCN2.roi, demand, Name, S03SIM-EA-FSCN-02:ROI:Name -# % gui, FSCN2.roi, enum, Out data type, S03SIM-EA-FSCN-02:ROI:DataTypeOut -# % gui, FSCN2.roi, readback, Out data type, S03SIM-EA-FSCN-02:ROI:DataTypeOut_RBV -# % gui, FSCN2.roi, demand, Attributes file, S03SIM-EA-FSCN-02:ROI:NDAttributesFile -# Scaling -# % gui, FSCN2.roi, groupHeading, Scaling -# % gui, FSCN2.roi, enum, Enable Scaling, S03SIM-EA-FSCN-02:ROI:EnableScale -# % gui, FSCN2.roi, readback, Enable Scaling, S03SIM-EA-FSCN-02:ROI:EnableScale_RBV -# % gui, FSCN2.roi, demand, Scale Divisor, S03SIM-EA-FSCN-02:ROI:Scale -# % gui, FSCN2.roi, readback, Scale Divisor, S03SIM-EA-FSCN-02:ROI:Scale_RBV -# X region -# % gui, FSCN2.roi, groupHeading, X Region -# % gui, FSCN2.roi, enum, X, S03SIM-EA-FSCN-02:ROI:EnableX -# % gui, FSCN2.roi, readback, X, S03SIM-EA-FSCN-02:ROI:EnableX_RBV -# % gui, FSCN2.roi, enum, Autosize X, S03SIM-EA-FSCN-02:ROI:AutoSizeX -# % gui, FSCN2.roi, readback, Autosize X, S03SIM-EA-FSCN-02:ROI:AutoSizeX_RBV -# % gui, FSCN2.roi, readback, Input Size X, S03SIM-EA-FSCN-02:ROI:MaxSizeX_RBV -# % gui, FSCN2.roi, demand, Binning X, S03SIM-EA-FSCN-02:ROI:BinX -# % gui, FSCN2.roi, readback, Binning X, S03SIM-EA-FSCN-02:ROI:BinX_RBV -# % gui, FSCN2.roi, demand, Start X, S03SIM-EA-FSCN-02:ROI:MinX -# % gui, FSCN2.roi, readback, Start X, S03SIM-EA-FSCN-02:ROI:MinX_RBV -# % gui, FSCN2.roi, demand, Size X, S03SIM-EA-FSCN-02:ROI:SizeX -# % gui, FSCN2.roi, readback, Size X, S03SIM-EA-FSCN-02:ROI:SizeX_RBV -# % gui, FSCN2.roi, enum, Reverse X, S03SIM-EA-FSCN-02:ROI:ReverseX -# % gui, FSCN2.roi, readback, Reverse X, S03SIM-EA-FSCN-02:ROI:ReverseX_RBV -# % gui, FSCN2.roi, readback, Bytes X, S03SIM-EA-FSCN-02:ROI:ArraySizeX_RBV -# Y region -# % gui, FSCN2.roi, groupHeading, Y Region -# % gui, FSCN2.roi, enum, Y, S03SIM-EA-FSCN-02:ROI:EnableY -# % gui, FSCN2.roi, readback, Y, S03SIM-EA-FSCN-02:ROI:EnableY_RBV -# % gui, FSCN2.roi, enum, Autosize Y, S03SIM-EA-FSCN-02:ROI:AutoSizeY -# % gui, FSCN2.roi, readback, Autosize Y, S03SIM-EA-FSCN-02:ROI:AutoSizeY_RBV -# % gui, FSCN2.roi, readback, Input size Y, S03SIM-EA-FSCN-02:ROI:MaxSizeY_RBV -# % gui, FSCN2.roi, demand, Binning Y, S03SIM-EA-FSCN-02:ROI:BinY -# % gui, FSCN2.roi, readback, Binning Y, S03SIM-EA-FSCN-02:ROI:BinY_RBV -# % gui, FSCN2.roi, demand, Start Y, S03SIM-EA-FSCN-02:ROI:MinY -# % gui, FSCN2.roi, readback, Start Y, S03SIM-EA-FSCN-02:ROI:MinY_RBV -# % gui, FSCN2.roi, demand, Size Y, S03SIM-EA-FSCN-02:ROI:SizeY -# % gui, FSCN2.roi, readback, Size Y, S03SIM-EA-FSCN-02:ROI:SizeY_RBV -# % gui, FSCN2.roi, enum, Reverse Y, S03SIM-EA-FSCN-02:ROI:ReverseY -# % gui, FSCN2.roi, readback, Reverse Y, S03SIM-EA-FSCN-02:ROI:ReverseY_RBV -# % gui, FSCN2.roi, readback, Bytes Y, S03SIM-EA-FSCN-02:ROI:ArraySizeY_RBV -# Z region -# % gui, FSCN2.roi, groupHeading, Z Region -# % gui, FSCN2.roi, enum, Z, S03SIM-EA-FSCN-02:ROI:EnableZ -# % gui, FSCN2.roi, readback, Z, S03SIM-EA-FSCN-02:ROI:EnableZ_RBV -# % gui, FSCN2.roi, enum, Autosize Z, S03SIM-EA-FSCN-02:ROI:AutoSizeZ -# % gui, FSCN2.roi, readback, Autosize Z, S03SIM-EA-FSCN-02:ROI:AutoSizeZ_RBV -# % gui, FSCN2.roi, readback, Input size Z, S03SIM-EA-FSCN-02:ROI:MaxSizeZ_RBV -# % gui, FSCN2.roi, demand, Binning Z, S03SIM-EA-FSCN-02:ROI:BinZ -# % gui, FSCN2.roi, readback, Binning Z, S03SIM-EA-FSCN-02:ROI:BinZ_RBV -# % gui, FSCN2.roi, demand, Start Z, S03SIM-EA-FSCN-02:ROI:MinZ -# % gui, FSCN2.roi, readback, Start Z, S03SIM-EA-FSCN-02:ROI:MinZ_RBV -# % gui, FSCN2.roi, demand, Size Z, S03SIM-EA-FSCN-02:ROI:SizeZ -# % gui, FSCN2.roi, readback, Size Z, S03SIM-EA-FSCN-02:ROI:SizeZ_RBV -# % gui, FSCN2.roi, enum, Reverse Z, S03SIM-EA-FSCN-02:ROI:ReverseZ -# % gui, FSCN2.roi, readback, Reverse Z, S03SIM-EA-FSCN-02:ROI:ReverseZ_RBV -# % gui, FSCN2.roi, readback, Bytes Z, S03SIM-EA-FSCN-02:ROI:ArraySizeZ_RBV -# Memory -# % gui, FSCN2.roi, groupHeading, Memory -# % gui, FSCN2.roi, readback, Max memory, S03SIM-EA-FSCN-02:ROI:PoolMaxMem -# % gui, FSCN2.roi, readback, Max buffers, S03SIM-EA-FSCN-02:ROI:PoolMaxBuffers -# % gui, FSCN2.roi, readback, Used memory, S03SIM-EA-FSCN-02:ROI:PoolUsedMem -# % gui, FSCN2.roi, readback, Allocated buffers, S03SIM-EA-FSCN-02:ROI:PoolAllocBuffers -# % gui, FSCN2.roi, readback, Free buffers, S03SIM-EA-FSCN-02:ROI:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.roi,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.roi,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.roi,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.roi,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.roi,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.roi,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.roi,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.roi,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ROI:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:ROI:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:ROI:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:ROI:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:ROI:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:ROI:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:ROI:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-02:ROI:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.roi,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ROI:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ROI:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-02:ROI:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.roi,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-02:ROI:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:ROI:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:ROI:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:ROI:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:ROI:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.roi,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:ROI:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.roi,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-02:ROI:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-02:ROI:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.roi,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.roi,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-02:ROI:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:ROI:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.roi,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-02:ROI:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.roi,0,1)NDARRAY_PORT") - field(VAL, "FSCN2.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.roi,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.roi,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.roi,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:ROI:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:ROI:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-02:ROI:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.roi,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.roi,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-02:ROI:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.roi,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-02:ROI:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:ROI:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:ROI:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:ROI:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:ROI:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:ROI:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:ROI:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:ROI:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:ROI:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:ROI:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.roi,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.roi,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:ROI:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:ROI:AsynIO") -{ - field(PORT, "FSCN2.roi") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the label for the ROI # -################################################################### -record(stringout, "S03SIM-EA-FSCN-02:ROI:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.roi,0,1)NAME") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.roi,0,1)NAME") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the ROI definition # -# including binning, region start and size # -################################################################### - -record(longout, "S03SIM-EA-FSCN-02:ROI:BinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DIM0_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:BinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DIM0_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI:BinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DIM1_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:BinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DIM1_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI:BinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DIM2_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:BinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DIM2_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI:MinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DIM0_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:MinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DIM0_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI:MinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DIM1_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:MinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DIM1_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI:MinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DIM2_MIN") - field(LOPR, "1") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:MinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DIM2_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DIM0_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DIM0_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DIM1_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DIM1_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI:SizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DIM2_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:SizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DIM2_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI:AutoSizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DIM0_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI:AutoSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DIM0_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI:AutoSizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DIM1_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI:AutoSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DIM1_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI:AutoSizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DIM2_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI:AutoSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DIM2_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DIM0_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DIM1_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:MaxSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DIM2_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI:ReverseX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DIM0_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI:ReverseX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DIM0_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI:ReverseY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DIM1_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI:ReverseY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DIM1_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI:ReverseZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DIM2_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI:ReverseZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DIM2_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI:EnableX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DIM0_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI:EnableX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DIM0_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI:EnableY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DIM1_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI:EnableY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DIM1_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI:EnableZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)DIM2_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI:EnableZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)DIM2_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the scaling of the data. Useful when # -# binning or converting data types # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ROI:EnableScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)ENABLE_SCALE") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI:EnableScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)ENABLE_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.roi,0,1)SCALE_VALUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.roi,0,1)SCALE_VALUE") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ROI:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-02:ROI:MaxX") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:ROI:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:ROI:MaxX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:ROI:MinX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:ROI:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI:MaxY") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:ROI:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:ROI:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:ROI:MaxY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:ROI:MinY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:ROI:SizeY.HOPR NPP") -} - -################################################################### -# These records whether dimensions of 1 are collapsed (removed) # # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ROI:CollapseDims") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.roi,0,1)COLLAPSE_DIMS") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI:CollapseDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.roi,0,1)COLLAPSE_DIMS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -#=================================================================# -# Template file: NDROI.template -# Database for ND ROIs -# Mark Rivers -# April 22, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, FSCN2.rois.roi1, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-02,R=:ROI1: - -# This associates a BOY screen with the template -# % gui, FSCN2.rois.roi1, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-02, R=:ROI1:, DESC=Region of Interest -# % gui, FSCN2.rois.roi1, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:ROI1:, DESC=Region of Interest -# % gui, FSCN2.rois.roi1, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-02, R=:ROI1:, DESC=Region of Interest - -# % gui, FSCN2.rois.roi1, groupHeading, Info -# % gui, FSCN2.rois.roi1, readback, Port name, S03SIM-EA-FSCN-02:ROI1:PortName_RBV -# % gui, FSCN2.rois.roi1, readback, Plugin type, S03SIM-EA-FSCN-02:ROI1:PluginType_RBV -# Input -# % gui, FSCN2.rois.roi1, demandString, Input, S03SIM-EA-FSCN-02:ROI1:NDArrayPort -# % gui, FSCN2.rois.roi1, readback, Input, S03SIM-EA-FSCN-02:ROI1:NDArrayPort_RBV - -# % gui, FSCN2.rois.roi1, groupHeading, Callback -# % gui, FSCN2.rois.roi1, enum, Callbacks, S03SIM-EA-FSCN-02:ROI1:EnableCallbacks -# % gui, FSCN2.rois.roi1, statusbits, Callbacks, S03SIM-EA-FSCN-02:ROI1:EnableCallbacks_RBV -# % gui, FSCN2.rois.roi1, demand, Min Callback Time, S03SIM-EA-FSCN-02:ROI1:MinCallbackTime -# % gui, FSCN2.rois.roi1, readback, Min Callback Time, S03SIM-EA-FSCN-02:ROI1:MinCallbackTime_RBV -# % gui, FSCN2.rois.roi1, enum, Block Callbacks, S03SIM-EA-FSCN-02:ROI1:BlockingCallbacks -# % gui, FSCN2.rois.roi1, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:ROI1:BlockingCallbacks_RBV - -# % gui, FSCN2.rois.roi1, groupHeading, Counters -# % gui, FSCN2.rois.roi1, demand, Array Counter, S03SIM-EA-FSCN-02:ROI1:ArrayCounter -# % gui, FSCN2.rois.roi1, readback, Array Counter, S03SIM-EA-FSCN-02:ROI1:ArrayCounter_RBV -# % gui, FSCN2.rois.roi1, readback, Array Rate (fps), S03SIM-EA-FSCN-02:ROI1:ArrayRate_RBV -# % gui, FSCN2.rois.roi1, readback, Queue Use, S03SIM-EA-FSCN-02:ROI1:QueueUse -# % gui, FSCN2.rois.roi1, readback, Queue Size, S03SIM-EA-FSCN-02:ROI1:QueueSize -# % gui, FSCN2.rois.roi1, demand, Dropped Arrays, S03SIM-EA-FSCN-02:ROI1:DroppedArrays -# % gui, FSCN2.rois.roi1, readback, Dropped Arrays, S03SIM-EA-FSCN-02:ROI1:DroppedArrays_RBV - -# % gui, FSCN2.rois.roi1, groupHeading, Array Settings -# % gui, FSCN2.rois.roi1, readback, Num Dimensions, S03SIM-EA-FSCN-02:ROI1:NDimensions_RBV -# % gui, FSCN2.rois.roi1, readback, Dim 0 Size, S03SIM-EA-FSCN-02:ROI1:ArraySize0_RBV -# % gui, FSCN2.rois.roi1, readback, Dim 1 Size, S03SIM-EA-FSCN-02:ROI1:ArraySize1_RBV -# % gui, FSCN2.rois.roi1, readback, Dim 2 Size, S03SIM-EA-FSCN-02:ROI1:ArraySize2_RBV -# % gui, FSCN2.rois.roi1, readback, Input Data Type, S03SIM-EA-FSCN-02:ROI1:DataType_RBV -# % gui, FSCN2.rois.roi1, readback, Colour Mode, S03SIM-EA-FSCN-02:ROI1:ColorMode_RBV -# % gui, FSCN2.rois.roi1, readback, Bayer Pattern, S03SIM-EA-FSCN-02:ROI1:BayerPattern_RBV -# % gui, FSCN2.rois.roi1, readback, Unique id, S03SIM-EA-FSCN-02:ROI1:UniqueId_RBV -# % gui, FSCN2.rois.roi1, readback, Timestamp, S03SIM-EA-FSCN-02:ROI1:TimeStamp_RBV - -# Output -# % gui, FSCN2.rois.roi1, groupHeading, Output -# % gui, FSCN2.rois.roi1, demand, Name, S03SIM-EA-FSCN-02:ROI1:Name -# % gui, FSCN2.rois.roi1, enum, Out data type, S03SIM-EA-FSCN-02:ROI1:DataTypeOut -# % gui, FSCN2.rois.roi1, readback, Out data type, S03SIM-EA-FSCN-02:ROI1:DataTypeOut_RBV -# % gui, FSCN2.rois.roi1, demand, Attributes file, S03SIM-EA-FSCN-02:ROI1:NDAttributesFile -# Scaling -# % gui, FSCN2.rois.roi1, groupHeading, Scaling -# % gui, FSCN2.rois.roi1, enum, Enable Scaling, S03SIM-EA-FSCN-02:ROI1:EnableScale -# % gui, FSCN2.rois.roi1, readback, Enable Scaling, S03SIM-EA-FSCN-02:ROI1:EnableScale_RBV -# % gui, FSCN2.rois.roi1, demand, Scale Divisor, S03SIM-EA-FSCN-02:ROI1:Scale -# % gui, FSCN2.rois.roi1, readback, Scale Divisor, S03SIM-EA-FSCN-02:ROI1:Scale_RBV -# X region -# % gui, FSCN2.rois.roi1, groupHeading, X Region -# % gui, FSCN2.rois.roi1, enum, X, S03SIM-EA-FSCN-02:ROI1:EnableX -# % gui, FSCN2.rois.roi1, readback, X, S03SIM-EA-FSCN-02:ROI1:EnableX_RBV -# % gui, FSCN2.rois.roi1, enum, Autosize X, S03SIM-EA-FSCN-02:ROI1:AutoSizeX -# % gui, FSCN2.rois.roi1, readback, Autosize X, S03SIM-EA-FSCN-02:ROI1:AutoSizeX_RBV -# % gui, FSCN2.rois.roi1, readback, Input Size X, S03SIM-EA-FSCN-02:ROI1:MaxSizeX_RBV -# % gui, FSCN2.rois.roi1, demand, Binning X, S03SIM-EA-FSCN-02:ROI1:BinX -# % gui, FSCN2.rois.roi1, readback, Binning X, S03SIM-EA-FSCN-02:ROI1:BinX_RBV -# % gui, FSCN2.rois.roi1, demand, Start X, S03SIM-EA-FSCN-02:ROI1:MinX -# % gui, FSCN2.rois.roi1, readback, Start X, S03SIM-EA-FSCN-02:ROI1:MinX_RBV -# % gui, FSCN2.rois.roi1, demand, Size X, S03SIM-EA-FSCN-02:ROI1:SizeX -# % gui, FSCN2.rois.roi1, readback, Size X, S03SIM-EA-FSCN-02:ROI1:SizeX_RBV -# % gui, FSCN2.rois.roi1, enum, Reverse X, S03SIM-EA-FSCN-02:ROI1:ReverseX -# % gui, FSCN2.rois.roi1, readback, Reverse X, S03SIM-EA-FSCN-02:ROI1:ReverseX_RBV -# % gui, FSCN2.rois.roi1, readback, Bytes X, S03SIM-EA-FSCN-02:ROI1:ArraySizeX_RBV -# Y region -# % gui, FSCN2.rois.roi1, groupHeading, Y Region -# % gui, FSCN2.rois.roi1, enum, Y, S03SIM-EA-FSCN-02:ROI1:EnableY -# % gui, FSCN2.rois.roi1, readback, Y, S03SIM-EA-FSCN-02:ROI1:EnableY_RBV -# % gui, FSCN2.rois.roi1, enum, Autosize Y, S03SIM-EA-FSCN-02:ROI1:AutoSizeY -# % gui, FSCN2.rois.roi1, readback, Autosize Y, S03SIM-EA-FSCN-02:ROI1:AutoSizeY_RBV -# % gui, FSCN2.rois.roi1, readback, Input size Y, S03SIM-EA-FSCN-02:ROI1:MaxSizeY_RBV -# % gui, FSCN2.rois.roi1, demand, Binning Y, S03SIM-EA-FSCN-02:ROI1:BinY -# % gui, FSCN2.rois.roi1, readback, Binning Y, S03SIM-EA-FSCN-02:ROI1:BinY_RBV -# % gui, FSCN2.rois.roi1, demand, Start Y, S03SIM-EA-FSCN-02:ROI1:MinY -# % gui, FSCN2.rois.roi1, readback, Start Y, S03SIM-EA-FSCN-02:ROI1:MinY_RBV -# % gui, FSCN2.rois.roi1, demand, Size Y, S03SIM-EA-FSCN-02:ROI1:SizeY -# % gui, FSCN2.rois.roi1, readback, Size Y, S03SIM-EA-FSCN-02:ROI1:SizeY_RBV -# % gui, FSCN2.rois.roi1, enum, Reverse Y, S03SIM-EA-FSCN-02:ROI1:ReverseY -# % gui, FSCN2.rois.roi1, readback, Reverse Y, S03SIM-EA-FSCN-02:ROI1:ReverseY_RBV -# % gui, FSCN2.rois.roi1, readback, Bytes Y, S03SIM-EA-FSCN-02:ROI1:ArraySizeY_RBV -# Z region -# % gui, FSCN2.rois.roi1, groupHeading, Z Region -# % gui, FSCN2.rois.roi1, enum, Z, S03SIM-EA-FSCN-02:ROI1:EnableZ -# % gui, FSCN2.rois.roi1, readback, Z, S03SIM-EA-FSCN-02:ROI1:EnableZ_RBV -# % gui, FSCN2.rois.roi1, enum, Autosize Z, S03SIM-EA-FSCN-02:ROI1:AutoSizeZ -# % gui, FSCN2.rois.roi1, readback, Autosize Z, S03SIM-EA-FSCN-02:ROI1:AutoSizeZ_RBV -# % gui, FSCN2.rois.roi1, readback, Input size Z, S03SIM-EA-FSCN-02:ROI1:MaxSizeZ_RBV -# % gui, FSCN2.rois.roi1, demand, Binning Z, S03SIM-EA-FSCN-02:ROI1:BinZ -# % gui, FSCN2.rois.roi1, readback, Binning Z, S03SIM-EA-FSCN-02:ROI1:BinZ_RBV -# % gui, FSCN2.rois.roi1, demand, Start Z, S03SIM-EA-FSCN-02:ROI1:MinZ -# % gui, FSCN2.rois.roi1, readback, Start Z, S03SIM-EA-FSCN-02:ROI1:MinZ_RBV -# % gui, FSCN2.rois.roi1, demand, Size Z, S03SIM-EA-FSCN-02:ROI1:SizeZ -# % gui, FSCN2.rois.roi1, readback, Size Z, S03SIM-EA-FSCN-02:ROI1:SizeZ_RBV -# % gui, FSCN2.rois.roi1, enum, Reverse Z, S03SIM-EA-FSCN-02:ROI1:ReverseZ -# % gui, FSCN2.rois.roi1, readback, Reverse Z, S03SIM-EA-FSCN-02:ROI1:ReverseZ_RBV -# % gui, FSCN2.rois.roi1, readback, Bytes Z, S03SIM-EA-FSCN-02:ROI1:ArraySizeZ_RBV -# Memory -# % gui, FSCN2.rois.roi1, groupHeading, Memory -# % gui, FSCN2.rois.roi1, readback, Max memory, S03SIM-EA-FSCN-02:ROI1:PoolMaxMem -# % gui, FSCN2.rois.roi1, readback, Max buffers, S03SIM-EA-FSCN-02:ROI1:PoolMaxBuffers -# % gui, FSCN2.rois.roi1, readback, Used memory, S03SIM-EA-FSCN-02:ROI1:PoolUsedMem -# % gui, FSCN2.rois.roi1, readback, Allocated buffers, S03SIM-EA-FSCN-02:ROI1:PoolAllocBuffers -# % gui, FSCN2.rois.roi1, readback, Free buffers, S03SIM-EA-FSCN-02:ROI1:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI1:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI1:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI1:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI1:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI1:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI1:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI1:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI1:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ROI1:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI1:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI1:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI1:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:ROI1:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI1:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI1:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI1:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:ROI1:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:ROI1:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI1:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:ROI1:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:ROI1:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI1:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:ROI1:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-02:ROI1:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ROI1:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI1:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ROI1:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI1:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-02:ROI1:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI1:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-02:ROI1:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:ROI1:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI1:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:ROI1:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:ROI1:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI1:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI1:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:ROI1:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:ROI1:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-02:ROI1:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-02:ROI1:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI1:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-02:ROI1:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI1:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:ROI1:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI1:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI1:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-02:ROI1:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)NDARRAY_PORT") - field(VAL, "FSCN2.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI1:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI1:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI1:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI1:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI1:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI1:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI1:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:ROI1:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI1:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI1:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:ROI1:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-02:ROI1:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI1:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI1:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI1:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-02:ROI1:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI1:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI1:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI1:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-02:ROI1:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI1:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI1:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:ROI1:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI1:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:ROI1:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:ROI1:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI1:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:ROI1:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:ROI1:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI1:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:ROI1:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:ROI1:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:ROI1:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI1:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:ROI1:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI1:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI1:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI1:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI1:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI1:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:ROI1:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI1:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI1:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI1:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:ROI1:AsynIO") -{ - field(PORT, "FSCN2.rois.roi1") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the label for the ROI # -################################################################### -record(stringout, "S03SIM-EA-FSCN-02:ROI1:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)NAME") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI1:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)NAME") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the ROI definition # -# including binning, region start and size # -################################################################### - -record(longout, "S03SIM-EA-FSCN-02:ROI1:BinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM0_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:BinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM0_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI1:BinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM1_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:BinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM1_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI1:BinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM2_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:BinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM2_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI1:MinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM0_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:MinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM0_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI1:MinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM1_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:MinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM1_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI1:MinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM2_MIN") - field(LOPR, "1") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:MinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM2_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI1:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM0_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM0_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI1:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM1_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM1_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI1:SizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM2_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:SizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM2_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI1:AutoSizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM0_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI1:AutoSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM0_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI1:AutoSizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM1_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI1:AutoSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM1_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI1:AutoSizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM2_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI1:AutoSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM2_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM0_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM1_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:MaxSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM2_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI1:ReverseX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM0_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI1:ReverseX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM0_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI1:ReverseY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM1_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI1:ReverseY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM1_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI1:ReverseZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM2_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI1:ReverseZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM2_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI1:EnableX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM0_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI1:EnableX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM0_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI1:EnableY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM1_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI1:EnableY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM1_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI1:EnableZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)DIM2_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI1:EnableZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)DIM2_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the scaling of the data. Useful when # -# binning or converting data types # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ROI1:EnableScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)ENABLE_SCALE") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI1:EnableScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)ENABLE_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI1:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)SCALE_VALUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI1:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)SCALE_VALUE") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ROI1:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI1:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-02:ROI1:MaxX") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:ROI1:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:ROI1:MaxX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:ROI1:MinX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:ROI1:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI1:MaxY") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI1:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:ROI1:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:ROI1:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:ROI1:MaxY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:ROI1:MinY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:ROI1:SizeY.HOPR NPP") -} - -################################################################### -# These records whether dimensions of 1 are collapsed (removed) # # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ROI1:CollapseDims") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi1,0,1)COLLAPSE_DIMS") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI1:CollapseDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi1,0,1)COLLAPSE_DIMS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -#=================================================================# -# Template file: NDROI.template -# Database for ND ROIs -# Mark Rivers -# April 22, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, FSCN2.rois.roi2, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-02,R=:ROI2: - -# This associates a BOY screen with the template -# % gui, FSCN2.rois.roi2, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-02, R=:ROI2:, DESC=Region of Interest -# % gui, FSCN2.rois.roi2, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:ROI2:, DESC=Region of Interest -# % gui, FSCN2.rois.roi2, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-02, R=:ROI2:, DESC=Region of Interest - -# % gui, FSCN2.rois.roi2, groupHeading, Info -# % gui, FSCN2.rois.roi2, readback, Port name, S03SIM-EA-FSCN-02:ROI2:PortName_RBV -# % gui, FSCN2.rois.roi2, readback, Plugin type, S03SIM-EA-FSCN-02:ROI2:PluginType_RBV -# Input -# % gui, FSCN2.rois.roi2, demandString, Input, S03SIM-EA-FSCN-02:ROI2:NDArrayPort -# % gui, FSCN2.rois.roi2, readback, Input, S03SIM-EA-FSCN-02:ROI2:NDArrayPort_RBV - -# % gui, FSCN2.rois.roi2, groupHeading, Callback -# % gui, FSCN2.rois.roi2, enum, Callbacks, S03SIM-EA-FSCN-02:ROI2:EnableCallbacks -# % gui, FSCN2.rois.roi2, statusbits, Callbacks, S03SIM-EA-FSCN-02:ROI2:EnableCallbacks_RBV -# % gui, FSCN2.rois.roi2, demand, Min Callback Time, S03SIM-EA-FSCN-02:ROI2:MinCallbackTime -# % gui, FSCN2.rois.roi2, readback, Min Callback Time, S03SIM-EA-FSCN-02:ROI2:MinCallbackTime_RBV -# % gui, FSCN2.rois.roi2, enum, Block Callbacks, S03SIM-EA-FSCN-02:ROI2:BlockingCallbacks -# % gui, FSCN2.rois.roi2, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:ROI2:BlockingCallbacks_RBV - -# % gui, FSCN2.rois.roi2, groupHeading, Counters -# % gui, FSCN2.rois.roi2, demand, Array Counter, S03SIM-EA-FSCN-02:ROI2:ArrayCounter -# % gui, FSCN2.rois.roi2, readback, Array Counter, S03SIM-EA-FSCN-02:ROI2:ArrayCounter_RBV -# % gui, FSCN2.rois.roi2, readback, Array Rate (fps), S03SIM-EA-FSCN-02:ROI2:ArrayRate_RBV -# % gui, FSCN2.rois.roi2, readback, Queue Use, S03SIM-EA-FSCN-02:ROI2:QueueUse -# % gui, FSCN2.rois.roi2, readback, Queue Size, S03SIM-EA-FSCN-02:ROI2:QueueSize -# % gui, FSCN2.rois.roi2, demand, Dropped Arrays, S03SIM-EA-FSCN-02:ROI2:DroppedArrays -# % gui, FSCN2.rois.roi2, readback, Dropped Arrays, S03SIM-EA-FSCN-02:ROI2:DroppedArrays_RBV - -# % gui, FSCN2.rois.roi2, groupHeading, Array Settings -# % gui, FSCN2.rois.roi2, readback, Num Dimensions, S03SIM-EA-FSCN-02:ROI2:NDimensions_RBV -# % gui, FSCN2.rois.roi2, readback, Dim 0 Size, S03SIM-EA-FSCN-02:ROI2:ArraySize0_RBV -# % gui, FSCN2.rois.roi2, readback, Dim 1 Size, S03SIM-EA-FSCN-02:ROI2:ArraySize1_RBV -# % gui, FSCN2.rois.roi2, readback, Dim 2 Size, S03SIM-EA-FSCN-02:ROI2:ArraySize2_RBV -# % gui, FSCN2.rois.roi2, readback, Input Data Type, S03SIM-EA-FSCN-02:ROI2:DataType_RBV -# % gui, FSCN2.rois.roi2, readback, Colour Mode, S03SIM-EA-FSCN-02:ROI2:ColorMode_RBV -# % gui, FSCN2.rois.roi2, readback, Bayer Pattern, S03SIM-EA-FSCN-02:ROI2:BayerPattern_RBV -# % gui, FSCN2.rois.roi2, readback, Unique id, S03SIM-EA-FSCN-02:ROI2:UniqueId_RBV -# % gui, FSCN2.rois.roi2, readback, Timestamp, S03SIM-EA-FSCN-02:ROI2:TimeStamp_RBV - -# Output -# % gui, FSCN2.rois.roi2, groupHeading, Output -# % gui, FSCN2.rois.roi2, demand, Name, S03SIM-EA-FSCN-02:ROI2:Name -# % gui, FSCN2.rois.roi2, enum, Out data type, S03SIM-EA-FSCN-02:ROI2:DataTypeOut -# % gui, FSCN2.rois.roi2, readback, Out data type, S03SIM-EA-FSCN-02:ROI2:DataTypeOut_RBV -# % gui, FSCN2.rois.roi2, demand, Attributes file, S03SIM-EA-FSCN-02:ROI2:NDAttributesFile -# Scaling -# % gui, FSCN2.rois.roi2, groupHeading, Scaling -# % gui, FSCN2.rois.roi2, enum, Enable Scaling, S03SIM-EA-FSCN-02:ROI2:EnableScale -# % gui, FSCN2.rois.roi2, readback, Enable Scaling, S03SIM-EA-FSCN-02:ROI2:EnableScale_RBV -# % gui, FSCN2.rois.roi2, demand, Scale Divisor, S03SIM-EA-FSCN-02:ROI2:Scale -# % gui, FSCN2.rois.roi2, readback, Scale Divisor, S03SIM-EA-FSCN-02:ROI2:Scale_RBV -# X region -# % gui, FSCN2.rois.roi2, groupHeading, X Region -# % gui, FSCN2.rois.roi2, enum, X, S03SIM-EA-FSCN-02:ROI2:EnableX -# % gui, FSCN2.rois.roi2, readback, X, S03SIM-EA-FSCN-02:ROI2:EnableX_RBV -# % gui, FSCN2.rois.roi2, enum, Autosize X, S03SIM-EA-FSCN-02:ROI2:AutoSizeX -# % gui, FSCN2.rois.roi2, readback, Autosize X, S03SIM-EA-FSCN-02:ROI2:AutoSizeX_RBV -# % gui, FSCN2.rois.roi2, readback, Input Size X, S03SIM-EA-FSCN-02:ROI2:MaxSizeX_RBV -# % gui, FSCN2.rois.roi2, demand, Binning X, S03SIM-EA-FSCN-02:ROI2:BinX -# % gui, FSCN2.rois.roi2, readback, Binning X, S03SIM-EA-FSCN-02:ROI2:BinX_RBV -# % gui, FSCN2.rois.roi2, demand, Start X, S03SIM-EA-FSCN-02:ROI2:MinX -# % gui, FSCN2.rois.roi2, readback, Start X, S03SIM-EA-FSCN-02:ROI2:MinX_RBV -# % gui, FSCN2.rois.roi2, demand, Size X, S03SIM-EA-FSCN-02:ROI2:SizeX -# % gui, FSCN2.rois.roi2, readback, Size X, S03SIM-EA-FSCN-02:ROI2:SizeX_RBV -# % gui, FSCN2.rois.roi2, enum, Reverse X, S03SIM-EA-FSCN-02:ROI2:ReverseX -# % gui, FSCN2.rois.roi2, readback, Reverse X, S03SIM-EA-FSCN-02:ROI2:ReverseX_RBV -# % gui, FSCN2.rois.roi2, readback, Bytes X, S03SIM-EA-FSCN-02:ROI2:ArraySizeX_RBV -# Y region -# % gui, FSCN2.rois.roi2, groupHeading, Y Region -# % gui, FSCN2.rois.roi2, enum, Y, S03SIM-EA-FSCN-02:ROI2:EnableY -# % gui, FSCN2.rois.roi2, readback, Y, S03SIM-EA-FSCN-02:ROI2:EnableY_RBV -# % gui, FSCN2.rois.roi2, enum, Autosize Y, S03SIM-EA-FSCN-02:ROI2:AutoSizeY -# % gui, FSCN2.rois.roi2, readback, Autosize Y, S03SIM-EA-FSCN-02:ROI2:AutoSizeY_RBV -# % gui, FSCN2.rois.roi2, readback, Input size Y, S03SIM-EA-FSCN-02:ROI2:MaxSizeY_RBV -# % gui, FSCN2.rois.roi2, demand, Binning Y, S03SIM-EA-FSCN-02:ROI2:BinY -# % gui, FSCN2.rois.roi2, readback, Binning Y, S03SIM-EA-FSCN-02:ROI2:BinY_RBV -# % gui, FSCN2.rois.roi2, demand, Start Y, S03SIM-EA-FSCN-02:ROI2:MinY -# % gui, FSCN2.rois.roi2, readback, Start Y, S03SIM-EA-FSCN-02:ROI2:MinY_RBV -# % gui, FSCN2.rois.roi2, demand, Size Y, S03SIM-EA-FSCN-02:ROI2:SizeY -# % gui, FSCN2.rois.roi2, readback, Size Y, S03SIM-EA-FSCN-02:ROI2:SizeY_RBV -# % gui, FSCN2.rois.roi2, enum, Reverse Y, S03SIM-EA-FSCN-02:ROI2:ReverseY -# % gui, FSCN2.rois.roi2, readback, Reverse Y, S03SIM-EA-FSCN-02:ROI2:ReverseY_RBV -# % gui, FSCN2.rois.roi2, readback, Bytes Y, S03SIM-EA-FSCN-02:ROI2:ArraySizeY_RBV -# Z region -# % gui, FSCN2.rois.roi2, groupHeading, Z Region -# % gui, FSCN2.rois.roi2, enum, Z, S03SIM-EA-FSCN-02:ROI2:EnableZ -# % gui, FSCN2.rois.roi2, readback, Z, S03SIM-EA-FSCN-02:ROI2:EnableZ_RBV -# % gui, FSCN2.rois.roi2, enum, Autosize Z, S03SIM-EA-FSCN-02:ROI2:AutoSizeZ -# % gui, FSCN2.rois.roi2, readback, Autosize Z, S03SIM-EA-FSCN-02:ROI2:AutoSizeZ_RBV -# % gui, FSCN2.rois.roi2, readback, Input size Z, S03SIM-EA-FSCN-02:ROI2:MaxSizeZ_RBV -# % gui, FSCN2.rois.roi2, demand, Binning Z, S03SIM-EA-FSCN-02:ROI2:BinZ -# % gui, FSCN2.rois.roi2, readback, Binning Z, S03SIM-EA-FSCN-02:ROI2:BinZ_RBV -# % gui, FSCN2.rois.roi2, demand, Start Z, S03SIM-EA-FSCN-02:ROI2:MinZ -# % gui, FSCN2.rois.roi2, readback, Start Z, S03SIM-EA-FSCN-02:ROI2:MinZ_RBV -# % gui, FSCN2.rois.roi2, demand, Size Z, S03SIM-EA-FSCN-02:ROI2:SizeZ -# % gui, FSCN2.rois.roi2, readback, Size Z, S03SIM-EA-FSCN-02:ROI2:SizeZ_RBV -# % gui, FSCN2.rois.roi2, enum, Reverse Z, S03SIM-EA-FSCN-02:ROI2:ReverseZ -# % gui, FSCN2.rois.roi2, readback, Reverse Z, S03SIM-EA-FSCN-02:ROI2:ReverseZ_RBV -# % gui, FSCN2.rois.roi2, readback, Bytes Z, S03SIM-EA-FSCN-02:ROI2:ArraySizeZ_RBV -# Memory -# % gui, FSCN2.rois.roi2, groupHeading, Memory -# % gui, FSCN2.rois.roi2, readback, Max memory, S03SIM-EA-FSCN-02:ROI2:PoolMaxMem -# % gui, FSCN2.rois.roi2, readback, Max buffers, S03SIM-EA-FSCN-02:ROI2:PoolMaxBuffers -# % gui, FSCN2.rois.roi2, readback, Used memory, S03SIM-EA-FSCN-02:ROI2:PoolUsedMem -# % gui, FSCN2.rois.roi2, readback, Allocated buffers, S03SIM-EA-FSCN-02:ROI2:PoolAllocBuffers -# % gui, FSCN2.rois.roi2, readback, Free buffers, S03SIM-EA-FSCN-02:ROI2:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI2:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI2:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI2:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI2:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI2:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI2:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI2:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI2:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ROI2:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI2:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI2:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI2:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:ROI2:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI2:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI2:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI2:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:ROI2:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:ROI2:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI2:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:ROI2:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:ROI2:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI2:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:ROI2:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-02:ROI2:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ROI2:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI2:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ROI2:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI2:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-02:ROI2:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI2:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-02:ROI2:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:ROI2:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI2:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:ROI2:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:ROI2:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI2:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI2:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:ROI2:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:ROI2:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-02:ROI2:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-02:ROI2:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI2:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-02:ROI2:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI2:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:ROI2:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI2:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI2:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-02:ROI2:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)NDARRAY_PORT") - field(VAL, "FSCN2.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI2:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI2:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI2:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI2:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI2:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI2:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI2:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:ROI2:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI2:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI2:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:ROI2:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-02:ROI2:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI2:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI2:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI2:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-02:ROI2:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI2:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI2:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI2:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-02:ROI2:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI2:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI2:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:ROI2:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI2:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:ROI2:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:ROI2:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI2:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:ROI2:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:ROI2:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI2:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:ROI2:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:ROI2:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:ROI2:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI2:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:ROI2:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI2:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI2:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI2:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI2:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI2:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:ROI2:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI2:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI2:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI2:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:ROI2:AsynIO") -{ - field(PORT, "FSCN2.rois.roi2") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the label for the ROI # -################################################################### -record(stringout, "S03SIM-EA-FSCN-02:ROI2:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)NAME") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI2:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)NAME") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the ROI definition # -# including binning, region start and size # -################################################################### - -record(longout, "S03SIM-EA-FSCN-02:ROI2:BinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM0_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:BinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM0_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI2:BinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM1_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:BinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM1_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI2:BinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM2_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:BinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM2_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI2:MinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM0_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:MinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM0_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI2:MinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM1_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:MinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM1_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI2:MinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM2_MIN") - field(LOPR, "1") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:MinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM2_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI2:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM0_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM0_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI2:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM1_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM1_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI2:SizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM2_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:SizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM2_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI2:AutoSizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM0_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI2:AutoSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM0_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI2:AutoSizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM1_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI2:AutoSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM1_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI2:AutoSizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM2_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI2:AutoSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM2_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM0_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM1_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:MaxSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM2_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI2:ReverseX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM0_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI2:ReverseX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM0_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI2:ReverseY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM1_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI2:ReverseY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM1_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI2:ReverseZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM2_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI2:ReverseZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM2_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI2:EnableX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM0_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI2:EnableX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM0_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI2:EnableY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM1_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI2:EnableY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM1_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI2:EnableZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)DIM2_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI2:EnableZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)DIM2_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the scaling of the data. Useful when # -# binning or converting data types # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ROI2:EnableScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)ENABLE_SCALE") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI2:EnableScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)ENABLE_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI2:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)SCALE_VALUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI2:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)SCALE_VALUE") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ROI2:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI2:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-02:ROI2:MaxX") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:ROI2:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:ROI2:MaxX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:ROI2:MinX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:ROI2:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI2:MaxY") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI2:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:ROI2:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:ROI2:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:ROI2:MaxY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:ROI2:MinY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:ROI2:SizeY.HOPR NPP") -} - -################################################################### -# These records whether dimensions of 1 are collapsed (removed) # # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ROI2:CollapseDims") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi2,0,1)COLLAPSE_DIMS") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI2:CollapseDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi2,0,1)COLLAPSE_DIMS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -#=================================================================# -# Template file: NDROI.template -# Database for ND ROIs -# Mark Rivers -# April 22, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, FSCN2.rois.roi3, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-02,R=:ROI3: - -# This associates a BOY screen with the template -# % gui, FSCN2.rois.roi3, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-02, R=:ROI3:, DESC=Region of Interest -# % gui, FSCN2.rois.roi3, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:ROI3:, DESC=Region of Interest -# % gui, FSCN2.rois.roi3, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-02, R=:ROI3:, DESC=Region of Interest - -# % gui, FSCN2.rois.roi3, groupHeading, Info -# % gui, FSCN2.rois.roi3, readback, Port name, S03SIM-EA-FSCN-02:ROI3:PortName_RBV -# % gui, FSCN2.rois.roi3, readback, Plugin type, S03SIM-EA-FSCN-02:ROI3:PluginType_RBV -# Input -# % gui, FSCN2.rois.roi3, demandString, Input, S03SIM-EA-FSCN-02:ROI3:NDArrayPort -# % gui, FSCN2.rois.roi3, readback, Input, S03SIM-EA-FSCN-02:ROI3:NDArrayPort_RBV - -# % gui, FSCN2.rois.roi3, groupHeading, Callback -# % gui, FSCN2.rois.roi3, enum, Callbacks, S03SIM-EA-FSCN-02:ROI3:EnableCallbacks -# % gui, FSCN2.rois.roi3, statusbits, Callbacks, S03SIM-EA-FSCN-02:ROI3:EnableCallbacks_RBV -# % gui, FSCN2.rois.roi3, demand, Min Callback Time, S03SIM-EA-FSCN-02:ROI3:MinCallbackTime -# % gui, FSCN2.rois.roi3, readback, Min Callback Time, S03SIM-EA-FSCN-02:ROI3:MinCallbackTime_RBV -# % gui, FSCN2.rois.roi3, enum, Block Callbacks, S03SIM-EA-FSCN-02:ROI3:BlockingCallbacks -# % gui, FSCN2.rois.roi3, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:ROI3:BlockingCallbacks_RBV - -# % gui, FSCN2.rois.roi3, groupHeading, Counters -# % gui, FSCN2.rois.roi3, demand, Array Counter, S03SIM-EA-FSCN-02:ROI3:ArrayCounter -# % gui, FSCN2.rois.roi3, readback, Array Counter, S03SIM-EA-FSCN-02:ROI3:ArrayCounter_RBV -# % gui, FSCN2.rois.roi3, readback, Array Rate (fps), S03SIM-EA-FSCN-02:ROI3:ArrayRate_RBV -# % gui, FSCN2.rois.roi3, readback, Queue Use, S03SIM-EA-FSCN-02:ROI3:QueueUse -# % gui, FSCN2.rois.roi3, readback, Queue Size, S03SIM-EA-FSCN-02:ROI3:QueueSize -# % gui, FSCN2.rois.roi3, demand, Dropped Arrays, S03SIM-EA-FSCN-02:ROI3:DroppedArrays -# % gui, FSCN2.rois.roi3, readback, Dropped Arrays, S03SIM-EA-FSCN-02:ROI3:DroppedArrays_RBV - -# % gui, FSCN2.rois.roi3, groupHeading, Array Settings -# % gui, FSCN2.rois.roi3, readback, Num Dimensions, S03SIM-EA-FSCN-02:ROI3:NDimensions_RBV -# % gui, FSCN2.rois.roi3, readback, Dim 0 Size, S03SIM-EA-FSCN-02:ROI3:ArraySize0_RBV -# % gui, FSCN2.rois.roi3, readback, Dim 1 Size, S03SIM-EA-FSCN-02:ROI3:ArraySize1_RBV -# % gui, FSCN2.rois.roi3, readback, Dim 2 Size, S03SIM-EA-FSCN-02:ROI3:ArraySize2_RBV -# % gui, FSCN2.rois.roi3, readback, Input Data Type, S03SIM-EA-FSCN-02:ROI3:DataType_RBV -# % gui, FSCN2.rois.roi3, readback, Colour Mode, S03SIM-EA-FSCN-02:ROI3:ColorMode_RBV -# % gui, FSCN2.rois.roi3, readback, Bayer Pattern, S03SIM-EA-FSCN-02:ROI3:BayerPattern_RBV -# % gui, FSCN2.rois.roi3, readback, Unique id, S03SIM-EA-FSCN-02:ROI3:UniqueId_RBV -# % gui, FSCN2.rois.roi3, readback, Timestamp, S03SIM-EA-FSCN-02:ROI3:TimeStamp_RBV - -# Output -# % gui, FSCN2.rois.roi3, groupHeading, Output -# % gui, FSCN2.rois.roi3, demand, Name, S03SIM-EA-FSCN-02:ROI3:Name -# % gui, FSCN2.rois.roi3, enum, Out data type, S03SIM-EA-FSCN-02:ROI3:DataTypeOut -# % gui, FSCN2.rois.roi3, readback, Out data type, S03SIM-EA-FSCN-02:ROI3:DataTypeOut_RBV -# % gui, FSCN2.rois.roi3, demand, Attributes file, S03SIM-EA-FSCN-02:ROI3:NDAttributesFile -# Scaling -# % gui, FSCN2.rois.roi3, groupHeading, Scaling -# % gui, FSCN2.rois.roi3, enum, Enable Scaling, S03SIM-EA-FSCN-02:ROI3:EnableScale -# % gui, FSCN2.rois.roi3, readback, Enable Scaling, S03SIM-EA-FSCN-02:ROI3:EnableScale_RBV -# % gui, FSCN2.rois.roi3, demand, Scale Divisor, S03SIM-EA-FSCN-02:ROI3:Scale -# % gui, FSCN2.rois.roi3, readback, Scale Divisor, S03SIM-EA-FSCN-02:ROI3:Scale_RBV -# X region -# % gui, FSCN2.rois.roi3, groupHeading, X Region -# % gui, FSCN2.rois.roi3, enum, X, S03SIM-EA-FSCN-02:ROI3:EnableX -# % gui, FSCN2.rois.roi3, readback, X, S03SIM-EA-FSCN-02:ROI3:EnableX_RBV -# % gui, FSCN2.rois.roi3, enum, Autosize X, S03SIM-EA-FSCN-02:ROI3:AutoSizeX -# % gui, FSCN2.rois.roi3, readback, Autosize X, S03SIM-EA-FSCN-02:ROI3:AutoSizeX_RBV -# % gui, FSCN2.rois.roi3, readback, Input Size X, S03SIM-EA-FSCN-02:ROI3:MaxSizeX_RBV -# % gui, FSCN2.rois.roi3, demand, Binning X, S03SIM-EA-FSCN-02:ROI3:BinX -# % gui, FSCN2.rois.roi3, readback, Binning X, S03SIM-EA-FSCN-02:ROI3:BinX_RBV -# % gui, FSCN2.rois.roi3, demand, Start X, S03SIM-EA-FSCN-02:ROI3:MinX -# % gui, FSCN2.rois.roi3, readback, Start X, S03SIM-EA-FSCN-02:ROI3:MinX_RBV -# % gui, FSCN2.rois.roi3, demand, Size X, S03SIM-EA-FSCN-02:ROI3:SizeX -# % gui, FSCN2.rois.roi3, readback, Size X, S03SIM-EA-FSCN-02:ROI3:SizeX_RBV -# % gui, FSCN2.rois.roi3, enum, Reverse X, S03SIM-EA-FSCN-02:ROI3:ReverseX -# % gui, FSCN2.rois.roi3, readback, Reverse X, S03SIM-EA-FSCN-02:ROI3:ReverseX_RBV -# % gui, FSCN2.rois.roi3, readback, Bytes X, S03SIM-EA-FSCN-02:ROI3:ArraySizeX_RBV -# Y region -# % gui, FSCN2.rois.roi3, groupHeading, Y Region -# % gui, FSCN2.rois.roi3, enum, Y, S03SIM-EA-FSCN-02:ROI3:EnableY -# % gui, FSCN2.rois.roi3, readback, Y, S03SIM-EA-FSCN-02:ROI3:EnableY_RBV -# % gui, FSCN2.rois.roi3, enum, Autosize Y, S03SIM-EA-FSCN-02:ROI3:AutoSizeY -# % gui, FSCN2.rois.roi3, readback, Autosize Y, S03SIM-EA-FSCN-02:ROI3:AutoSizeY_RBV -# % gui, FSCN2.rois.roi3, readback, Input size Y, S03SIM-EA-FSCN-02:ROI3:MaxSizeY_RBV -# % gui, FSCN2.rois.roi3, demand, Binning Y, S03SIM-EA-FSCN-02:ROI3:BinY -# % gui, FSCN2.rois.roi3, readback, Binning Y, S03SIM-EA-FSCN-02:ROI3:BinY_RBV -# % gui, FSCN2.rois.roi3, demand, Start Y, S03SIM-EA-FSCN-02:ROI3:MinY -# % gui, FSCN2.rois.roi3, readback, Start Y, S03SIM-EA-FSCN-02:ROI3:MinY_RBV -# % gui, FSCN2.rois.roi3, demand, Size Y, S03SIM-EA-FSCN-02:ROI3:SizeY -# % gui, FSCN2.rois.roi3, readback, Size Y, S03SIM-EA-FSCN-02:ROI3:SizeY_RBV -# % gui, FSCN2.rois.roi3, enum, Reverse Y, S03SIM-EA-FSCN-02:ROI3:ReverseY -# % gui, FSCN2.rois.roi3, readback, Reverse Y, S03SIM-EA-FSCN-02:ROI3:ReverseY_RBV -# % gui, FSCN2.rois.roi3, readback, Bytes Y, S03SIM-EA-FSCN-02:ROI3:ArraySizeY_RBV -# Z region -# % gui, FSCN2.rois.roi3, groupHeading, Z Region -# % gui, FSCN2.rois.roi3, enum, Z, S03SIM-EA-FSCN-02:ROI3:EnableZ -# % gui, FSCN2.rois.roi3, readback, Z, S03SIM-EA-FSCN-02:ROI3:EnableZ_RBV -# % gui, FSCN2.rois.roi3, enum, Autosize Z, S03SIM-EA-FSCN-02:ROI3:AutoSizeZ -# % gui, FSCN2.rois.roi3, readback, Autosize Z, S03SIM-EA-FSCN-02:ROI3:AutoSizeZ_RBV -# % gui, FSCN2.rois.roi3, readback, Input size Z, S03SIM-EA-FSCN-02:ROI3:MaxSizeZ_RBV -# % gui, FSCN2.rois.roi3, demand, Binning Z, S03SIM-EA-FSCN-02:ROI3:BinZ -# % gui, FSCN2.rois.roi3, readback, Binning Z, S03SIM-EA-FSCN-02:ROI3:BinZ_RBV -# % gui, FSCN2.rois.roi3, demand, Start Z, S03SIM-EA-FSCN-02:ROI3:MinZ -# % gui, FSCN2.rois.roi3, readback, Start Z, S03SIM-EA-FSCN-02:ROI3:MinZ_RBV -# % gui, FSCN2.rois.roi3, demand, Size Z, S03SIM-EA-FSCN-02:ROI3:SizeZ -# % gui, FSCN2.rois.roi3, readback, Size Z, S03SIM-EA-FSCN-02:ROI3:SizeZ_RBV -# % gui, FSCN2.rois.roi3, enum, Reverse Z, S03SIM-EA-FSCN-02:ROI3:ReverseZ -# % gui, FSCN2.rois.roi3, readback, Reverse Z, S03SIM-EA-FSCN-02:ROI3:ReverseZ_RBV -# % gui, FSCN2.rois.roi3, readback, Bytes Z, S03SIM-EA-FSCN-02:ROI3:ArraySizeZ_RBV -# Memory -# % gui, FSCN2.rois.roi3, groupHeading, Memory -# % gui, FSCN2.rois.roi3, readback, Max memory, S03SIM-EA-FSCN-02:ROI3:PoolMaxMem -# % gui, FSCN2.rois.roi3, readback, Max buffers, S03SIM-EA-FSCN-02:ROI3:PoolMaxBuffers -# % gui, FSCN2.rois.roi3, readback, Used memory, S03SIM-EA-FSCN-02:ROI3:PoolUsedMem -# % gui, FSCN2.rois.roi3, readback, Allocated buffers, S03SIM-EA-FSCN-02:ROI3:PoolAllocBuffers -# % gui, FSCN2.rois.roi3, readback, Free buffers, S03SIM-EA-FSCN-02:ROI3:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI3:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI3:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI3:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI3:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI3:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI3:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI3:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI3:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ROI3:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI3:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI3:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI3:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:ROI3:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI3:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI3:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI3:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:ROI3:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:ROI3:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI3:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:ROI3:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:ROI3:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI3:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:ROI3:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-02:ROI3:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ROI3:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI3:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ROI3:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI3:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-02:ROI3:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI3:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-02:ROI3:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:ROI3:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI3:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:ROI3:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:ROI3:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI3:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI3:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:ROI3:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:ROI3:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-02:ROI3:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-02:ROI3:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI3:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-02:ROI3:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI3:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:ROI3:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI3:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI3:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-02:ROI3:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)NDARRAY_PORT") - field(VAL, "FSCN2.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI3:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI3:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI3:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI3:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI3:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI3:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI3:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:ROI3:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI3:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI3:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:ROI3:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-02:ROI3:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI3:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI3:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI3:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-02:ROI3:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI3:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI3:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI3:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-02:ROI3:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI3:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI3:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:ROI3:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI3:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:ROI3:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:ROI3:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI3:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:ROI3:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:ROI3:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI3:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:ROI3:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:ROI3:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:ROI3:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI3:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:ROI3:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI3:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI3:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI3:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI3:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI3:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:ROI3:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI3:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI3:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI3:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:ROI3:AsynIO") -{ - field(PORT, "FSCN2.rois.roi3") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the label for the ROI # -################################################################### -record(stringout, "S03SIM-EA-FSCN-02:ROI3:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)NAME") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI3:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)NAME") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the ROI definition # -# including binning, region start and size # -################################################################### - -record(longout, "S03SIM-EA-FSCN-02:ROI3:BinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM0_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:BinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM0_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI3:BinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM1_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:BinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM1_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI3:BinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM2_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:BinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM2_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI3:MinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM0_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:MinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM0_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI3:MinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM1_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:MinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM1_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI3:MinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM2_MIN") - field(LOPR, "1") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:MinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM2_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI3:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM0_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM0_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI3:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM1_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM1_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI3:SizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM2_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:SizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM2_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI3:AutoSizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM0_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI3:AutoSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM0_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI3:AutoSizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM1_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI3:AutoSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM1_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI3:AutoSizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM2_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI3:AutoSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM2_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM0_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM1_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:MaxSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM2_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI3:ReverseX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM0_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI3:ReverseX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM0_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI3:ReverseY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM1_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI3:ReverseY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM1_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI3:ReverseZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM2_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI3:ReverseZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM2_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI3:EnableX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM0_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI3:EnableX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM0_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI3:EnableY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM1_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI3:EnableY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM1_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI3:EnableZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)DIM2_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI3:EnableZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)DIM2_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the scaling of the data. Useful when # -# binning or converting data types # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ROI3:EnableScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)ENABLE_SCALE") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI3:EnableScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)ENABLE_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI3:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)SCALE_VALUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI3:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)SCALE_VALUE") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ROI3:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI3:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-02:ROI3:MaxX") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:ROI3:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:ROI3:MaxX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:ROI3:MinX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:ROI3:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI3:MaxY") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI3:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:ROI3:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:ROI3:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:ROI3:MaxY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:ROI3:MinY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:ROI3:SizeY.HOPR NPP") -} - -################################################################### -# These records whether dimensions of 1 are collapsed (removed) # # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ROI3:CollapseDims") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi3,0,1)COLLAPSE_DIMS") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI3:CollapseDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi3,0,1)COLLAPSE_DIMS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -#=================================================================# -# Template file: NDROI.template -# Database for ND ROIs -# Mark Rivers -# April 22, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, FSCN2.rois.roi4, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-02,R=:ROI4: - -# This associates a BOY screen with the template -# % gui, FSCN2.rois.roi4, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-02, R=:ROI4:, DESC=Region of Interest -# % gui, FSCN2.rois.roi4, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:ROI4:, DESC=Region of Interest -# % gui, FSCN2.rois.roi4, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-02, R=:ROI4:, DESC=Region of Interest - -# % gui, FSCN2.rois.roi4, groupHeading, Info -# % gui, FSCN2.rois.roi4, readback, Port name, S03SIM-EA-FSCN-02:ROI4:PortName_RBV -# % gui, FSCN2.rois.roi4, readback, Plugin type, S03SIM-EA-FSCN-02:ROI4:PluginType_RBV -# Input -# % gui, FSCN2.rois.roi4, demandString, Input, S03SIM-EA-FSCN-02:ROI4:NDArrayPort -# % gui, FSCN2.rois.roi4, readback, Input, S03SIM-EA-FSCN-02:ROI4:NDArrayPort_RBV - -# % gui, FSCN2.rois.roi4, groupHeading, Callback -# % gui, FSCN2.rois.roi4, enum, Callbacks, S03SIM-EA-FSCN-02:ROI4:EnableCallbacks -# % gui, FSCN2.rois.roi4, statusbits, Callbacks, S03SIM-EA-FSCN-02:ROI4:EnableCallbacks_RBV -# % gui, FSCN2.rois.roi4, demand, Min Callback Time, S03SIM-EA-FSCN-02:ROI4:MinCallbackTime -# % gui, FSCN2.rois.roi4, readback, Min Callback Time, S03SIM-EA-FSCN-02:ROI4:MinCallbackTime_RBV -# % gui, FSCN2.rois.roi4, enum, Block Callbacks, S03SIM-EA-FSCN-02:ROI4:BlockingCallbacks -# % gui, FSCN2.rois.roi4, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:ROI4:BlockingCallbacks_RBV - -# % gui, FSCN2.rois.roi4, groupHeading, Counters -# % gui, FSCN2.rois.roi4, demand, Array Counter, S03SIM-EA-FSCN-02:ROI4:ArrayCounter -# % gui, FSCN2.rois.roi4, readback, Array Counter, S03SIM-EA-FSCN-02:ROI4:ArrayCounter_RBV -# % gui, FSCN2.rois.roi4, readback, Array Rate (fps), S03SIM-EA-FSCN-02:ROI4:ArrayRate_RBV -# % gui, FSCN2.rois.roi4, readback, Queue Use, S03SIM-EA-FSCN-02:ROI4:QueueUse -# % gui, FSCN2.rois.roi4, readback, Queue Size, S03SIM-EA-FSCN-02:ROI4:QueueSize -# % gui, FSCN2.rois.roi4, demand, Dropped Arrays, S03SIM-EA-FSCN-02:ROI4:DroppedArrays -# % gui, FSCN2.rois.roi4, readback, Dropped Arrays, S03SIM-EA-FSCN-02:ROI4:DroppedArrays_RBV - -# % gui, FSCN2.rois.roi4, groupHeading, Array Settings -# % gui, FSCN2.rois.roi4, readback, Num Dimensions, S03SIM-EA-FSCN-02:ROI4:NDimensions_RBV -# % gui, FSCN2.rois.roi4, readback, Dim 0 Size, S03SIM-EA-FSCN-02:ROI4:ArraySize0_RBV -# % gui, FSCN2.rois.roi4, readback, Dim 1 Size, S03SIM-EA-FSCN-02:ROI4:ArraySize1_RBV -# % gui, FSCN2.rois.roi4, readback, Dim 2 Size, S03SIM-EA-FSCN-02:ROI4:ArraySize2_RBV -# % gui, FSCN2.rois.roi4, readback, Input Data Type, S03SIM-EA-FSCN-02:ROI4:DataType_RBV -# % gui, FSCN2.rois.roi4, readback, Colour Mode, S03SIM-EA-FSCN-02:ROI4:ColorMode_RBV -# % gui, FSCN2.rois.roi4, readback, Bayer Pattern, S03SIM-EA-FSCN-02:ROI4:BayerPattern_RBV -# % gui, FSCN2.rois.roi4, readback, Unique id, S03SIM-EA-FSCN-02:ROI4:UniqueId_RBV -# % gui, FSCN2.rois.roi4, readback, Timestamp, S03SIM-EA-FSCN-02:ROI4:TimeStamp_RBV - -# Output -# % gui, FSCN2.rois.roi4, groupHeading, Output -# % gui, FSCN2.rois.roi4, demand, Name, S03SIM-EA-FSCN-02:ROI4:Name -# % gui, FSCN2.rois.roi4, enum, Out data type, S03SIM-EA-FSCN-02:ROI4:DataTypeOut -# % gui, FSCN2.rois.roi4, readback, Out data type, S03SIM-EA-FSCN-02:ROI4:DataTypeOut_RBV -# % gui, FSCN2.rois.roi4, demand, Attributes file, S03SIM-EA-FSCN-02:ROI4:NDAttributesFile -# Scaling -# % gui, FSCN2.rois.roi4, groupHeading, Scaling -# % gui, FSCN2.rois.roi4, enum, Enable Scaling, S03SIM-EA-FSCN-02:ROI4:EnableScale -# % gui, FSCN2.rois.roi4, readback, Enable Scaling, S03SIM-EA-FSCN-02:ROI4:EnableScale_RBV -# % gui, FSCN2.rois.roi4, demand, Scale Divisor, S03SIM-EA-FSCN-02:ROI4:Scale -# % gui, FSCN2.rois.roi4, readback, Scale Divisor, S03SIM-EA-FSCN-02:ROI4:Scale_RBV -# X region -# % gui, FSCN2.rois.roi4, groupHeading, X Region -# % gui, FSCN2.rois.roi4, enum, X, S03SIM-EA-FSCN-02:ROI4:EnableX -# % gui, FSCN2.rois.roi4, readback, X, S03SIM-EA-FSCN-02:ROI4:EnableX_RBV -# % gui, FSCN2.rois.roi4, enum, Autosize X, S03SIM-EA-FSCN-02:ROI4:AutoSizeX -# % gui, FSCN2.rois.roi4, readback, Autosize X, S03SIM-EA-FSCN-02:ROI4:AutoSizeX_RBV -# % gui, FSCN2.rois.roi4, readback, Input Size X, S03SIM-EA-FSCN-02:ROI4:MaxSizeX_RBV -# % gui, FSCN2.rois.roi4, demand, Binning X, S03SIM-EA-FSCN-02:ROI4:BinX -# % gui, FSCN2.rois.roi4, readback, Binning X, S03SIM-EA-FSCN-02:ROI4:BinX_RBV -# % gui, FSCN2.rois.roi4, demand, Start X, S03SIM-EA-FSCN-02:ROI4:MinX -# % gui, FSCN2.rois.roi4, readback, Start X, S03SIM-EA-FSCN-02:ROI4:MinX_RBV -# % gui, FSCN2.rois.roi4, demand, Size X, S03SIM-EA-FSCN-02:ROI4:SizeX -# % gui, FSCN2.rois.roi4, readback, Size X, S03SIM-EA-FSCN-02:ROI4:SizeX_RBV -# % gui, FSCN2.rois.roi4, enum, Reverse X, S03SIM-EA-FSCN-02:ROI4:ReverseX -# % gui, FSCN2.rois.roi4, readback, Reverse X, S03SIM-EA-FSCN-02:ROI4:ReverseX_RBV -# % gui, FSCN2.rois.roi4, readback, Bytes X, S03SIM-EA-FSCN-02:ROI4:ArraySizeX_RBV -# Y region -# % gui, FSCN2.rois.roi4, groupHeading, Y Region -# % gui, FSCN2.rois.roi4, enum, Y, S03SIM-EA-FSCN-02:ROI4:EnableY -# % gui, FSCN2.rois.roi4, readback, Y, S03SIM-EA-FSCN-02:ROI4:EnableY_RBV -# % gui, FSCN2.rois.roi4, enum, Autosize Y, S03SIM-EA-FSCN-02:ROI4:AutoSizeY -# % gui, FSCN2.rois.roi4, readback, Autosize Y, S03SIM-EA-FSCN-02:ROI4:AutoSizeY_RBV -# % gui, FSCN2.rois.roi4, readback, Input size Y, S03SIM-EA-FSCN-02:ROI4:MaxSizeY_RBV -# % gui, FSCN2.rois.roi4, demand, Binning Y, S03SIM-EA-FSCN-02:ROI4:BinY -# % gui, FSCN2.rois.roi4, readback, Binning Y, S03SIM-EA-FSCN-02:ROI4:BinY_RBV -# % gui, FSCN2.rois.roi4, demand, Start Y, S03SIM-EA-FSCN-02:ROI4:MinY -# % gui, FSCN2.rois.roi4, readback, Start Y, S03SIM-EA-FSCN-02:ROI4:MinY_RBV -# % gui, FSCN2.rois.roi4, demand, Size Y, S03SIM-EA-FSCN-02:ROI4:SizeY -# % gui, FSCN2.rois.roi4, readback, Size Y, S03SIM-EA-FSCN-02:ROI4:SizeY_RBV -# % gui, FSCN2.rois.roi4, enum, Reverse Y, S03SIM-EA-FSCN-02:ROI4:ReverseY -# % gui, FSCN2.rois.roi4, readback, Reverse Y, S03SIM-EA-FSCN-02:ROI4:ReverseY_RBV -# % gui, FSCN2.rois.roi4, readback, Bytes Y, S03SIM-EA-FSCN-02:ROI4:ArraySizeY_RBV -# Z region -# % gui, FSCN2.rois.roi4, groupHeading, Z Region -# % gui, FSCN2.rois.roi4, enum, Z, S03SIM-EA-FSCN-02:ROI4:EnableZ -# % gui, FSCN2.rois.roi4, readback, Z, S03SIM-EA-FSCN-02:ROI4:EnableZ_RBV -# % gui, FSCN2.rois.roi4, enum, Autosize Z, S03SIM-EA-FSCN-02:ROI4:AutoSizeZ -# % gui, FSCN2.rois.roi4, readback, Autosize Z, S03SIM-EA-FSCN-02:ROI4:AutoSizeZ_RBV -# % gui, FSCN2.rois.roi4, readback, Input size Z, S03SIM-EA-FSCN-02:ROI4:MaxSizeZ_RBV -# % gui, FSCN2.rois.roi4, demand, Binning Z, S03SIM-EA-FSCN-02:ROI4:BinZ -# % gui, FSCN2.rois.roi4, readback, Binning Z, S03SIM-EA-FSCN-02:ROI4:BinZ_RBV -# % gui, FSCN2.rois.roi4, demand, Start Z, S03SIM-EA-FSCN-02:ROI4:MinZ -# % gui, FSCN2.rois.roi4, readback, Start Z, S03SIM-EA-FSCN-02:ROI4:MinZ_RBV -# % gui, FSCN2.rois.roi4, demand, Size Z, S03SIM-EA-FSCN-02:ROI4:SizeZ -# % gui, FSCN2.rois.roi4, readback, Size Z, S03SIM-EA-FSCN-02:ROI4:SizeZ_RBV -# % gui, FSCN2.rois.roi4, enum, Reverse Z, S03SIM-EA-FSCN-02:ROI4:ReverseZ -# % gui, FSCN2.rois.roi4, readback, Reverse Z, S03SIM-EA-FSCN-02:ROI4:ReverseZ_RBV -# % gui, FSCN2.rois.roi4, readback, Bytes Z, S03SIM-EA-FSCN-02:ROI4:ArraySizeZ_RBV -# Memory -# % gui, FSCN2.rois.roi4, groupHeading, Memory -# % gui, FSCN2.rois.roi4, readback, Max memory, S03SIM-EA-FSCN-02:ROI4:PoolMaxMem -# % gui, FSCN2.rois.roi4, readback, Max buffers, S03SIM-EA-FSCN-02:ROI4:PoolMaxBuffers -# % gui, FSCN2.rois.roi4, readback, Used memory, S03SIM-EA-FSCN-02:ROI4:PoolUsedMem -# % gui, FSCN2.rois.roi4, readback, Allocated buffers, S03SIM-EA-FSCN-02:ROI4:PoolAllocBuffers -# % gui, FSCN2.rois.roi4, readback, Free buffers, S03SIM-EA-FSCN-02:ROI4:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI4:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI4:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI4:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI4:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI4:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI4:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI4:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI4:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ROI4:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI4:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI4:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI4:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:ROI4:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI4:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI4:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI4:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:ROI4:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:ROI4:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI4:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:ROI4:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:ROI4:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI4:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:ROI4:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-02:ROI4:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ROI4:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI4:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ROI4:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI4:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-02:ROI4:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI4:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-02:ROI4:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:ROI4:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI4:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:ROI4:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:ROI4:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI4:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI4:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:ROI4:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:ROI4:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-02:ROI4:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-02:ROI4:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI4:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-02:ROI4:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI4:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:ROI4:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI4:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI4:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-02:ROI4:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)NDARRAY_PORT") - field(VAL, "FSCN2.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI4:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI4:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI4:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI4:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI4:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI4:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI4:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:ROI4:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI4:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI4:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:ROI4:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-02:ROI4:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI4:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI4:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI4:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-02:ROI4:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI4:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI4:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI4:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-02:ROI4:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI4:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI4:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:ROI4:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI4:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:ROI4:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:ROI4:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI4:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:ROI4:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:ROI4:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI4:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:ROI4:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:ROI4:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:ROI4:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI4:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:ROI4:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI4:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI4:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI4:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI4:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI4:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:ROI4:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI4:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI4:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI4:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:ROI4:AsynIO") -{ - field(PORT, "FSCN2.rois.roi4") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the label for the ROI # -################################################################### -record(stringout, "S03SIM-EA-FSCN-02:ROI4:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)NAME") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI4:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)NAME") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the ROI definition # -# including binning, region start and size # -################################################################### - -record(longout, "S03SIM-EA-FSCN-02:ROI4:BinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM0_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:BinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM0_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI4:BinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM1_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:BinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM1_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI4:BinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM2_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:BinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM2_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI4:MinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM0_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:MinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM0_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI4:MinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM1_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:MinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM1_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI4:MinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM2_MIN") - field(LOPR, "1") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:MinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM2_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI4:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM0_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM0_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI4:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM1_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM1_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI4:SizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM2_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:SizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM2_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI4:AutoSizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM0_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI4:AutoSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM0_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI4:AutoSizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM1_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI4:AutoSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM1_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI4:AutoSizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM2_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI4:AutoSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM2_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM0_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM1_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:MaxSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM2_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI4:ReverseX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM0_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI4:ReverseX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM0_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI4:ReverseY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM1_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI4:ReverseY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM1_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI4:ReverseZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM2_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI4:ReverseZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM2_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI4:EnableX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM0_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI4:EnableX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM0_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI4:EnableY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM1_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI4:EnableY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM1_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI4:EnableZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)DIM2_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI4:EnableZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)DIM2_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the scaling of the data. Useful when # -# binning or converting data types # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ROI4:EnableScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)ENABLE_SCALE") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI4:EnableScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)ENABLE_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI4:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)SCALE_VALUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI4:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)SCALE_VALUE") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ROI4:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI4:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-02:ROI4:MaxX") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:ROI4:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:ROI4:MaxX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:ROI4:MinX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:ROI4:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI4:MaxY") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI4:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:ROI4:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:ROI4:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:ROI4:MaxY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:ROI4:MinY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:ROI4:SizeY.HOPR NPP") -} - -################################################################### -# These records whether dimensions of 1 are collapsed (removed) # # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ROI4:CollapseDims") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi4,0,1)COLLAPSE_DIMS") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI4:CollapseDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi4,0,1)COLLAPSE_DIMS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -#=================================================================# -# Template file: NDROI.template -# Database for ND ROIs -# Mark Rivers -# April 22, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, FSCN2.rois.roi5, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-02,R=:ROI5: - -# This associates a BOY screen with the template -# % gui, FSCN2.rois.roi5, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-02, R=:ROI5:, DESC=Region of Interest -# % gui, FSCN2.rois.roi5, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:ROI5:, DESC=Region of Interest -# % gui, FSCN2.rois.roi5, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-02, R=:ROI5:, DESC=Region of Interest - -# % gui, FSCN2.rois.roi5, groupHeading, Info -# % gui, FSCN2.rois.roi5, readback, Port name, S03SIM-EA-FSCN-02:ROI5:PortName_RBV -# % gui, FSCN2.rois.roi5, readback, Plugin type, S03SIM-EA-FSCN-02:ROI5:PluginType_RBV -# Input -# % gui, FSCN2.rois.roi5, demandString, Input, S03SIM-EA-FSCN-02:ROI5:NDArrayPort -# % gui, FSCN2.rois.roi5, readback, Input, S03SIM-EA-FSCN-02:ROI5:NDArrayPort_RBV - -# % gui, FSCN2.rois.roi5, groupHeading, Callback -# % gui, FSCN2.rois.roi5, enum, Callbacks, S03SIM-EA-FSCN-02:ROI5:EnableCallbacks -# % gui, FSCN2.rois.roi5, statusbits, Callbacks, S03SIM-EA-FSCN-02:ROI5:EnableCallbacks_RBV -# % gui, FSCN2.rois.roi5, demand, Min Callback Time, S03SIM-EA-FSCN-02:ROI5:MinCallbackTime -# % gui, FSCN2.rois.roi5, readback, Min Callback Time, S03SIM-EA-FSCN-02:ROI5:MinCallbackTime_RBV -# % gui, FSCN2.rois.roi5, enum, Block Callbacks, S03SIM-EA-FSCN-02:ROI5:BlockingCallbacks -# % gui, FSCN2.rois.roi5, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:ROI5:BlockingCallbacks_RBV - -# % gui, FSCN2.rois.roi5, groupHeading, Counters -# % gui, FSCN2.rois.roi5, demand, Array Counter, S03SIM-EA-FSCN-02:ROI5:ArrayCounter -# % gui, FSCN2.rois.roi5, readback, Array Counter, S03SIM-EA-FSCN-02:ROI5:ArrayCounter_RBV -# % gui, FSCN2.rois.roi5, readback, Array Rate (fps), S03SIM-EA-FSCN-02:ROI5:ArrayRate_RBV -# % gui, FSCN2.rois.roi5, readback, Queue Use, S03SIM-EA-FSCN-02:ROI5:QueueUse -# % gui, FSCN2.rois.roi5, readback, Queue Size, S03SIM-EA-FSCN-02:ROI5:QueueSize -# % gui, FSCN2.rois.roi5, demand, Dropped Arrays, S03SIM-EA-FSCN-02:ROI5:DroppedArrays -# % gui, FSCN2.rois.roi5, readback, Dropped Arrays, S03SIM-EA-FSCN-02:ROI5:DroppedArrays_RBV - -# % gui, FSCN2.rois.roi5, groupHeading, Array Settings -# % gui, FSCN2.rois.roi5, readback, Num Dimensions, S03SIM-EA-FSCN-02:ROI5:NDimensions_RBV -# % gui, FSCN2.rois.roi5, readback, Dim 0 Size, S03SIM-EA-FSCN-02:ROI5:ArraySize0_RBV -# % gui, FSCN2.rois.roi5, readback, Dim 1 Size, S03SIM-EA-FSCN-02:ROI5:ArraySize1_RBV -# % gui, FSCN2.rois.roi5, readback, Dim 2 Size, S03SIM-EA-FSCN-02:ROI5:ArraySize2_RBV -# % gui, FSCN2.rois.roi5, readback, Input Data Type, S03SIM-EA-FSCN-02:ROI5:DataType_RBV -# % gui, FSCN2.rois.roi5, readback, Colour Mode, S03SIM-EA-FSCN-02:ROI5:ColorMode_RBV -# % gui, FSCN2.rois.roi5, readback, Bayer Pattern, S03SIM-EA-FSCN-02:ROI5:BayerPattern_RBV -# % gui, FSCN2.rois.roi5, readback, Unique id, S03SIM-EA-FSCN-02:ROI5:UniqueId_RBV -# % gui, FSCN2.rois.roi5, readback, Timestamp, S03SIM-EA-FSCN-02:ROI5:TimeStamp_RBV - -# Output -# % gui, FSCN2.rois.roi5, groupHeading, Output -# % gui, FSCN2.rois.roi5, demand, Name, S03SIM-EA-FSCN-02:ROI5:Name -# % gui, FSCN2.rois.roi5, enum, Out data type, S03SIM-EA-FSCN-02:ROI5:DataTypeOut -# % gui, FSCN2.rois.roi5, readback, Out data type, S03SIM-EA-FSCN-02:ROI5:DataTypeOut_RBV -# % gui, FSCN2.rois.roi5, demand, Attributes file, S03SIM-EA-FSCN-02:ROI5:NDAttributesFile -# Scaling -# % gui, FSCN2.rois.roi5, groupHeading, Scaling -# % gui, FSCN2.rois.roi5, enum, Enable Scaling, S03SIM-EA-FSCN-02:ROI5:EnableScale -# % gui, FSCN2.rois.roi5, readback, Enable Scaling, S03SIM-EA-FSCN-02:ROI5:EnableScale_RBV -# % gui, FSCN2.rois.roi5, demand, Scale Divisor, S03SIM-EA-FSCN-02:ROI5:Scale -# % gui, FSCN2.rois.roi5, readback, Scale Divisor, S03SIM-EA-FSCN-02:ROI5:Scale_RBV -# X region -# % gui, FSCN2.rois.roi5, groupHeading, X Region -# % gui, FSCN2.rois.roi5, enum, X, S03SIM-EA-FSCN-02:ROI5:EnableX -# % gui, FSCN2.rois.roi5, readback, X, S03SIM-EA-FSCN-02:ROI5:EnableX_RBV -# % gui, FSCN2.rois.roi5, enum, Autosize X, S03SIM-EA-FSCN-02:ROI5:AutoSizeX -# % gui, FSCN2.rois.roi5, readback, Autosize X, S03SIM-EA-FSCN-02:ROI5:AutoSizeX_RBV -# % gui, FSCN2.rois.roi5, readback, Input Size X, S03SIM-EA-FSCN-02:ROI5:MaxSizeX_RBV -# % gui, FSCN2.rois.roi5, demand, Binning X, S03SIM-EA-FSCN-02:ROI5:BinX -# % gui, FSCN2.rois.roi5, readback, Binning X, S03SIM-EA-FSCN-02:ROI5:BinX_RBV -# % gui, FSCN2.rois.roi5, demand, Start X, S03SIM-EA-FSCN-02:ROI5:MinX -# % gui, FSCN2.rois.roi5, readback, Start X, S03SIM-EA-FSCN-02:ROI5:MinX_RBV -# % gui, FSCN2.rois.roi5, demand, Size X, S03SIM-EA-FSCN-02:ROI5:SizeX -# % gui, FSCN2.rois.roi5, readback, Size X, S03SIM-EA-FSCN-02:ROI5:SizeX_RBV -# % gui, FSCN2.rois.roi5, enum, Reverse X, S03SIM-EA-FSCN-02:ROI5:ReverseX -# % gui, FSCN2.rois.roi5, readback, Reverse X, S03SIM-EA-FSCN-02:ROI5:ReverseX_RBV -# % gui, FSCN2.rois.roi5, readback, Bytes X, S03SIM-EA-FSCN-02:ROI5:ArraySizeX_RBV -# Y region -# % gui, FSCN2.rois.roi5, groupHeading, Y Region -# % gui, FSCN2.rois.roi5, enum, Y, S03SIM-EA-FSCN-02:ROI5:EnableY -# % gui, FSCN2.rois.roi5, readback, Y, S03SIM-EA-FSCN-02:ROI5:EnableY_RBV -# % gui, FSCN2.rois.roi5, enum, Autosize Y, S03SIM-EA-FSCN-02:ROI5:AutoSizeY -# % gui, FSCN2.rois.roi5, readback, Autosize Y, S03SIM-EA-FSCN-02:ROI5:AutoSizeY_RBV -# % gui, FSCN2.rois.roi5, readback, Input size Y, S03SIM-EA-FSCN-02:ROI5:MaxSizeY_RBV -# % gui, FSCN2.rois.roi5, demand, Binning Y, S03SIM-EA-FSCN-02:ROI5:BinY -# % gui, FSCN2.rois.roi5, readback, Binning Y, S03SIM-EA-FSCN-02:ROI5:BinY_RBV -# % gui, FSCN2.rois.roi5, demand, Start Y, S03SIM-EA-FSCN-02:ROI5:MinY -# % gui, FSCN2.rois.roi5, readback, Start Y, S03SIM-EA-FSCN-02:ROI5:MinY_RBV -# % gui, FSCN2.rois.roi5, demand, Size Y, S03SIM-EA-FSCN-02:ROI5:SizeY -# % gui, FSCN2.rois.roi5, readback, Size Y, S03SIM-EA-FSCN-02:ROI5:SizeY_RBV -# % gui, FSCN2.rois.roi5, enum, Reverse Y, S03SIM-EA-FSCN-02:ROI5:ReverseY -# % gui, FSCN2.rois.roi5, readback, Reverse Y, S03SIM-EA-FSCN-02:ROI5:ReverseY_RBV -# % gui, FSCN2.rois.roi5, readback, Bytes Y, S03SIM-EA-FSCN-02:ROI5:ArraySizeY_RBV -# Z region -# % gui, FSCN2.rois.roi5, groupHeading, Z Region -# % gui, FSCN2.rois.roi5, enum, Z, S03SIM-EA-FSCN-02:ROI5:EnableZ -# % gui, FSCN2.rois.roi5, readback, Z, S03SIM-EA-FSCN-02:ROI5:EnableZ_RBV -# % gui, FSCN2.rois.roi5, enum, Autosize Z, S03SIM-EA-FSCN-02:ROI5:AutoSizeZ -# % gui, FSCN2.rois.roi5, readback, Autosize Z, S03SIM-EA-FSCN-02:ROI5:AutoSizeZ_RBV -# % gui, FSCN2.rois.roi5, readback, Input size Z, S03SIM-EA-FSCN-02:ROI5:MaxSizeZ_RBV -# % gui, FSCN2.rois.roi5, demand, Binning Z, S03SIM-EA-FSCN-02:ROI5:BinZ -# % gui, FSCN2.rois.roi5, readback, Binning Z, S03SIM-EA-FSCN-02:ROI5:BinZ_RBV -# % gui, FSCN2.rois.roi5, demand, Start Z, S03SIM-EA-FSCN-02:ROI5:MinZ -# % gui, FSCN2.rois.roi5, readback, Start Z, S03SIM-EA-FSCN-02:ROI5:MinZ_RBV -# % gui, FSCN2.rois.roi5, demand, Size Z, S03SIM-EA-FSCN-02:ROI5:SizeZ -# % gui, FSCN2.rois.roi5, readback, Size Z, S03SIM-EA-FSCN-02:ROI5:SizeZ_RBV -# % gui, FSCN2.rois.roi5, enum, Reverse Z, S03SIM-EA-FSCN-02:ROI5:ReverseZ -# % gui, FSCN2.rois.roi5, readback, Reverse Z, S03SIM-EA-FSCN-02:ROI5:ReverseZ_RBV -# % gui, FSCN2.rois.roi5, readback, Bytes Z, S03SIM-EA-FSCN-02:ROI5:ArraySizeZ_RBV -# Memory -# % gui, FSCN2.rois.roi5, groupHeading, Memory -# % gui, FSCN2.rois.roi5, readback, Max memory, S03SIM-EA-FSCN-02:ROI5:PoolMaxMem -# % gui, FSCN2.rois.roi5, readback, Max buffers, S03SIM-EA-FSCN-02:ROI5:PoolMaxBuffers -# % gui, FSCN2.rois.roi5, readback, Used memory, S03SIM-EA-FSCN-02:ROI5:PoolUsedMem -# % gui, FSCN2.rois.roi5, readback, Allocated buffers, S03SIM-EA-FSCN-02:ROI5:PoolAllocBuffers -# % gui, FSCN2.rois.roi5, readback, Free buffers, S03SIM-EA-FSCN-02:ROI5:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI5:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI5:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI5:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI5:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI5:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI5:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI5:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI5:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ROI5:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI5:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI5:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI5:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:ROI5:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI5:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI5:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI5:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:ROI5:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:ROI5:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI5:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:ROI5:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:ROI5:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI5:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:ROI5:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-02:ROI5:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ROI5:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI5:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ROI5:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI5:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-02:ROI5:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI5:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-02:ROI5:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:ROI5:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI5:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:ROI5:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:ROI5:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI5:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI5:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:ROI5:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:ROI5:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-02:ROI5:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-02:ROI5:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI5:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-02:ROI5:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI5:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:ROI5:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI5:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI5:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-02:ROI5:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)NDARRAY_PORT") - field(VAL, "FSCN2.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI5:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI5:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI5:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI5:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI5:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI5:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI5:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:ROI5:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI5:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI5:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:ROI5:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-02:ROI5:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI5:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI5:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI5:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-02:ROI5:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI5:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI5:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI5:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-02:ROI5:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI5:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI5:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:ROI5:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI5:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:ROI5:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:ROI5:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI5:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:ROI5:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:ROI5:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI5:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:ROI5:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:ROI5:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:ROI5:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI5:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:ROI5:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI5:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI5:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI5:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI5:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI5:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:ROI5:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI5:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI5:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI5:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:ROI5:AsynIO") -{ - field(PORT, "FSCN2.rois.roi5") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the label for the ROI # -################################################################### -record(stringout, "S03SIM-EA-FSCN-02:ROI5:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)NAME") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI5:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)NAME") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the ROI definition # -# including binning, region start and size # -################################################################### - -record(longout, "S03SIM-EA-FSCN-02:ROI5:BinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM0_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:BinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM0_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI5:BinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM1_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:BinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM1_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI5:BinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM2_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:BinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM2_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI5:MinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM0_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:MinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM0_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI5:MinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM1_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:MinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM1_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI5:MinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM2_MIN") - field(LOPR, "1") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:MinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM2_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI5:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM0_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM0_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI5:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM1_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM1_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI5:SizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM2_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:SizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM2_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI5:AutoSizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM0_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI5:AutoSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM0_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI5:AutoSizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM1_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI5:AutoSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM1_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI5:AutoSizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM2_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI5:AutoSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM2_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM0_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM1_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:MaxSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM2_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI5:ReverseX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM0_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI5:ReverseX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM0_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI5:ReverseY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM1_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI5:ReverseY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM1_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI5:ReverseZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM2_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI5:ReverseZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM2_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI5:EnableX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM0_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI5:EnableX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM0_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI5:EnableY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM1_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI5:EnableY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM1_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI5:EnableZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)DIM2_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI5:EnableZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)DIM2_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the scaling of the data. Useful when # -# binning or converting data types # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ROI5:EnableScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)ENABLE_SCALE") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI5:EnableScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)ENABLE_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI5:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)SCALE_VALUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI5:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)SCALE_VALUE") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ROI5:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI5:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-02:ROI5:MaxX") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:ROI5:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:ROI5:MaxX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:ROI5:MinX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:ROI5:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI5:MaxY") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI5:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:ROI5:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:ROI5:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:ROI5:MaxY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:ROI5:MinY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:ROI5:SizeY.HOPR NPP") -} - -################################################################### -# These records whether dimensions of 1 are collapsed (removed) # # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ROI5:CollapseDims") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi5,0,1)COLLAPSE_DIMS") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI5:CollapseDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi5,0,1)COLLAPSE_DIMS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -#=================================================================# -# Template file: NDROI.template -# Database for ND ROIs -# Mark Rivers -# April 22, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, FSCN2.rois.roi6, edmtab, NDROI.edl, P=S03SIM-EA-FSCN-02,R=:ROI6: - -# This associates a BOY screen with the template -# % gui, FSCN2.rois.roi6, boydetail,ADApp_opi/dls/roi_detail.opi, P=S03SIM-EA-FSCN-02, R=:ROI6:, DESC=Region of Interest -# % gui, FSCN2.rois.roi6, boyembed, ADApp_opi/dls/roi_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:ROI6:, DESC=Region of Interest -# % gui, FSCN2.rois.roi6, boyembed, ADApp_opi/dls/roi_embed.opi, P=S03SIM-EA-FSCN-02, R=:ROI6:, DESC=Region of Interest - -# % gui, FSCN2.rois.roi6, groupHeading, Info -# % gui, FSCN2.rois.roi6, readback, Port name, S03SIM-EA-FSCN-02:ROI6:PortName_RBV -# % gui, FSCN2.rois.roi6, readback, Plugin type, S03SIM-EA-FSCN-02:ROI6:PluginType_RBV -# Input -# % gui, FSCN2.rois.roi6, demandString, Input, S03SIM-EA-FSCN-02:ROI6:NDArrayPort -# % gui, FSCN2.rois.roi6, readback, Input, S03SIM-EA-FSCN-02:ROI6:NDArrayPort_RBV - -# % gui, FSCN2.rois.roi6, groupHeading, Callback -# % gui, FSCN2.rois.roi6, enum, Callbacks, S03SIM-EA-FSCN-02:ROI6:EnableCallbacks -# % gui, FSCN2.rois.roi6, statusbits, Callbacks, S03SIM-EA-FSCN-02:ROI6:EnableCallbacks_RBV -# % gui, FSCN2.rois.roi6, demand, Min Callback Time, S03SIM-EA-FSCN-02:ROI6:MinCallbackTime -# % gui, FSCN2.rois.roi6, readback, Min Callback Time, S03SIM-EA-FSCN-02:ROI6:MinCallbackTime_RBV -# % gui, FSCN2.rois.roi6, enum, Block Callbacks, S03SIM-EA-FSCN-02:ROI6:BlockingCallbacks -# % gui, FSCN2.rois.roi6, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:ROI6:BlockingCallbacks_RBV - -# % gui, FSCN2.rois.roi6, groupHeading, Counters -# % gui, FSCN2.rois.roi6, demand, Array Counter, S03SIM-EA-FSCN-02:ROI6:ArrayCounter -# % gui, FSCN2.rois.roi6, readback, Array Counter, S03SIM-EA-FSCN-02:ROI6:ArrayCounter_RBV -# % gui, FSCN2.rois.roi6, readback, Array Rate (fps), S03SIM-EA-FSCN-02:ROI6:ArrayRate_RBV -# % gui, FSCN2.rois.roi6, readback, Queue Use, S03SIM-EA-FSCN-02:ROI6:QueueUse -# % gui, FSCN2.rois.roi6, readback, Queue Size, S03SIM-EA-FSCN-02:ROI6:QueueSize -# % gui, FSCN2.rois.roi6, demand, Dropped Arrays, S03SIM-EA-FSCN-02:ROI6:DroppedArrays -# % gui, FSCN2.rois.roi6, readback, Dropped Arrays, S03SIM-EA-FSCN-02:ROI6:DroppedArrays_RBV - -# % gui, FSCN2.rois.roi6, groupHeading, Array Settings -# % gui, FSCN2.rois.roi6, readback, Num Dimensions, S03SIM-EA-FSCN-02:ROI6:NDimensions_RBV -# % gui, FSCN2.rois.roi6, readback, Dim 0 Size, S03SIM-EA-FSCN-02:ROI6:ArraySize0_RBV -# % gui, FSCN2.rois.roi6, readback, Dim 1 Size, S03SIM-EA-FSCN-02:ROI6:ArraySize1_RBV -# % gui, FSCN2.rois.roi6, readback, Dim 2 Size, S03SIM-EA-FSCN-02:ROI6:ArraySize2_RBV -# % gui, FSCN2.rois.roi6, readback, Input Data Type, S03SIM-EA-FSCN-02:ROI6:DataType_RBV -# % gui, FSCN2.rois.roi6, readback, Colour Mode, S03SIM-EA-FSCN-02:ROI6:ColorMode_RBV -# % gui, FSCN2.rois.roi6, readback, Bayer Pattern, S03SIM-EA-FSCN-02:ROI6:BayerPattern_RBV -# % gui, FSCN2.rois.roi6, readback, Unique id, S03SIM-EA-FSCN-02:ROI6:UniqueId_RBV -# % gui, FSCN2.rois.roi6, readback, Timestamp, S03SIM-EA-FSCN-02:ROI6:TimeStamp_RBV - -# Output -# % gui, FSCN2.rois.roi6, groupHeading, Output -# % gui, FSCN2.rois.roi6, demand, Name, S03SIM-EA-FSCN-02:ROI6:Name -# % gui, FSCN2.rois.roi6, enum, Out data type, S03SIM-EA-FSCN-02:ROI6:DataTypeOut -# % gui, FSCN2.rois.roi6, readback, Out data type, S03SIM-EA-FSCN-02:ROI6:DataTypeOut_RBV -# % gui, FSCN2.rois.roi6, demand, Attributes file, S03SIM-EA-FSCN-02:ROI6:NDAttributesFile -# Scaling -# % gui, FSCN2.rois.roi6, groupHeading, Scaling -# % gui, FSCN2.rois.roi6, enum, Enable Scaling, S03SIM-EA-FSCN-02:ROI6:EnableScale -# % gui, FSCN2.rois.roi6, readback, Enable Scaling, S03SIM-EA-FSCN-02:ROI6:EnableScale_RBV -# % gui, FSCN2.rois.roi6, demand, Scale Divisor, S03SIM-EA-FSCN-02:ROI6:Scale -# % gui, FSCN2.rois.roi6, readback, Scale Divisor, S03SIM-EA-FSCN-02:ROI6:Scale_RBV -# X region -# % gui, FSCN2.rois.roi6, groupHeading, X Region -# % gui, FSCN2.rois.roi6, enum, X, S03SIM-EA-FSCN-02:ROI6:EnableX -# % gui, FSCN2.rois.roi6, readback, X, S03SIM-EA-FSCN-02:ROI6:EnableX_RBV -# % gui, FSCN2.rois.roi6, enum, Autosize X, S03SIM-EA-FSCN-02:ROI6:AutoSizeX -# % gui, FSCN2.rois.roi6, readback, Autosize X, S03SIM-EA-FSCN-02:ROI6:AutoSizeX_RBV -# % gui, FSCN2.rois.roi6, readback, Input Size X, S03SIM-EA-FSCN-02:ROI6:MaxSizeX_RBV -# % gui, FSCN2.rois.roi6, demand, Binning X, S03SIM-EA-FSCN-02:ROI6:BinX -# % gui, FSCN2.rois.roi6, readback, Binning X, S03SIM-EA-FSCN-02:ROI6:BinX_RBV -# % gui, FSCN2.rois.roi6, demand, Start X, S03SIM-EA-FSCN-02:ROI6:MinX -# % gui, FSCN2.rois.roi6, readback, Start X, S03SIM-EA-FSCN-02:ROI6:MinX_RBV -# % gui, FSCN2.rois.roi6, demand, Size X, S03SIM-EA-FSCN-02:ROI6:SizeX -# % gui, FSCN2.rois.roi6, readback, Size X, S03SIM-EA-FSCN-02:ROI6:SizeX_RBV -# % gui, FSCN2.rois.roi6, enum, Reverse X, S03SIM-EA-FSCN-02:ROI6:ReverseX -# % gui, FSCN2.rois.roi6, readback, Reverse X, S03SIM-EA-FSCN-02:ROI6:ReverseX_RBV -# % gui, FSCN2.rois.roi6, readback, Bytes X, S03SIM-EA-FSCN-02:ROI6:ArraySizeX_RBV -# Y region -# % gui, FSCN2.rois.roi6, groupHeading, Y Region -# % gui, FSCN2.rois.roi6, enum, Y, S03SIM-EA-FSCN-02:ROI6:EnableY -# % gui, FSCN2.rois.roi6, readback, Y, S03SIM-EA-FSCN-02:ROI6:EnableY_RBV -# % gui, FSCN2.rois.roi6, enum, Autosize Y, S03SIM-EA-FSCN-02:ROI6:AutoSizeY -# % gui, FSCN2.rois.roi6, readback, Autosize Y, S03SIM-EA-FSCN-02:ROI6:AutoSizeY_RBV -# % gui, FSCN2.rois.roi6, readback, Input size Y, S03SIM-EA-FSCN-02:ROI6:MaxSizeY_RBV -# % gui, FSCN2.rois.roi6, demand, Binning Y, S03SIM-EA-FSCN-02:ROI6:BinY -# % gui, FSCN2.rois.roi6, readback, Binning Y, S03SIM-EA-FSCN-02:ROI6:BinY_RBV -# % gui, FSCN2.rois.roi6, demand, Start Y, S03SIM-EA-FSCN-02:ROI6:MinY -# % gui, FSCN2.rois.roi6, readback, Start Y, S03SIM-EA-FSCN-02:ROI6:MinY_RBV -# % gui, FSCN2.rois.roi6, demand, Size Y, S03SIM-EA-FSCN-02:ROI6:SizeY -# % gui, FSCN2.rois.roi6, readback, Size Y, S03SIM-EA-FSCN-02:ROI6:SizeY_RBV -# % gui, FSCN2.rois.roi6, enum, Reverse Y, S03SIM-EA-FSCN-02:ROI6:ReverseY -# % gui, FSCN2.rois.roi6, readback, Reverse Y, S03SIM-EA-FSCN-02:ROI6:ReverseY_RBV -# % gui, FSCN2.rois.roi6, readback, Bytes Y, S03SIM-EA-FSCN-02:ROI6:ArraySizeY_RBV -# Z region -# % gui, FSCN2.rois.roi6, groupHeading, Z Region -# % gui, FSCN2.rois.roi6, enum, Z, S03SIM-EA-FSCN-02:ROI6:EnableZ -# % gui, FSCN2.rois.roi6, readback, Z, S03SIM-EA-FSCN-02:ROI6:EnableZ_RBV -# % gui, FSCN2.rois.roi6, enum, Autosize Z, S03SIM-EA-FSCN-02:ROI6:AutoSizeZ -# % gui, FSCN2.rois.roi6, readback, Autosize Z, S03SIM-EA-FSCN-02:ROI6:AutoSizeZ_RBV -# % gui, FSCN2.rois.roi6, readback, Input size Z, S03SIM-EA-FSCN-02:ROI6:MaxSizeZ_RBV -# % gui, FSCN2.rois.roi6, demand, Binning Z, S03SIM-EA-FSCN-02:ROI6:BinZ -# % gui, FSCN2.rois.roi6, readback, Binning Z, S03SIM-EA-FSCN-02:ROI6:BinZ_RBV -# % gui, FSCN2.rois.roi6, demand, Start Z, S03SIM-EA-FSCN-02:ROI6:MinZ -# % gui, FSCN2.rois.roi6, readback, Start Z, S03SIM-EA-FSCN-02:ROI6:MinZ_RBV -# % gui, FSCN2.rois.roi6, demand, Size Z, S03SIM-EA-FSCN-02:ROI6:SizeZ -# % gui, FSCN2.rois.roi6, readback, Size Z, S03SIM-EA-FSCN-02:ROI6:SizeZ_RBV -# % gui, FSCN2.rois.roi6, enum, Reverse Z, S03SIM-EA-FSCN-02:ROI6:ReverseZ -# % gui, FSCN2.rois.roi6, readback, Reverse Z, S03SIM-EA-FSCN-02:ROI6:ReverseZ_RBV -# % gui, FSCN2.rois.roi6, readback, Bytes Z, S03SIM-EA-FSCN-02:ROI6:ArraySizeZ_RBV -# Memory -# % gui, FSCN2.rois.roi6, groupHeading, Memory -# % gui, FSCN2.rois.roi6, readback, Max memory, S03SIM-EA-FSCN-02:ROI6:PoolMaxMem -# % gui, FSCN2.rois.roi6, readback, Max buffers, S03SIM-EA-FSCN-02:ROI6:PoolMaxBuffers -# % gui, FSCN2.rois.roi6, readback, Used memory, S03SIM-EA-FSCN-02:ROI6:PoolUsedMem -# % gui, FSCN2.rois.roi6, readback, Allocated buffers, S03SIM-EA-FSCN-02:ROI6:PoolAllocBuffers -# % gui, FSCN2.rois.roi6, readback, Free buffers, S03SIM-EA-FSCN-02:ROI6:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI6:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI6:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI6:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI6:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI6:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI6:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI6:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI6:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ROI6:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI6:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI6:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI6:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:ROI6:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI6:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI6:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI6:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:ROI6:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:ROI6:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI6:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:ROI6:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:ROI6:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ROI6:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:ROI6:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-02:ROI6:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ROI6:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI6:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ROI6:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI6:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-02:ROI6:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI6:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-02:ROI6:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:ROI6:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI6:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:ROI6:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:ROI6:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI6:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI6:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:ROI6:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:ROI6:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-02:ROI6:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-02:ROI6:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI6:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-02:ROI6:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI6:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:ROI6:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI6:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ROI6:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-02:ROI6:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)NDARRAY_PORT") - field(VAL, "FSCN2.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI6:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI6:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI6:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI6:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI6:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI6:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI6:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:ROI6:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI6:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI6:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:ROI6:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-02:ROI6:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:ROI6:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI6:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI6:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-02:ROI6:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI6:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ROI6:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI6:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-02:ROI6:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI6:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI6:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:ROI6:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI6:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:ROI6:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:ROI6:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI6:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:ROI6:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:ROI6:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI6:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:ROI6:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:ROI6:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:ROI6:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI6:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:ROI6:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI6:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI6:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI6:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI6:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ROI6:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:ROI6:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:ROI6:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI6:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI6:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:ROI6:AsynIO") -{ - field(PORT, "FSCN2.rois.roi6") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the label for the ROI # -################################################################### -record(stringout, "S03SIM-EA-FSCN-02:ROI6:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)NAME") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:ROI6:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)NAME") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the ROI definition # -# including binning, region start and size # -################################################################### - -record(longout, "S03SIM-EA-FSCN-02:ROI6:BinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM0_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:BinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM0_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI6:BinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM1_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:BinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM1_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI6:BinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM2_BIN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:BinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM2_BIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI6:MinX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM0_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:MinX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM0_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI6:MinY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM1_MIN") - field(LOPR, "0") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:MinY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM1_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI6:MinZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM2_MIN") - field(LOPR, "1") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:MinZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM2_MIN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI6:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM0_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM0_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI6:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM1_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM1_SIZE") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ROI6:SizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM2_SIZE") - field(VAL, "1000000") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:SizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM2_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI6:AutoSizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM0_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI6:AutoSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM0_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI6:AutoSizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM1_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI6:AutoSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM1_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI6:AutoSizeZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM2_AUTO_SIZE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI6:AutoSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM2_AUTO_SIZE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM0_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM1_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:MaxSizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM2_MAX_SIZE") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI6:ReverseX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM0_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI6:ReverseX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM0_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI6:ReverseY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM1_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI6:ReverseY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM1_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI6:ReverseZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM2_REVERSE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI6:ReverseZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM2_REVERSE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI6:EnableX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM0_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI6:EnableX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM0_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI6:EnableY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM1_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI6:EnableY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM1_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:ROI6:EnableZ") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)DIM2_ENABLE") - field(VAL, "1") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI6:EnableZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)DIM2_ENABLE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the scaling of the data. Useful when # -# binning or converting data types # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ROI6:EnableScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)ENABLE_SCALE") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI6:EnableScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)ENABLE_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ROI6:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)SCALE_VALUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ROI6:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)SCALE_VALUE") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ROI6:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ROI6:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)ROI_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-02:ROI6:MaxX") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:ROI6:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:ROI6:MaxX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:ROI6:MinX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:ROI6:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:ROI6:MaxY") -{ - field(INP, "S03SIM-EA-FSCN-02:ROI6:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:ROI6:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:ROI6:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:ROI6:MaxY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:ROI6:MinY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:ROI6:SizeY.HOPR NPP") -} - -################################################################### -# These records whether dimensions of 1 are collapsed (removed) # # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ROI6:CollapseDims") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.rois.roi6,0,1)COLLAPSE_DIMS") - field(VAL, "0") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ROI6:CollapseDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.rois.roi6,0,1)COLLAPSE_DIMS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -#=================================================================# -# Template file: NDStats.template - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, NCHANS, Number of channels -# % macro, XSIZE, x size -# % macro, YSIZE, y size -# % macro, HIST_SIZE, hist size -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Timeout -# % macro, TS_PORT, TS port - -# This associates the template with an edm screen -# % gui, OAV.stat, edmtab, NDStats.edl, P=S03SIM-DI-OAV-01,R=:STAT: - -# This associates a BOY screen with the template -# % gui, OAV.stat, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-DI-OAV-01, R=:STAT:, DESC=Statistics -# % gui, OAV.stat, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-DI-OAV-01, R=:STAT:, DESC=Statistics -# % gui, OAV.stat, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-DI-OAV-01, R=:STAT:, DESC=Statistics - - -# % gui, OAV.stat, groupHeading, Info -# % gui, OAV.stat, readback, Port name, S03SIM-DI-OAV-01:STAT:PortName_RBV -# % gui, OAV.stat, readback, Plugin type, S03SIM-DI-OAV-01:STAT:PluginType_RBV -# Input -# % gui, OAV.stat, demandString, Input, S03SIM-DI-OAV-01:STAT:NDArrayPort -# % gui, OAV.stat, readback, Input, S03SIM-DI-OAV-01:STAT:NDArrayPort_RBV - -# % gui, OAV.stat, groupHeading, Callback -# % gui, OAV.stat, enum, Callbacks, S03SIM-DI-OAV-01:STAT:EnableCallbacks -# % gui, OAV.stat, statusbits, Callbacks, S03SIM-DI-OAV-01:STAT:EnableCallbacks_RBV -# % gui, OAV.stat, demand, Min Callback Time, S03SIM-DI-OAV-01:STAT:MinCallbackTime -# % gui, OAV.stat, readback, Min Callback Time, S03SIM-DI-OAV-01:STAT:MinCallbackTime_RBV -# % gui, OAV.stat, enum, Block Callbacks, S03SIM-DI-OAV-01:STAT:BlockingCallbacks -# % gui, OAV.stat, statusbits, Block Callbacks, S03SIM-DI-OAV-01:STAT:BlockingCallbacks_RBV - -# % gui, OAV.stat, groupHeading, Counters -# % gui, OAV.stat, demand, Array Counter, S03SIM-DI-OAV-01:STAT:ArrayCounter -# % gui, OAV.stat, readback, Array Counter, S03SIM-DI-OAV-01:STAT:ArrayCounter_RBV -# % gui, OAV.stat, readback, Array Rate (fps), S03SIM-DI-OAV-01:STAT:ArrayRate_RBV -# % gui, OAV.stat, readback, Queue Use, S03SIM-DI-OAV-01:STAT:QueueUse -# % gui, OAV.stat, readback, Queue Size, S03SIM-DI-OAV-01:STAT:QueueSize -# % gui, OAV.stat, demand, Dropped Arrays, S03SIM-DI-OAV-01:STAT:DroppedArrays -# % gui, OAV.stat, readback, Dropped Arrays, S03SIM-DI-OAV-01:STAT:DroppedArrays_RBV - -# % gui, OAV.stat, groupHeading, Array Settings -# % gui, OAV.stat, readback, Num Dimensions, S03SIM-DI-OAV-01:STAT:NDimensions_RBV -# % gui, OAV.stat, readback, Dim 0 Size, S03SIM-DI-OAV-01:STAT:ArraySize0_RBV -# % gui, OAV.stat, readback, Dim 1 Size, S03SIM-DI-OAV-01:STAT:ArraySize1_RBV -# % gui, OAV.stat, readback, Dim 2 Size, S03SIM-DI-OAV-01:STAT:ArraySize2_RBV -# % gui, OAV.stat, readback, Input Data Type, S03SIM-DI-OAV-01:STAT:DataType_RBV -# % gui, OAV.stat, readback, Colour Mode, S03SIM-DI-OAV-01:STAT:ColorMode_RBV -# % gui, OAV.stat, readback, Bayer Pattern, S03SIM-DI-OAV-01:STAT:BayerPattern_RBV -# % gui, OAV.stat, readback, Unique id, S03SIM-DI-OAV-01:STAT:UniqueId_RBV -# % gui, OAV.stat, readback, Timestamp, S03SIM-DI-OAV-01:STAT:TimeStamp_RBV - -# Output -# % gui, OAV.stat, groupHeading, Output -# % gui, OAV.stat, demand, Name, S03SIM-DI-OAV-01:STAT:Name -# % gui, OAV.stat, enum, Out data type, S03SIM-DI-OAV-01:STAT:DataTypeOut -# % gui, OAV.stat, readback, Out data type, S03SIM-DI-OAV-01:STAT:DataTypeOut_RBV -# % gui, OAV.stat, demand, Attributes file, S03SIM-DI-OAV-01:STAT:NDAttributesFile - -# Statistics -# % gui, OAV.stat, groupHeading, Statistics -# % gui, OAV.stat, enum, Compute Statistics, S03SIM-DI-OAV-01:STAT:ComputeStatistics -# % gui, OAV.stat, statusbits, Compute Statistics, S03SIM-DI-OAV-01:STAT:ComputeStatistics_RBV -# % gui, OAV.stat, demand, Background Width, S03SIM-DI-OAV-01:STAT:BgdWidth -# % gui, OAV.stat, readback, Background Width, S03SIM-DI-OAV-01:STAT:BgdWidth_RBV -# % gui, OAV.stat, readback, Minimum Value, S03SIM-DI-OAV-01:STAT:MinValue_RBV -# % gui, OAV.stat, readback, Minimum X, S03SIM-DI-OAV-01:STAT:MinX_RBV -# % gui, OAV.stat, readback, Minimum Y, S03SIM-DI-OAV-01:STAT:MinY_RBV -# % gui, OAV.stat, readback, Maximum Value, S03SIM-DI-OAV-01:STAT:MaxValue_RBV -# % gui, OAV.stat, readback, Maximum X, S03SIM-DI-OAV-01:STAT:MaxX_RBV -# % gui, OAV.stat, readback, Maximum Y, S03SIM-DI-OAV-01:STAT:MaxY_RBV -# % gui, OAV.stat, readback, Mean Value, S03SIM-DI-OAV-01:STAT:MeanValue_RBV -# % gui, OAV.stat, readback, Total, S03SIM-DI-OAV-01:STAT:Total_RBV -# % gui, OAV.stat, readback, Sigma, S03SIM-DI-OAV-01:STAT:Sigma_RBV -# % gui, OAV.stat, readback, Net, S03SIM-DI-OAV-01:STAT:Net_RBV -# Centroid -# % gui, OAV.stat, groupHeading, Centroid -# % gui, OAV.stat, enum, Compute Centroid, S03SIM-DI-OAV-01:STAT:ComputeCentroid -# % gui, OAV.stat, statusbits, Compute Centroid, S03SIM-DI-OAV-01:STAT:ComputeCentroid_RBV -# % gui, OAV.stat, demand, Threshold, S03SIM-DI-OAV-01:STAT:CentroidThreshold -# % gui, OAV.stat, readback, Threshold, S03SIM-DI-OAV-01:STAT:CentroidThreshold_RBV -# % gui, OAV.stat, readback, X, S03SIM-DI-OAV-01:STAT:CentroidX_RBV -# % gui, OAV.stat, readback, Sigma X, S03SIM-DI-OAV-01:STAT:SigmaX_RBV -# % gui, OAV.stat, readback, Y, S03SIM-DI-OAV-01:STAT:CentroidY_RBV -# % gui, OAV.stat, readback, Sigma Y, S03SIM-DI-OAV-01:STAT:SigmaY_RBV -# % gui, OAV.stat, readback, Sigma XY, S03SIM-DI-OAV-01:STAT:SigmaXY_RBV -# Histogram -# % gui, OAV.stat, groupHeading, Histogram -# % gui, OAV.stat, enum, Compute Histogram, S03SIM-DI-OAV-01:STAT:ComputeHistogram -# % gui, OAV.stat, statusbits, Compute Histogram, S03SIM-DI-OAV-01:STAT:ComputeHistogram_RBV -# % gui, OAV.stat, demand, Histogram Size, S03SIM-DI-OAV-01:STAT:HistSize -# % gui, OAV.stat, readback, Histogram Size, S03SIM-DI-OAV-01:STAT:HistSize_RBV -# % gui, OAV.stat, demand, Histogram Min, S03SIM-DI-OAV-01:STAT:HistMin -# % gui, OAV.stat, readback, Histogram Min, S03SIM-DI-OAV-01:STAT:HistMin_RBV -# % gui, OAV.stat, demand, Histogram Max, S03SIM-DI-OAV-01:STAT:HistMax -# % gui, OAV.stat, readback, Histogram Max, S03SIM-DI-OAV-01:STAT:HistMax_RBV -# % gui, OAV.stat, readback, Histogram Entropy, S03SIM-DI-OAV-01:STAT:HistEntropy_RBV -# Profiles -# % gui, OAV.stat, groupHeading, Profiles -# % gui, OAV.stat, enum, Compute Profiles, S03SIM-DI-OAV-01:STAT:ComputeProfiles -# % gui, OAV.stat, statusbits, Compute Profiles, S03SIM-DI-OAV-01:STAT:ComputeProfiles_RBV -# % gui, OAV.stat, demand, Cursor X, S03SIM-DI-OAV-01:STAT:CursorX -# % gui, OAV.stat, readback, Cursor X, S03SIM-DI-OAV-01:STAT:CursorX_RBV -# % gui, OAV.stat, demand, Cursor Y, S03SIM-DI-OAV-01:STAT:CursorY -# % gui, OAV.stat, readback, Cursor Y, S03SIM-DI-OAV-01:STAT:CursorY_RBV -# % gui, OAV.stat, readback, Size X, S03SIM-DI-OAV-01:STAT:ProfileSizeX_RBV -# % gui, OAV.stat, readback, Size Y, S03SIM-DI-OAV-01:STAT:ProfileSizeY_RBV -# Time series -# % gui, OAV.stat, groupHeading, Time Series -# % gui, OAV.stat, enum, Time Control, S03SIM-DI-OAV-01:STAT:TS:TSAcquire -# % gui, OAV.stat, statusbits, Acquiring, S03SIM-DI-OAV-01:STAT:TS:TSAcquiring -# % gui, OAV.stat, readback, Current Point, S03SIM-DI-OAV-01:STAT:TS:TSCurrentPoint -# % gui, OAV.stat, demand, Number of Points, S03SIM-DI-OAV-01:STAT:TS:TSNumPoints -# % gui, OAV.stat, enum, Update, S03SIM-DI-OAV-01:STAT:TS:TSRead.SCAN -# Memory -# % gui, OAV.stat, groupHeading, Memory -# % gui, OAV.stat, readback, Max memory, S03SIM-DI-OAV-01:STAT:PoolMaxMem -# % gui, OAV.stat, readback, Max buffers, S03SIM-DI-OAV-01:STAT:PoolMaxBuffers -# % gui, OAV.stat, readback, Used memory, S03SIM-DI-OAV-01:STAT:PoolUsedMem -# % gui, OAV.stat, readback, Allocated buffers, S03SIM-DI-OAV-01:STAT:PoolAllocBuffers -# % gui, OAV.stat, readback, Free buffers, S03SIM-DI-OAV-01:STAT:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stat,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stat,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stat,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stat,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stat,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stat,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stat,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stat,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:STAT:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:STAT:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:STAT:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:STAT:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:STAT:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:STAT:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:STAT:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:STAT:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:STAT:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:STAT:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.stat,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.stat,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:STAT:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:STAT:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stat,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:STAT:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:STAT:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:STAT:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:STAT:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:STAT:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:STAT:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:STAT:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:STAT:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:STAT:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:STAT:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.stat,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:STAT:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.stat,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:STAT:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-DI-OAV-01:STAT:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:STAT:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:STAT:PoolFreeBuffers") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:STAT:PoolUsedBuffers") -} - -record(calc, "S03SIM-DI-OAV-01:STAT:PoolUsedBuffers") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:STAT:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-DI-OAV-01:STAT:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stat,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:STAT:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.stat,0,1)NDARRAY_PORT") - field(VAL, "OAV.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stat,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:STAT:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:STAT:MinCallbackTime PP") -} - -record(calc, "S03SIM-DI-OAV-01:STAT:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:STAT:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-DI-OAV-01:STAT:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:STAT:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:STAT:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:STAT:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:STAT:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:STAT:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:STAT:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:STAT:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:STAT:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:STAT:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:STAT:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:STAT:QueueUse.HIHI") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:STAT:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:STAT:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:STAT:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-DI-OAV-01:STAT:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:STAT:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-DI-OAV-01:STAT:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:STAT:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:STAT:SortSize") - field(OUT, "S03SIM-DI-OAV-01:STAT:SortFree.LOW") -} - -record(longout, "S03SIM-DI-OAV-01:STAT:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:STAT:AsynIO") -{ - field(PORT, "OAV.stat") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records contain the basic statistics # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT:ComputeStatistics") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)COMPUTE_STATISTICS") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT:ComputeStatistics_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)COMPUTE_STATISTICS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT:BgdWidth") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)BGD_WIDTH") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:BgdWidth_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)BGD_WIDTH") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:MinValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)MIN_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:MinValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)MIN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:MaxValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)MAX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:MaxValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)MAX_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:MeanValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)MEAN_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:MeanValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)MEAN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:SigmaValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)SIGMA_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:Sigma_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)SIGMA_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:Total") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)TOTAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:Total_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:Net") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)NET") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:Net_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)NET") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:MinX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)MIN_X") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:MinX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)MIN_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:MinY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)MIN_Y") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:MinY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)MIN_Y") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:MaxX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)MAX_X") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:MaxX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)MAX_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:MaxY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)MAX_Y") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:MaxY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)MAX_Y") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether centroid statistics are computed # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT:ComputeCentroid") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)COMPUTE_CENTROID") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT:ComputeCentroid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)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, "S03SIM-DI-OAV-01:STAT:CentroidThreshold") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)CENTROID_THRESHOLD") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:CentroidThreshold_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)CENTROID_THRESHOLD") - field(VAL, "0") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:CentroidTotal") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)CENTROID_TOTAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:CentroidTotal_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)CENTROID_TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:CentroidX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)CENTROIDX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:CentroidX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)CENTROIDX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:CentroidY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)CENTROIDY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:CentroidY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)CENTROIDY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:SigmaX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)SIGMAX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:SigmaX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)SIGMAX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:SigmaY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)SIGMAY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:SigmaY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)SIGMAY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:SigmaXY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)SIGMAXY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:SigmaXY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)SIGMAXY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:SkewX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)SKEWX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:SkewX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)SKEWX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:SkewY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)SKEWY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:SkewY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)SKEWY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:KurtosisX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)KURTOSISX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:KurtosisX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)KURTOSISX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:KurtosisY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)KURTOSISY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:KurtosisY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)KURTOSISY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:Eccentricity") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)ECCENTRICITY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:Eccentricity_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)ECCENTRICITY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:Orientation") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)ORIENTATION_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:Orientation_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)ORIENTATION_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control time series # -################################################################### -record(waveform, "S03SIM-DI-OAV-01:STAT:TSMinValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,0,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSMinX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,1,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSMinY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,2,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSMaxValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,3,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSMaxX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,4,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSMaxY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,5,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSMeanValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,6,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSSigma") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,7,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,8,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSNet") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,9,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSCentroidTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,10,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSCentroidX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,11,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSCentroidY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,12,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSSigmaX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,13,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSSigmaY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,14,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSSigmaXY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,15,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSSkewX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,16,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSSkewY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,17,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSKurtosisX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,18,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSKurtosisY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,19,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSEccentricity") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,20,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSOrientation") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,21,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:TSTimestamp") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat_TS,22,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control profiles # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT:ComputeProfiles") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)COMPUTE_PROFILES") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT:ComputeProfiles_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)COMPUTE_PROFILES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ProfileSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)PROFILE_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:ProfileSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)PROFILE_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT:CursorX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)CURSOR_X") - field(VAL, "256") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:CursorX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)CURSOR_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT:CursorY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)CURSOR_Y") - field(VAL, "256") - field(FLNK, "S03SIM-DI-OAV-01:STAT:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:CursorY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)CURSOR_Y") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:CursorVal") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)CURSOR_VAL") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:ProfileAverageX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat,0,1)PROFILE_AVERAGE_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:ProfileAverageY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat,0,1)PROFILE_AVERAGE_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:ProfileThresholdX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat,0,1)PROFILE_THRESHOLD_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:ProfileThresholdY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat,0,1)PROFILE_THRESHOLD_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:ProfileCentroidX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat,0,1)PROFILE_CENTROID_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:ProfileCentroidY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat,0,1)PROFILE_CENTROID_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:ProfileCursorX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat,0,1)PROFILE_CURSOR_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:ProfileCursorY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat,0,1)PROFILE_CURSOR_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These are used to define the histogram # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT:ComputeHistogram") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)COMPUTE_HISTOGRAM") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT:ComputeHistogram_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)COMPUTE_HISTOGRAM") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT:HistSize") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)HIST_SIZE") - field(VAL, "256") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:HistSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)HIST_SIZE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:HistMin") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)HIST_MIN") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:HistMin_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)HIST_MIN") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:HistMax") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)HIST_MAX") - field(VAL, "255") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:HistMax_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)HIST_MAX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT:HistBelow") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)HIST_BELOW") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:HistBelow_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)HIST_BELOW") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT:HistAbove") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stat,0,1)HIST_ABOVE") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:HistAbove_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stat,0,1)HIST_ABOVE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT:HistEntropy") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stat,0,1)HIST_ENTROPY") -} - -record(ai, "S03SIM-DI-OAV-01:STAT:HistEntropy_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stat,0,1)HIST_ENTROPY") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:Histogram_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat,0,1)HIST_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT:HistogramX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stat,0,1)HIST_X_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - 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, "S03SIM-DI-OAV-01:STAT:MaxSizeX") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:ProfileSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:STAT:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:STAT:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:STAT:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:STAT:CursorX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:STAT:MaxSizeY") -{ - field(INP, "S03SIM-DI-OAV-01:STAT:ProfileSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:STAT:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:STAT:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:STAT:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:STAT:CursorY.HOPR NPP") -} - -################################################################### -# These records reset the statistics # -################################################################### -record(sseq, "S03SIM-DI-OAV-01:STAT:Reset") -{ - field(LNK1, "S03SIM-DI-OAV-01:STAT:MinValue PP MS") - field(LNK2, "S03SIM-DI-OAV-01:STAT:MaxValue PP MS") - field(LNK3, "S03SIM-DI-OAV-01:STAT:MeanValue PP MS") - field(LNK4, "S03SIM-DI-OAV-01:STAT:SigmaValue PP MS") - field(LNK5, "S03SIM-DI-OAV-01:STAT:Total PP MS") - field(LNK6, "S03SIM-DI-OAV-01:STAT:Net PP MS") - field(LNK7, "S03SIM-DI-OAV-01:STAT:MinX PP MS") - field(LNK8, "S03SIM-DI-OAV-01:STAT:MinY PP MS") - field(LNK9, "S03SIM-DI-OAV-01:STAT:MaxX PP MS") - field(LNKA, "S03SIM-DI-OAV-01:STAT:MaxY PP MS") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Reset1") -} - -record(sseq, "S03SIM-DI-OAV-01:STAT:Reset1") -{ - field(LNK1, "S03SIM-DI-OAV-01:STAT:CentroidX PP MS") - field(LNK2, "S03SIM-DI-OAV-01:STAT:CentroidY PP MS") - field(LNK3, "S03SIM-DI-OAV-01:STAT:SigmaX PP MS") - field(LNK4, "S03SIM-DI-OAV-01:STAT:SigmaY PP MS") - field(LNK5, "S03SIM-DI-OAV-01:STAT:SigmaXY PP MS") - field(LNK6, "S03SIM-DI-OAV-01:STAT:CentroidTotal PP MS") - field(LNK7, "S03SIM-DI-OAV-01:STAT:SkewX PP MS") - field(LNK8, "S03SIM-DI-OAV-01:STAT:SkewY PP MS") - field(LNK9, "S03SIM-DI-OAV-01:STAT:KurtosisX PP MS") - field(LNKA, "S03SIM-DI-OAV-01:STAT:KurtosisY PP MS") - field(FLNK, "S03SIM-DI-OAV-01:STAT:Reset2") -} - -record(sseq, "S03SIM-DI-OAV-01:STAT:Reset2") -{ - field(LNK1, "S03SIM-DI-OAV-01:STAT:Eccentricity PP MS") - field(LNK2, "S03SIM-DI-OAV-01:STAT:Orientation PP MS") - field(LNK3, "S03SIM-DI-OAV-01:STAT:HistBelow PP MS") - field(LNK4, "S03SIM-DI-OAV-01:STAT:HistAbove PP MS") - field(LNK5, "S03SIM-DI-OAV-01:STAT:HistEntropy PP MS") -} - -#=================================================================# -# Template file: NDStats.template - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, NCHANS, Number of channels -# % macro, XSIZE, x size -# % macro, YSIZE, y size -# % macro, HIST_SIZE, hist size -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Timeout -# % macro, TS_PORT, TS port - -# This associates the template with an edm screen -# % gui, OAV.stats.stat1, edmtab, NDStats.edl, P=S03SIM-DI-OAV-01,R=:STAT1: - -# This associates a BOY screen with the template -# % gui, OAV.stats.stat1, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-DI-OAV-01, R=:STAT1:, DESC=Statistics -# % gui, OAV.stats.stat1, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-DI-OAV-01, R=:STAT1:, DESC=Statistics -# % gui, OAV.stats.stat1, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-DI-OAV-01, R=:STAT1:, DESC=Statistics - - -# % gui, OAV.stats.stat1, groupHeading, Info -# % gui, OAV.stats.stat1, readback, Port name, S03SIM-DI-OAV-01:STAT1:PortName_RBV -# % gui, OAV.stats.stat1, readback, Plugin type, S03SIM-DI-OAV-01:STAT1:PluginType_RBV -# Input -# % gui, OAV.stats.stat1, demandString, Input, S03SIM-DI-OAV-01:STAT1:NDArrayPort -# % gui, OAV.stats.stat1, readback, Input, S03SIM-DI-OAV-01:STAT1:NDArrayPort_RBV - -# % gui, OAV.stats.stat1, groupHeading, Callback -# % gui, OAV.stats.stat1, enum, Callbacks, S03SIM-DI-OAV-01:STAT1:EnableCallbacks -# % gui, OAV.stats.stat1, statusbits, Callbacks, S03SIM-DI-OAV-01:STAT1:EnableCallbacks_RBV -# % gui, OAV.stats.stat1, demand, Min Callback Time, S03SIM-DI-OAV-01:STAT1:MinCallbackTime -# % gui, OAV.stats.stat1, readback, Min Callback Time, S03SIM-DI-OAV-01:STAT1:MinCallbackTime_RBV -# % gui, OAV.stats.stat1, enum, Block Callbacks, S03SIM-DI-OAV-01:STAT1:BlockingCallbacks -# % gui, OAV.stats.stat1, statusbits, Block Callbacks, S03SIM-DI-OAV-01:STAT1:BlockingCallbacks_RBV - -# % gui, OAV.stats.stat1, groupHeading, Counters -# % gui, OAV.stats.stat1, demand, Array Counter, S03SIM-DI-OAV-01:STAT1:ArrayCounter -# % gui, OAV.stats.stat1, readback, Array Counter, S03SIM-DI-OAV-01:STAT1:ArrayCounter_RBV -# % gui, OAV.stats.stat1, readback, Array Rate (fps), S03SIM-DI-OAV-01:STAT1:ArrayRate_RBV -# % gui, OAV.stats.stat1, readback, Queue Use, S03SIM-DI-OAV-01:STAT1:QueueUse -# % gui, OAV.stats.stat1, readback, Queue Size, S03SIM-DI-OAV-01:STAT1:QueueSize -# % gui, OAV.stats.stat1, demand, Dropped Arrays, S03SIM-DI-OAV-01:STAT1:DroppedArrays -# % gui, OAV.stats.stat1, readback, Dropped Arrays, S03SIM-DI-OAV-01:STAT1:DroppedArrays_RBV - -# % gui, OAV.stats.stat1, groupHeading, Array Settings -# % gui, OAV.stats.stat1, readback, Num Dimensions, S03SIM-DI-OAV-01:STAT1:NDimensions_RBV -# % gui, OAV.stats.stat1, readback, Dim 0 Size, S03SIM-DI-OAV-01:STAT1:ArraySize0_RBV -# % gui, OAV.stats.stat1, readback, Dim 1 Size, S03SIM-DI-OAV-01:STAT1:ArraySize1_RBV -# % gui, OAV.stats.stat1, readback, Dim 2 Size, S03SIM-DI-OAV-01:STAT1:ArraySize2_RBV -# % gui, OAV.stats.stat1, readback, Input Data Type, S03SIM-DI-OAV-01:STAT1:DataType_RBV -# % gui, OAV.stats.stat1, readback, Colour Mode, S03SIM-DI-OAV-01:STAT1:ColorMode_RBV -# % gui, OAV.stats.stat1, readback, Bayer Pattern, S03SIM-DI-OAV-01:STAT1:BayerPattern_RBV -# % gui, OAV.stats.stat1, readback, Unique id, S03SIM-DI-OAV-01:STAT1:UniqueId_RBV -# % gui, OAV.stats.stat1, readback, Timestamp, S03SIM-DI-OAV-01:STAT1:TimeStamp_RBV - -# Output -# % gui, OAV.stats.stat1, groupHeading, Output -# % gui, OAV.stats.stat1, demand, Name, S03SIM-DI-OAV-01:STAT1:Name -# % gui, OAV.stats.stat1, enum, Out data type, S03SIM-DI-OAV-01:STAT1:DataTypeOut -# % gui, OAV.stats.stat1, readback, Out data type, S03SIM-DI-OAV-01:STAT1:DataTypeOut_RBV -# % gui, OAV.stats.stat1, demand, Attributes file, S03SIM-DI-OAV-01:STAT1:NDAttributesFile - -# Statistics -# % gui, OAV.stats.stat1, groupHeading, Statistics -# % gui, OAV.stats.stat1, enum, Compute Statistics, S03SIM-DI-OAV-01:STAT1:ComputeStatistics -# % gui, OAV.stats.stat1, statusbits, Compute Statistics, S03SIM-DI-OAV-01:STAT1:ComputeStatistics_RBV -# % gui, OAV.stats.stat1, demand, Background Width, S03SIM-DI-OAV-01:STAT1:BgdWidth -# % gui, OAV.stats.stat1, readback, Background Width, S03SIM-DI-OAV-01:STAT1:BgdWidth_RBV -# % gui, OAV.stats.stat1, readback, Minimum Value, S03SIM-DI-OAV-01:STAT1:MinValue_RBV -# % gui, OAV.stats.stat1, readback, Minimum X, S03SIM-DI-OAV-01:STAT1:MinX_RBV -# % gui, OAV.stats.stat1, readback, Minimum Y, S03SIM-DI-OAV-01:STAT1:MinY_RBV -# % gui, OAV.stats.stat1, readback, Maximum Value, S03SIM-DI-OAV-01:STAT1:MaxValue_RBV -# % gui, OAV.stats.stat1, readback, Maximum X, S03SIM-DI-OAV-01:STAT1:MaxX_RBV -# % gui, OAV.stats.stat1, readback, Maximum Y, S03SIM-DI-OAV-01:STAT1:MaxY_RBV -# % gui, OAV.stats.stat1, readback, Mean Value, S03SIM-DI-OAV-01:STAT1:MeanValue_RBV -# % gui, OAV.stats.stat1, readback, Total, S03SIM-DI-OAV-01:STAT1:Total_RBV -# % gui, OAV.stats.stat1, readback, Sigma, S03SIM-DI-OAV-01:STAT1:Sigma_RBV -# % gui, OAV.stats.stat1, readback, Net, S03SIM-DI-OAV-01:STAT1:Net_RBV -# Centroid -# % gui, OAV.stats.stat1, groupHeading, Centroid -# % gui, OAV.stats.stat1, enum, Compute Centroid, S03SIM-DI-OAV-01:STAT1:ComputeCentroid -# % gui, OAV.stats.stat1, statusbits, Compute Centroid, S03SIM-DI-OAV-01:STAT1:ComputeCentroid_RBV -# % gui, OAV.stats.stat1, demand, Threshold, S03SIM-DI-OAV-01:STAT1:CentroidThreshold -# % gui, OAV.stats.stat1, readback, Threshold, S03SIM-DI-OAV-01:STAT1:CentroidThreshold_RBV -# % gui, OAV.stats.stat1, readback, X, S03SIM-DI-OAV-01:STAT1:CentroidX_RBV -# % gui, OAV.stats.stat1, readback, Sigma X, S03SIM-DI-OAV-01:STAT1:SigmaX_RBV -# % gui, OAV.stats.stat1, readback, Y, S03SIM-DI-OAV-01:STAT1:CentroidY_RBV -# % gui, OAV.stats.stat1, readback, Sigma Y, S03SIM-DI-OAV-01:STAT1:SigmaY_RBV -# % gui, OAV.stats.stat1, readback, Sigma XY, S03SIM-DI-OAV-01:STAT1:SigmaXY_RBV -# Histogram -# % gui, OAV.stats.stat1, groupHeading, Histogram -# % gui, OAV.stats.stat1, enum, Compute Histogram, S03SIM-DI-OAV-01:STAT1:ComputeHistogram -# % gui, OAV.stats.stat1, statusbits, Compute Histogram, S03SIM-DI-OAV-01:STAT1:ComputeHistogram_RBV -# % gui, OAV.stats.stat1, demand, Histogram Size, S03SIM-DI-OAV-01:STAT1:HistSize -# % gui, OAV.stats.stat1, readback, Histogram Size, S03SIM-DI-OAV-01:STAT1:HistSize_RBV -# % gui, OAV.stats.stat1, demand, Histogram Min, S03SIM-DI-OAV-01:STAT1:HistMin -# % gui, OAV.stats.stat1, readback, Histogram Min, S03SIM-DI-OAV-01:STAT1:HistMin_RBV -# % gui, OAV.stats.stat1, demand, Histogram Max, S03SIM-DI-OAV-01:STAT1:HistMax -# % gui, OAV.stats.stat1, readback, Histogram Max, S03SIM-DI-OAV-01:STAT1:HistMax_RBV -# % gui, OAV.stats.stat1, readback, Histogram Entropy, S03SIM-DI-OAV-01:STAT1:HistEntropy_RBV -# Profiles -# % gui, OAV.stats.stat1, groupHeading, Profiles -# % gui, OAV.stats.stat1, enum, Compute Profiles, S03SIM-DI-OAV-01:STAT1:ComputeProfiles -# % gui, OAV.stats.stat1, statusbits, Compute Profiles, S03SIM-DI-OAV-01:STAT1:ComputeProfiles_RBV -# % gui, OAV.stats.stat1, demand, Cursor X, S03SIM-DI-OAV-01:STAT1:CursorX -# % gui, OAV.stats.stat1, readback, Cursor X, S03SIM-DI-OAV-01:STAT1:CursorX_RBV -# % gui, OAV.stats.stat1, demand, Cursor Y, S03SIM-DI-OAV-01:STAT1:CursorY -# % gui, OAV.stats.stat1, readback, Cursor Y, S03SIM-DI-OAV-01:STAT1:CursorY_RBV -# % gui, OAV.stats.stat1, readback, Size X, S03SIM-DI-OAV-01:STAT1:ProfileSizeX_RBV -# % gui, OAV.stats.stat1, readback, Size Y, S03SIM-DI-OAV-01:STAT1:ProfileSizeY_RBV -# Time series -# % gui, OAV.stats.stat1, groupHeading, Time Series -# % gui, OAV.stats.stat1, enum, Time Control, S03SIM-DI-OAV-01:STAT1:TS:TSAcquire -# % gui, OAV.stats.stat1, statusbits, Acquiring, S03SIM-DI-OAV-01:STAT1:TS:TSAcquiring -# % gui, OAV.stats.stat1, readback, Current Point, S03SIM-DI-OAV-01:STAT1:TS:TSCurrentPoint -# % gui, OAV.stats.stat1, demand, Number of Points, S03SIM-DI-OAV-01:STAT1:TS:TSNumPoints -# % gui, OAV.stats.stat1, enum, Update, S03SIM-DI-OAV-01:STAT1:TS:TSRead.SCAN -# Memory -# % gui, OAV.stats.stat1, groupHeading, Memory -# % gui, OAV.stats.stat1, readback, Max memory, S03SIM-DI-OAV-01:STAT1:PoolMaxMem -# % gui, OAV.stats.stat1, readback, Max buffers, S03SIM-DI-OAV-01:STAT1:PoolMaxBuffers -# % gui, OAV.stats.stat1, readback, Used memory, S03SIM-DI-OAV-01:STAT1:PoolUsedMem -# % gui, OAV.stats.stat1, readback, Allocated buffers, S03SIM-DI-OAV-01:STAT1:PoolAllocBuffers -# % gui, OAV.stats.stat1, readback, Free buffers, S03SIM-DI-OAV-01:STAT1:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT1:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat1,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT1:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat1,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT1:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat1,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT1:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat1,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT1:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat1,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT1:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat1,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT1:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat1,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT1:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat1,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:STAT1:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:STAT1:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT1:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT1:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:STAT1:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:STAT1:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT1:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:STAT1:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:STAT1:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:STAT1:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:STAT1:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:STAT1:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.stats.stat1,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.stats.stat1,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT1:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:STAT1:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:STAT1:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat1,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:STAT1:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:STAT1:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:STAT1:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:STAT1:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:STAT1:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:STAT1:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:STAT1:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT1:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:STAT1:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:STAT1:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT1:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT1:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:STAT1:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.stats.stat1,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:STAT1:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.stats.stat1,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:STAT1:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-DI-OAV-01:STAT1:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:PoolFreeBuffers") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:PoolUsedBuffers") -} - -record(calc, "S03SIM-DI-OAV-01:STAT1:PoolUsedBuffers") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT1:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:STAT1:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-DI-OAV-01:STAT1:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT1:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat1,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:STAT1:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.stats.stat1,0,1)NDARRAY_PORT") - field(VAL, "OAV.rois.roi1") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT1:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat1,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT1:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT1:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT1:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:STAT1:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT1:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT1:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:STAT1:MinCallbackTime PP") -} - -record(calc, "S03SIM-DI-OAV-01:STAT1:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT1:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:STAT1:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT1:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT1:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT1:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-DI-OAV-01:STAT1:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT1:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT1:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:STAT1:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:STAT1:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:STAT1:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:STAT1:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:STAT1:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:STAT1:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:STAT1:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:STAT1:QueueUse.HIHI") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:STAT1:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:STAT1:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:STAT1:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-DI-OAV-01:STAT1:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:STAT1:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-DI-OAV-01:STAT1:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT1:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT1:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:STAT1:SortSize") - field(OUT, "S03SIM-DI-OAV-01:STAT1:SortFree.LOW") -} - -record(longout, "S03SIM-DI-OAV-01:STAT1:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT1:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:STAT1:AsynIO") -{ - field(PORT, "OAV.stats.stat1") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records contain the basic statistics # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT1:ComputeStatistics") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)COMPUTE_STATISTICS") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT1:ComputeStatistics_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)COMPUTE_STATISTICS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT1:BgdWidth") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)BGD_WIDTH") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:BgdWidth_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)BGD_WIDTH") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:MinValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)MIN_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:MinValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)MIN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:MaxValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)MAX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:MaxValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)MAX_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:MeanValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)MEAN_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:MeanValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)MEAN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:SigmaValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)SIGMA_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:Sigma_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)SIGMA_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:Total") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)TOTAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:Total_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:Net") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)NET") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:Net_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)NET") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:MinX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)MIN_X") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:MinX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)MIN_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:MinY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)MIN_Y") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:MinY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)MIN_Y") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:MaxX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)MAX_X") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:MaxX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)MAX_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:MaxY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)MAX_Y") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:MaxY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)MAX_Y") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether centroid statistics are computed # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT1:ComputeCentroid") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)COMPUTE_CENTROID") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT1:ComputeCentroid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)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, "S03SIM-DI-OAV-01:STAT1:CentroidThreshold") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)CENTROID_THRESHOLD") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:CentroidThreshold_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)CENTROID_THRESHOLD") - field(VAL, "0") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:CentroidTotal") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)CENTROID_TOTAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:CentroidTotal_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)CENTROID_TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:CentroidX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)CENTROIDX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:CentroidX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)CENTROIDX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:CentroidY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)CENTROIDY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:CentroidY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)CENTROIDY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:SigmaX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)SIGMAX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:SigmaX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)SIGMAX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:SigmaY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)SIGMAY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:SigmaY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)SIGMAY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:SigmaXY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)SIGMAXY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:SigmaXY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)SIGMAXY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:SkewX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)SKEWX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:SkewX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)SKEWX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:SkewY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)SKEWY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:SkewY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)SKEWY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:KurtosisX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)KURTOSISX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:KurtosisX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)KURTOSISX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:KurtosisY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)KURTOSISY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:KurtosisY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)KURTOSISY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:Eccentricity") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)ECCENTRICITY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:Eccentricity_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)ECCENTRICITY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:Orientation") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)ORIENTATION_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:Orientation_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)ORIENTATION_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control time series # -################################################################### -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSMinValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,0,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSMinX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,1,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSMinY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,2,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSMaxValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,3,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSMaxX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,4,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSMaxY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,5,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSMeanValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,6,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSSigma") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,7,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,8,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSNet") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,9,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSCentroidTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,10,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSCentroidX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,11,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSCentroidY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,12,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSSigmaX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,13,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSSigmaY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,14,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSSigmaXY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,15,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSSkewX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,16,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSSkewY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,17,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSKurtosisX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,18,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSKurtosisY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,19,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSEccentricity") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,20,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSOrientation") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,21,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:TSTimestamp") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1_TS,22,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control profiles # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT1:ComputeProfiles") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)COMPUTE_PROFILES") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT1:ComputeProfiles_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)COMPUTE_PROFILES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ProfileSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)PROFILE_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:ProfileSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)PROFILE_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT1:CursorX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)CURSOR_X") - field(VAL, "256") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:CursorX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)CURSOR_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT1:CursorY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)CURSOR_Y") - field(VAL, "256") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:CursorY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)CURSOR_Y") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:CursorVal") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)CURSOR_VAL") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:ProfileAverageX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1,0,1)PROFILE_AVERAGE_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:ProfileAverageY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1,0,1)PROFILE_AVERAGE_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:ProfileThresholdX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1,0,1)PROFILE_THRESHOLD_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:ProfileThresholdY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1,0,1)PROFILE_THRESHOLD_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:ProfileCentroidX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1,0,1)PROFILE_CENTROID_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:ProfileCentroidY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1,0,1)PROFILE_CENTROID_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:ProfileCursorX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1,0,1)PROFILE_CURSOR_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:ProfileCursorY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1,0,1)PROFILE_CURSOR_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These are used to define the histogram # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT1:ComputeHistogram") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)COMPUTE_HISTOGRAM") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT1:ComputeHistogram_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)COMPUTE_HISTOGRAM") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT1:HistSize") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)HIST_SIZE") - field(VAL, "256") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:HistSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)HIST_SIZE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:HistMin") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)HIST_MIN") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:HistMin_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)HIST_MIN") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:HistMax") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)HIST_MAX") - field(VAL, "255") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:HistMax_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)HIST_MAX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT1:HistBelow") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)HIST_BELOW") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:HistBelow_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)HIST_BELOW") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT1:HistAbove") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat1,0,1)HIST_ABOVE") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:HistAbove_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat1,0,1)HIST_ABOVE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT1:HistEntropy") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat1,0,1)HIST_ENTROPY") -} - -record(ai, "S03SIM-DI-OAV-01:STAT1:HistEntropy_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat1,0,1)HIST_ENTROPY") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:Histogram_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1,0,1)HIST_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT1:HistogramX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat1,0,1)HIST_X_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - 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, "S03SIM-DI-OAV-01:STAT1:MaxSizeX") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:ProfileSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:STAT1:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:STAT1:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:STAT1:CursorX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:STAT1:MaxSizeY") -{ - field(INP, "S03SIM-DI-OAV-01:STAT1:ProfileSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:STAT1:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:STAT1:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:STAT1:CursorY.HOPR NPP") -} - -################################################################### -# These records reset the statistics # -################################################################### -record(sseq, "S03SIM-DI-OAV-01:STAT1:Reset") -{ - field(LNK1, "S03SIM-DI-OAV-01:STAT1:MinValue PP MS") - field(LNK2, "S03SIM-DI-OAV-01:STAT1:MaxValue PP MS") - field(LNK3, "S03SIM-DI-OAV-01:STAT1:MeanValue PP MS") - field(LNK4, "S03SIM-DI-OAV-01:STAT1:SigmaValue PP MS") - field(LNK5, "S03SIM-DI-OAV-01:STAT1:Total PP MS") - field(LNK6, "S03SIM-DI-OAV-01:STAT1:Net PP MS") - field(LNK7, "S03SIM-DI-OAV-01:STAT1:MinX PP MS") - field(LNK8, "S03SIM-DI-OAV-01:STAT1:MinY PP MS") - field(LNK9, "S03SIM-DI-OAV-01:STAT1:MaxX PP MS") - field(LNKA, "S03SIM-DI-OAV-01:STAT1:MaxY PP MS") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Reset1") -} - -record(sseq, "S03SIM-DI-OAV-01:STAT1:Reset1") -{ - field(LNK1, "S03SIM-DI-OAV-01:STAT1:CentroidX PP MS") - field(LNK2, "S03SIM-DI-OAV-01:STAT1:CentroidY PP MS") - field(LNK3, "S03SIM-DI-OAV-01:STAT1:SigmaX PP MS") - field(LNK4, "S03SIM-DI-OAV-01:STAT1:SigmaY PP MS") - field(LNK5, "S03SIM-DI-OAV-01:STAT1:SigmaXY PP MS") - field(LNK6, "S03SIM-DI-OAV-01:STAT1:CentroidTotal PP MS") - field(LNK7, "S03SIM-DI-OAV-01:STAT1:SkewX PP MS") - field(LNK8, "S03SIM-DI-OAV-01:STAT1:SkewY PP MS") - field(LNK9, "S03SIM-DI-OAV-01:STAT1:KurtosisX PP MS") - field(LNKA, "S03SIM-DI-OAV-01:STAT1:KurtosisY PP MS") - field(FLNK, "S03SIM-DI-OAV-01:STAT1:Reset2") -} - -record(sseq, "S03SIM-DI-OAV-01:STAT1:Reset2") -{ - field(LNK1, "S03SIM-DI-OAV-01:STAT1:Eccentricity PP MS") - field(LNK2, "S03SIM-DI-OAV-01:STAT1:Orientation PP MS") - field(LNK3, "S03SIM-DI-OAV-01:STAT1:HistBelow PP MS") - field(LNK4, "S03SIM-DI-OAV-01:STAT1:HistAbove PP MS") - field(LNK5, "S03SIM-DI-OAV-01:STAT1:HistEntropy PP MS") -} - -#=================================================================# -# Template file: NDStats.template - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, NCHANS, Number of channels -# % macro, XSIZE, x size -# % macro, YSIZE, y size -# % macro, HIST_SIZE, hist size -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Timeout -# % macro, TS_PORT, TS port - -# This associates the template with an edm screen -# % gui, OAV.stats.stat2, edmtab, NDStats.edl, P=S03SIM-DI-OAV-01,R=:STAT2: - -# This associates a BOY screen with the template -# % gui, OAV.stats.stat2, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-DI-OAV-01, R=:STAT2:, DESC=Statistics -# % gui, OAV.stats.stat2, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-DI-OAV-01, R=:STAT2:, DESC=Statistics -# % gui, OAV.stats.stat2, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-DI-OAV-01, R=:STAT2:, DESC=Statistics - - -# % gui, OAV.stats.stat2, groupHeading, Info -# % gui, OAV.stats.stat2, readback, Port name, S03SIM-DI-OAV-01:STAT2:PortName_RBV -# % gui, OAV.stats.stat2, readback, Plugin type, S03SIM-DI-OAV-01:STAT2:PluginType_RBV -# Input -# % gui, OAV.stats.stat2, demandString, Input, S03SIM-DI-OAV-01:STAT2:NDArrayPort -# % gui, OAV.stats.stat2, readback, Input, S03SIM-DI-OAV-01:STAT2:NDArrayPort_RBV - -# % gui, OAV.stats.stat2, groupHeading, Callback -# % gui, OAV.stats.stat2, enum, Callbacks, S03SIM-DI-OAV-01:STAT2:EnableCallbacks -# % gui, OAV.stats.stat2, statusbits, Callbacks, S03SIM-DI-OAV-01:STAT2:EnableCallbacks_RBV -# % gui, OAV.stats.stat2, demand, Min Callback Time, S03SIM-DI-OAV-01:STAT2:MinCallbackTime -# % gui, OAV.stats.stat2, readback, Min Callback Time, S03SIM-DI-OAV-01:STAT2:MinCallbackTime_RBV -# % gui, OAV.stats.stat2, enum, Block Callbacks, S03SIM-DI-OAV-01:STAT2:BlockingCallbacks -# % gui, OAV.stats.stat2, statusbits, Block Callbacks, S03SIM-DI-OAV-01:STAT2:BlockingCallbacks_RBV - -# % gui, OAV.stats.stat2, groupHeading, Counters -# % gui, OAV.stats.stat2, demand, Array Counter, S03SIM-DI-OAV-01:STAT2:ArrayCounter -# % gui, OAV.stats.stat2, readback, Array Counter, S03SIM-DI-OAV-01:STAT2:ArrayCounter_RBV -# % gui, OAV.stats.stat2, readback, Array Rate (fps), S03SIM-DI-OAV-01:STAT2:ArrayRate_RBV -# % gui, OAV.stats.stat2, readback, Queue Use, S03SIM-DI-OAV-01:STAT2:QueueUse -# % gui, OAV.stats.stat2, readback, Queue Size, S03SIM-DI-OAV-01:STAT2:QueueSize -# % gui, OAV.stats.stat2, demand, Dropped Arrays, S03SIM-DI-OAV-01:STAT2:DroppedArrays -# % gui, OAV.stats.stat2, readback, Dropped Arrays, S03SIM-DI-OAV-01:STAT2:DroppedArrays_RBV - -# % gui, OAV.stats.stat2, groupHeading, Array Settings -# % gui, OAV.stats.stat2, readback, Num Dimensions, S03SIM-DI-OAV-01:STAT2:NDimensions_RBV -# % gui, OAV.stats.stat2, readback, Dim 0 Size, S03SIM-DI-OAV-01:STAT2:ArraySize0_RBV -# % gui, OAV.stats.stat2, readback, Dim 1 Size, S03SIM-DI-OAV-01:STAT2:ArraySize1_RBV -# % gui, OAV.stats.stat2, readback, Dim 2 Size, S03SIM-DI-OAV-01:STAT2:ArraySize2_RBV -# % gui, OAV.stats.stat2, readback, Input Data Type, S03SIM-DI-OAV-01:STAT2:DataType_RBV -# % gui, OAV.stats.stat2, readback, Colour Mode, S03SIM-DI-OAV-01:STAT2:ColorMode_RBV -# % gui, OAV.stats.stat2, readback, Bayer Pattern, S03SIM-DI-OAV-01:STAT2:BayerPattern_RBV -# % gui, OAV.stats.stat2, readback, Unique id, S03SIM-DI-OAV-01:STAT2:UniqueId_RBV -# % gui, OAV.stats.stat2, readback, Timestamp, S03SIM-DI-OAV-01:STAT2:TimeStamp_RBV - -# Output -# % gui, OAV.stats.stat2, groupHeading, Output -# % gui, OAV.stats.stat2, demand, Name, S03SIM-DI-OAV-01:STAT2:Name -# % gui, OAV.stats.stat2, enum, Out data type, S03SIM-DI-OAV-01:STAT2:DataTypeOut -# % gui, OAV.stats.stat2, readback, Out data type, S03SIM-DI-OAV-01:STAT2:DataTypeOut_RBV -# % gui, OAV.stats.stat2, demand, Attributes file, S03SIM-DI-OAV-01:STAT2:NDAttributesFile - -# Statistics -# % gui, OAV.stats.stat2, groupHeading, Statistics -# % gui, OAV.stats.stat2, enum, Compute Statistics, S03SIM-DI-OAV-01:STAT2:ComputeStatistics -# % gui, OAV.stats.stat2, statusbits, Compute Statistics, S03SIM-DI-OAV-01:STAT2:ComputeStatistics_RBV -# % gui, OAV.stats.stat2, demand, Background Width, S03SIM-DI-OAV-01:STAT2:BgdWidth -# % gui, OAV.stats.stat2, readback, Background Width, S03SIM-DI-OAV-01:STAT2:BgdWidth_RBV -# % gui, OAV.stats.stat2, readback, Minimum Value, S03SIM-DI-OAV-01:STAT2:MinValue_RBV -# % gui, OAV.stats.stat2, readback, Minimum X, S03SIM-DI-OAV-01:STAT2:MinX_RBV -# % gui, OAV.stats.stat2, readback, Minimum Y, S03SIM-DI-OAV-01:STAT2:MinY_RBV -# % gui, OAV.stats.stat2, readback, Maximum Value, S03SIM-DI-OAV-01:STAT2:MaxValue_RBV -# % gui, OAV.stats.stat2, readback, Maximum X, S03SIM-DI-OAV-01:STAT2:MaxX_RBV -# % gui, OAV.stats.stat2, readback, Maximum Y, S03SIM-DI-OAV-01:STAT2:MaxY_RBV -# % gui, OAV.stats.stat2, readback, Mean Value, S03SIM-DI-OAV-01:STAT2:MeanValue_RBV -# % gui, OAV.stats.stat2, readback, Total, S03SIM-DI-OAV-01:STAT2:Total_RBV -# % gui, OAV.stats.stat2, readback, Sigma, S03SIM-DI-OAV-01:STAT2:Sigma_RBV -# % gui, OAV.stats.stat2, readback, Net, S03SIM-DI-OAV-01:STAT2:Net_RBV -# Centroid -# % gui, OAV.stats.stat2, groupHeading, Centroid -# % gui, OAV.stats.stat2, enum, Compute Centroid, S03SIM-DI-OAV-01:STAT2:ComputeCentroid -# % gui, OAV.stats.stat2, statusbits, Compute Centroid, S03SIM-DI-OAV-01:STAT2:ComputeCentroid_RBV -# % gui, OAV.stats.stat2, demand, Threshold, S03SIM-DI-OAV-01:STAT2:CentroidThreshold -# % gui, OAV.stats.stat2, readback, Threshold, S03SIM-DI-OAV-01:STAT2:CentroidThreshold_RBV -# % gui, OAV.stats.stat2, readback, X, S03SIM-DI-OAV-01:STAT2:CentroidX_RBV -# % gui, OAV.stats.stat2, readback, Sigma X, S03SIM-DI-OAV-01:STAT2:SigmaX_RBV -# % gui, OAV.stats.stat2, readback, Y, S03SIM-DI-OAV-01:STAT2:CentroidY_RBV -# % gui, OAV.stats.stat2, readback, Sigma Y, S03SIM-DI-OAV-01:STAT2:SigmaY_RBV -# % gui, OAV.stats.stat2, readback, Sigma XY, S03SIM-DI-OAV-01:STAT2:SigmaXY_RBV -# Histogram -# % gui, OAV.stats.stat2, groupHeading, Histogram -# % gui, OAV.stats.stat2, enum, Compute Histogram, S03SIM-DI-OAV-01:STAT2:ComputeHistogram -# % gui, OAV.stats.stat2, statusbits, Compute Histogram, S03SIM-DI-OAV-01:STAT2:ComputeHistogram_RBV -# % gui, OAV.stats.stat2, demand, Histogram Size, S03SIM-DI-OAV-01:STAT2:HistSize -# % gui, OAV.stats.stat2, readback, Histogram Size, S03SIM-DI-OAV-01:STAT2:HistSize_RBV -# % gui, OAV.stats.stat2, demand, Histogram Min, S03SIM-DI-OAV-01:STAT2:HistMin -# % gui, OAV.stats.stat2, readback, Histogram Min, S03SIM-DI-OAV-01:STAT2:HistMin_RBV -# % gui, OAV.stats.stat2, demand, Histogram Max, S03SIM-DI-OAV-01:STAT2:HistMax -# % gui, OAV.stats.stat2, readback, Histogram Max, S03SIM-DI-OAV-01:STAT2:HistMax_RBV -# % gui, OAV.stats.stat2, readback, Histogram Entropy, S03SIM-DI-OAV-01:STAT2:HistEntropy_RBV -# Profiles -# % gui, OAV.stats.stat2, groupHeading, Profiles -# % gui, OAV.stats.stat2, enum, Compute Profiles, S03SIM-DI-OAV-01:STAT2:ComputeProfiles -# % gui, OAV.stats.stat2, statusbits, Compute Profiles, S03SIM-DI-OAV-01:STAT2:ComputeProfiles_RBV -# % gui, OAV.stats.stat2, demand, Cursor X, S03SIM-DI-OAV-01:STAT2:CursorX -# % gui, OAV.stats.stat2, readback, Cursor X, S03SIM-DI-OAV-01:STAT2:CursorX_RBV -# % gui, OAV.stats.stat2, demand, Cursor Y, S03SIM-DI-OAV-01:STAT2:CursorY -# % gui, OAV.stats.stat2, readback, Cursor Y, S03SIM-DI-OAV-01:STAT2:CursorY_RBV -# % gui, OAV.stats.stat2, readback, Size X, S03SIM-DI-OAV-01:STAT2:ProfileSizeX_RBV -# % gui, OAV.stats.stat2, readback, Size Y, S03SIM-DI-OAV-01:STAT2:ProfileSizeY_RBV -# Time series -# % gui, OAV.stats.stat2, groupHeading, Time Series -# % gui, OAV.stats.stat2, enum, Time Control, S03SIM-DI-OAV-01:STAT2:TS:TSAcquire -# % gui, OAV.stats.stat2, statusbits, Acquiring, S03SIM-DI-OAV-01:STAT2:TS:TSAcquiring -# % gui, OAV.stats.stat2, readback, Current Point, S03SIM-DI-OAV-01:STAT2:TS:TSCurrentPoint -# % gui, OAV.stats.stat2, demand, Number of Points, S03SIM-DI-OAV-01:STAT2:TS:TSNumPoints -# % gui, OAV.stats.stat2, enum, Update, S03SIM-DI-OAV-01:STAT2:TS:TSRead.SCAN -# Memory -# % gui, OAV.stats.stat2, groupHeading, Memory -# % gui, OAV.stats.stat2, readback, Max memory, S03SIM-DI-OAV-01:STAT2:PoolMaxMem -# % gui, OAV.stats.stat2, readback, Max buffers, S03SIM-DI-OAV-01:STAT2:PoolMaxBuffers -# % gui, OAV.stats.stat2, readback, Used memory, S03SIM-DI-OAV-01:STAT2:PoolUsedMem -# % gui, OAV.stats.stat2, readback, Allocated buffers, S03SIM-DI-OAV-01:STAT2:PoolAllocBuffers -# % gui, OAV.stats.stat2, readback, Free buffers, S03SIM-DI-OAV-01:STAT2:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT2:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat2,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT2:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat2,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT2:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat2,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT2:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat2,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT2:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat2,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT2:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat2,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT2:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat2,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT2:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat2,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:STAT2:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:STAT2:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT2:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT2:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:STAT2:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:STAT2:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT2:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:STAT2:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:STAT2:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:STAT2:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:STAT2:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:STAT2:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.stats.stat2,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.stats.stat2,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT2:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:STAT2:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:STAT2:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat2,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:STAT2:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:STAT2:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:STAT2:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:STAT2:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:STAT2:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:STAT2:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:STAT2:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT2:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:STAT2:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:STAT2:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT2:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT2:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:STAT2:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.stats.stat2,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:STAT2:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.stats.stat2,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:STAT2:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-DI-OAV-01:STAT2:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:PoolFreeBuffers") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:PoolUsedBuffers") -} - -record(calc, "S03SIM-DI-OAV-01:STAT2:PoolUsedBuffers") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT2:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:STAT2:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-DI-OAV-01:STAT2:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT2:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat2,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:STAT2:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.stats.stat2,0,1)NDARRAY_PORT") - field(VAL, "OAV.rois.roi1") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT2:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat2,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT2:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT2:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT2:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:STAT2:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT2:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT2:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:STAT2:MinCallbackTime PP") -} - -record(calc, "S03SIM-DI-OAV-01:STAT2:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT2:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:STAT2:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT2:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT2:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT2:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-DI-OAV-01:STAT2:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT2:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT2:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:STAT2:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:STAT2:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:STAT2:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:STAT2:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:STAT2:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:STAT2:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:STAT2:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:STAT2:QueueUse.HIHI") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:STAT2:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:STAT2:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:STAT2:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-DI-OAV-01:STAT2:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:STAT2:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-DI-OAV-01:STAT2:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT2:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT2:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:STAT2:SortSize") - field(OUT, "S03SIM-DI-OAV-01:STAT2:SortFree.LOW") -} - -record(longout, "S03SIM-DI-OAV-01:STAT2:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT2:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:STAT2:AsynIO") -{ - field(PORT, "OAV.stats.stat2") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records contain the basic statistics # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT2:ComputeStatistics") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)COMPUTE_STATISTICS") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT2:ComputeStatistics_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)COMPUTE_STATISTICS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT2:BgdWidth") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)BGD_WIDTH") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:BgdWidth_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)BGD_WIDTH") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:MinValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)MIN_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:MinValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)MIN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:MaxValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)MAX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:MaxValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)MAX_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:MeanValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)MEAN_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:MeanValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)MEAN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:SigmaValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)SIGMA_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:Sigma_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)SIGMA_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:Total") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)TOTAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:Total_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:Net") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)NET") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:Net_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)NET") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:MinX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)MIN_X") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:MinX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)MIN_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:MinY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)MIN_Y") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:MinY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)MIN_Y") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:MaxX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)MAX_X") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:MaxX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)MAX_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:MaxY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)MAX_Y") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:MaxY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)MAX_Y") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether centroid statistics are computed # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT2:ComputeCentroid") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)COMPUTE_CENTROID") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT2:ComputeCentroid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)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, "S03SIM-DI-OAV-01:STAT2:CentroidThreshold") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)CENTROID_THRESHOLD") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:CentroidThreshold_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)CENTROID_THRESHOLD") - field(VAL, "0") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:CentroidTotal") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)CENTROID_TOTAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:CentroidTotal_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)CENTROID_TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:CentroidX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)CENTROIDX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:CentroidX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)CENTROIDX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:CentroidY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)CENTROIDY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:CentroidY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)CENTROIDY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:SigmaX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)SIGMAX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:SigmaX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)SIGMAX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:SigmaY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)SIGMAY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:SigmaY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)SIGMAY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:SigmaXY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)SIGMAXY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:SigmaXY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)SIGMAXY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:SkewX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)SKEWX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:SkewX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)SKEWX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:SkewY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)SKEWY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:SkewY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)SKEWY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:KurtosisX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)KURTOSISX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:KurtosisX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)KURTOSISX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:KurtosisY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)KURTOSISY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:KurtosisY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)KURTOSISY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:Eccentricity") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)ECCENTRICITY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:Eccentricity_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)ECCENTRICITY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:Orientation") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)ORIENTATION_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:Orientation_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)ORIENTATION_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control time series # -################################################################### -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSMinValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,0,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSMinX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,1,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSMinY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,2,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSMaxValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,3,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSMaxX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,4,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSMaxY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,5,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSMeanValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,6,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSSigma") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,7,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,8,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSNet") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,9,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSCentroidTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,10,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSCentroidX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,11,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSCentroidY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,12,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSSigmaX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,13,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSSigmaY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,14,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSSigmaXY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,15,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSSkewX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,16,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSSkewY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,17,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSKurtosisX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,18,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSKurtosisY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,19,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSEccentricity") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,20,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSOrientation") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,21,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:TSTimestamp") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2_TS,22,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control profiles # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT2:ComputeProfiles") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)COMPUTE_PROFILES") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT2:ComputeProfiles_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)COMPUTE_PROFILES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ProfileSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)PROFILE_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:ProfileSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)PROFILE_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT2:CursorX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)CURSOR_X") - field(VAL, "256") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:CursorX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)CURSOR_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT2:CursorY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)CURSOR_Y") - field(VAL, "256") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:CursorY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)CURSOR_Y") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:CursorVal") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)CURSOR_VAL") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:ProfileAverageX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2,0,1)PROFILE_AVERAGE_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:ProfileAverageY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2,0,1)PROFILE_AVERAGE_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:ProfileThresholdX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2,0,1)PROFILE_THRESHOLD_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:ProfileThresholdY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2,0,1)PROFILE_THRESHOLD_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:ProfileCentroidX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2,0,1)PROFILE_CENTROID_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:ProfileCentroidY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2,0,1)PROFILE_CENTROID_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:ProfileCursorX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2,0,1)PROFILE_CURSOR_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:ProfileCursorY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2,0,1)PROFILE_CURSOR_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These are used to define the histogram # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT2:ComputeHistogram") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)COMPUTE_HISTOGRAM") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT2:ComputeHistogram_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)COMPUTE_HISTOGRAM") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT2:HistSize") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)HIST_SIZE") - field(VAL, "256") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:HistSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)HIST_SIZE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:HistMin") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)HIST_MIN") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:HistMin_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)HIST_MIN") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:HistMax") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)HIST_MAX") - field(VAL, "255") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:HistMax_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)HIST_MAX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT2:HistBelow") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)HIST_BELOW") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:HistBelow_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)HIST_BELOW") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT2:HistAbove") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat2,0,1)HIST_ABOVE") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:HistAbove_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat2,0,1)HIST_ABOVE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT2:HistEntropy") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat2,0,1)HIST_ENTROPY") -} - -record(ai, "S03SIM-DI-OAV-01:STAT2:HistEntropy_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat2,0,1)HIST_ENTROPY") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:Histogram_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2,0,1)HIST_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT2:HistogramX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat2,0,1)HIST_X_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - 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, "S03SIM-DI-OAV-01:STAT2:MaxSizeX") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:ProfileSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:STAT2:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:STAT2:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:STAT2:CursorX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:STAT2:MaxSizeY") -{ - field(INP, "S03SIM-DI-OAV-01:STAT2:ProfileSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:STAT2:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:STAT2:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:STAT2:CursorY.HOPR NPP") -} - -################################################################### -# These records reset the statistics # -################################################################### -record(sseq, "S03SIM-DI-OAV-01:STAT2:Reset") -{ - field(LNK1, "S03SIM-DI-OAV-01:STAT2:MinValue PP MS") - field(LNK2, "S03SIM-DI-OAV-01:STAT2:MaxValue PP MS") - field(LNK3, "S03SIM-DI-OAV-01:STAT2:MeanValue PP MS") - field(LNK4, "S03SIM-DI-OAV-01:STAT2:SigmaValue PP MS") - field(LNK5, "S03SIM-DI-OAV-01:STAT2:Total PP MS") - field(LNK6, "S03SIM-DI-OAV-01:STAT2:Net PP MS") - field(LNK7, "S03SIM-DI-OAV-01:STAT2:MinX PP MS") - field(LNK8, "S03SIM-DI-OAV-01:STAT2:MinY PP MS") - field(LNK9, "S03SIM-DI-OAV-01:STAT2:MaxX PP MS") - field(LNKA, "S03SIM-DI-OAV-01:STAT2:MaxY PP MS") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Reset1") -} - -record(sseq, "S03SIM-DI-OAV-01:STAT2:Reset1") -{ - field(LNK1, "S03SIM-DI-OAV-01:STAT2:CentroidX PP MS") - field(LNK2, "S03SIM-DI-OAV-01:STAT2:CentroidY PP MS") - field(LNK3, "S03SIM-DI-OAV-01:STAT2:SigmaX PP MS") - field(LNK4, "S03SIM-DI-OAV-01:STAT2:SigmaY PP MS") - field(LNK5, "S03SIM-DI-OAV-01:STAT2:SigmaXY PP MS") - field(LNK6, "S03SIM-DI-OAV-01:STAT2:CentroidTotal PP MS") - field(LNK7, "S03SIM-DI-OAV-01:STAT2:SkewX PP MS") - field(LNK8, "S03SIM-DI-OAV-01:STAT2:SkewY PP MS") - field(LNK9, "S03SIM-DI-OAV-01:STAT2:KurtosisX PP MS") - field(LNKA, "S03SIM-DI-OAV-01:STAT2:KurtosisY PP MS") - field(FLNK, "S03SIM-DI-OAV-01:STAT2:Reset2") -} - -record(sseq, "S03SIM-DI-OAV-01:STAT2:Reset2") -{ - field(LNK1, "S03SIM-DI-OAV-01:STAT2:Eccentricity PP MS") - field(LNK2, "S03SIM-DI-OAV-01:STAT2:Orientation PP MS") - field(LNK3, "S03SIM-DI-OAV-01:STAT2:HistBelow PP MS") - field(LNK4, "S03SIM-DI-OAV-01:STAT2:HistAbove PP MS") - field(LNK5, "S03SIM-DI-OAV-01:STAT2:HistEntropy PP MS") -} - -#=================================================================# -# Template file: NDStats.template - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, NCHANS, Number of channels -# % macro, XSIZE, x size -# % macro, YSIZE, y size -# % macro, HIST_SIZE, hist size -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Timeout -# % macro, TS_PORT, TS port - -# This associates the template with an edm screen -# % gui, OAV.stats.stat3, edmtab, NDStats.edl, P=S03SIM-DI-OAV-01,R=:STAT3: - -# This associates a BOY screen with the template -# % gui, OAV.stats.stat3, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-DI-OAV-01, R=:STAT3:, DESC=Statistics -# % gui, OAV.stats.stat3, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-DI-OAV-01, R=:STAT3:, DESC=Statistics -# % gui, OAV.stats.stat3, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-DI-OAV-01, R=:STAT3:, DESC=Statistics - - -# % gui, OAV.stats.stat3, groupHeading, Info -# % gui, OAV.stats.stat3, readback, Port name, S03SIM-DI-OAV-01:STAT3:PortName_RBV -# % gui, OAV.stats.stat3, readback, Plugin type, S03SIM-DI-OAV-01:STAT3:PluginType_RBV -# Input -# % gui, OAV.stats.stat3, demandString, Input, S03SIM-DI-OAV-01:STAT3:NDArrayPort -# % gui, OAV.stats.stat3, readback, Input, S03SIM-DI-OAV-01:STAT3:NDArrayPort_RBV - -# % gui, OAV.stats.stat3, groupHeading, Callback -# % gui, OAV.stats.stat3, enum, Callbacks, S03SIM-DI-OAV-01:STAT3:EnableCallbacks -# % gui, OAV.stats.stat3, statusbits, Callbacks, S03SIM-DI-OAV-01:STAT3:EnableCallbacks_RBV -# % gui, OAV.stats.stat3, demand, Min Callback Time, S03SIM-DI-OAV-01:STAT3:MinCallbackTime -# % gui, OAV.stats.stat3, readback, Min Callback Time, S03SIM-DI-OAV-01:STAT3:MinCallbackTime_RBV -# % gui, OAV.stats.stat3, enum, Block Callbacks, S03SIM-DI-OAV-01:STAT3:BlockingCallbacks -# % gui, OAV.stats.stat3, statusbits, Block Callbacks, S03SIM-DI-OAV-01:STAT3:BlockingCallbacks_RBV - -# % gui, OAV.stats.stat3, groupHeading, Counters -# % gui, OAV.stats.stat3, demand, Array Counter, S03SIM-DI-OAV-01:STAT3:ArrayCounter -# % gui, OAV.stats.stat3, readback, Array Counter, S03SIM-DI-OAV-01:STAT3:ArrayCounter_RBV -# % gui, OAV.stats.stat3, readback, Array Rate (fps), S03SIM-DI-OAV-01:STAT3:ArrayRate_RBV -# % gui, OAV.stats.stat3, readback, Queue Use, S03SIM-DI-OAV-01:STAT3:QueueUse -# % gui, OAV.stats.stat3, readback, Queue Size, S03SIM-DI-OAV-01:STAT3:QueueSize -# % gui, OAV.stats.stat3, demand, Dropped Arrays, S03SIM-DI-OAV-01:STAT3:DroppedArrays -# % gui, OAV.stats.stat3, readback, Dropped Arrays, S03SIM-DI-OAV-01:STAT3:DroppedArrays_RBV - -# % gui, OAV.stats.stat3, groupHeading, Array Settings -# % gui, OAV.stats.stat3, readback, Num Dimensions, S03SIM-DI-OAV-01:STAT3:NDimensions_RBV -# % gui, OAV.stats.stat3, readback, Dim 0 Size, S03SIM-DI-OAV-01:STAT3:ArraySize0_RBV -# % gui, OAV.stats.stat3, readback, Dim 1 Size, S03SIM-DI-OAV-01:STAT3:ArraySize1_RBV -# % gui, OAV.stats.stat3, readback, Dim 2 Size, S03SIM-DI-OAV-01:STAT3:ArraySize2_RBV -# % gui, OAV.stats.stat3, readback, Input Data Type, S03SIM-DI-OAV-01:STAT3:DataType_RBV -# % gui, OAV.stats.stat3, readback, Colour Mode, S03SIM-DI-OAV-01:STAT3:ColorMode_RBV -# % gui, OAV.stats.stat3, readback, Bayer Pattern, S03SIM-DI-OAV-01:STAT3:BayerPattern_RBV -# % gui, OAV.stats.stat3, readback, Unique id, S03SIM-DI-OAV-01:STAT3:UniqueId_RBV -# % gui, OAV.stats.stat3, readback, Timestamp, S03SIM-DI-OAV-01:STAT3:TimeStamp_RBV - -# Output -# % gui, OAV.stats.stat3, groupHeading, Output -# % gui, OAV.stats.stat3, demand, Name, S03SIM-DI-OAV-01:STAT3:Name -# % gui, OAV.stats.stat3, enum, Out data type, S03SIM-DI-OAV-01:STAT3:DataTypeOut -# % gui, OAV.stats.stat3, readback, Out data type, S03SIM-DI-OAV-01:STAT3:DataTypeOut_RBV -# % gui, OAV.stats.stat3, demand, Attributes file, S03SIM-DI-OAV-01:STAT3:NDAttributesFile - -# Statistics -# % gui, OAV.stats.stat3, groupHeading, Statistics -# % gui, OAV.stats.stat3, enum, Compute Statistics, S03SIM-DI-OAV-01:STAT3:ComputeStatistics -# % gui, OAV.stats.stat3, statusbits, Compute Statistics, S03SIM-DI-OAV-01:STAT3:ComputeStatistics_RBV -# % gui, OAV.stats.stat3, demand, Background Width, S03SIM-DI-OAV-01:STAT3:BgdWidth -# % gui, OAV.stats.stat3, readback, Background Width, S03SIM-DI-OAV-01:STAT3:BgdWidth_RBV -# % gui, OAV.stats.stat3, readback, Minimum Value, S03SIM-DI-OAV-01:STAT3:MinValue_RBV -# % gui, OAV.stats.stat3, readback, Minimum X, S03SIM-DI-OAV-01:STAT3:MinX_RBV -# % gui, OAV.stats.stat3, readback, Minimum Y, S03SIM-DI-OAV-01:STAT3:MinY_RBV -# % gui, OAV.stats.stat3, readback, Maximum Value, S03SIM-DI-OAV-01:STAT3:MaxValue_RBV -# % gui, OAV.stats.stat3, readback, Maximum X, S03SIM-DI-OAV-01:STAT3:MaxX_RBV -# % gui, OAV.stats.stat3, readback, Maximum Y, S03SIM-DI-OAV-01:STAT3:MaxY_RBV -# % gui, OAV.stats.stat3, readback, Mean Value, S03SIM-DI-OAV-01:STAT3:MeanValue_RBV -# % gui, OAV.stats.stat3, readback, Total, S03SIM-DI-OAV-01:STAT3:Total_RBV -# % gui, OAV.stats.stat3, readback, Sigma, S03SIM-DI-OAV-01:STAT3:Sigma_RBV -# % gui, OAV.stats.stat3, readback, Net, S03SIM-DI-OAV-01:STAT3:Net_RBV -# Centroid -# % gui, OAV.stats.stat3, groupHeading, Centroid -# % gui, OAV.stats.stat3, enum, Compute Centroid, S03SIM-DI-OAV-01:STAT3:ComputeCentroid -# % gui, OAV.stats.stat3, statusbits, Compute Centroid, S03SIM-DI-OAV-01:STAT3:ComputeCentroid_RBV -# % gui, OAV.stats.stat3, demand, Threshold, S03SIM-DI-OAV-01:STAT3:CentroidThreshold -# % gui, OAV.stats.stat3, readback, Threshold, S03SIM-DI-OAV-01:STAT3:CentroidThreshold_RBV -# % gui, OAV.stats.stat3, readback, X, S03SIM-DI-OAV-01:STAT3:CentroidX_RBV -# % gui, OAV.stats.stat3, readback, Sigma X, S03SIM-DI-OAV-01:STAT3:SigmaX_RBV -# % gui, OAV.stats.stat3, readback, Y, S03SIM-DI-OAV-01:STAT3:CentroidY_RBV -# % gui, OAV.stats.stat3, readback, Sigma Y, S03SIM-DI-OAV-01:STAT3:SigmaY_RBV -# % gui, OAV.stats.stat3, readback, Sigma XY, S03SIM-DI-OAV-01:STAT3:SigmaXY_RBV -# Histogram -# % gui, OAV.stats.stat3, groupHeading, Histogram -# % gui, OAV.stats.stat3, enum, Compute Histogram, S03SIM-DI-OAV-01:STAT3:ComputeHistogram -# % gui, OAV.stats.stat3, statusbits, Compute Histogram, S03SIM-DI-OAV-01:STAT3:ComputeHistogram_RBV -# % gui, OAV.stats.stat3, demand, Histogram Size, S03SIM-DI-OAV-01:STAT3:HistSize -# % gui, OAV.stats.stat3, readback, Histogram Size, S03SIM-DI-OAV-01:STAT3:HistSize_RBV -# % gui, OAV.stats.stat3, demand, Histogram Min, S03SIM-DI-OAV-01:STAT3:HistMin -# % gui, OAV.stats.stat3, readback, Histogram Min, S03SIM-DI-OAV-01:STAT3:HistMin_RBV -# % gui, OAV.stats.stat3, demand, Histogram Max, S03SIM-DI-OAV-01:STAT3:HistMax -# % gui, OAV.stats.stat3, readback, Histogram Max, S03SIM-DI-OAV-01:STAT3:HistMax_RBV -# % gui, OAV.stats.stat3, readback, Histogram Entropy, S03SIM-DI-OAV-01:STAT3:HistEntropy_RBV -# Profiles -# % gui, OAV.stats.stat3, groupHeading, Profiles -# % gui, OAV.stats.stat3, enum, Compute Profiles, S03SIM-DI-OAV-01:STAT3:ComputeProfiles -# % gui, OAV.stats.stat3, statusbits, Compute Profiles, S03SIM-DI-OAV-01:STAT3:ComputeProfiles_RBV -# % gui, OAV.stats.stat3, demand, Cursor X, S03SIM-DI-OAV-01:STAT3:CursorX -# % gui, OAV.stats.stat3, readback, Cursor X, S03SIM-DI-OAV-01:STAT3:CursorX_RBV -# % gui, OAV.stats.stat3, demand, Cursor Y, S03SIM-DI-OAV-01:STAT3:CursorY -# % gui, OAV.stats.stat3, readback, Cursor Y, S03SIM-DI-OAV-01:STAT3:CursorY_RBV -# % gui, OAV.stats.stat3, readback, Size X, S03SIM-DI-OAV-01:STAT3:ProfileSizeX_RBV -# % gui, OAV.stats.stat3, readback, Size Y, S03SIM-DI-OAV-01:STAT3:ProfileSizeY_RBV -# Time series -# % gui, OAV.stats.stat3, groupHeading, Time Series -# % gui, OAV.stats.stat3, enum, Time Control, S03SIM-DI-OAV-01:STAT3:TS:TSAcquire -# % gui, OAV.stats.stat3, statusbits, Acquiring, S03SIM-DI-OAV-01:STAT3:TS:TSAcquiring -# % gui, OAV.stats.stat3, readback, Current Point, S03SIM-DI-OAV-01:STAT3:TS:TSCurrentPoint -# % gui, OAV.stats.stat3, demand, Number of Points, S03SIM-DI-OAV-01:STAT3:TS:TSNumPoints -# % gui, OAV.stats.stat3, enum, Update, S03SIM-DI-OAV-01:STAT3:TS:TSRead.SCAN -# Memory -# % gui, OAV.stats.stat3, groupHeading, Memory -# % gui, OAV.stats.stat3, readback, Max memory, S03SIM-DI-OAV-01:STAT3:PoolMaxMem -# % gui, OAV.stats.stat3, readback, Max buffers, S03SIM-DI-OAV-01:STAT3:PoolMaxBuffers -# % gui, OAV.stats.stat3, readback, Used memory, S03SIM-DI-OAV-01:STAT3:PoolUsedMem -# % gui, OAV.stats.stat3, readback, Allocated buffers, S03SIM-DI-OAV-01:STAT3:PoolAllocBuffers -# % gui, OAV.stats.stat3, readback, Free buffers, S03SIM-DI-OAV-01:STAT3:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT3:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat3,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT3:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat3,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT3:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat3,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT3:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat3,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT3:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat3,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT3:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat3,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT3:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat3,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT3:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat3,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:STAT3:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:STAT3:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT3:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT3:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:STAT3:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:STAT3:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT3:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:STAT3:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:STAT3:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:STAT3:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:STAT3:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:STAT3:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.stats.stat3,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.stats.stat3,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT3:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:STAT3:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:STAT3:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat3,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:STAT3:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:STAT3:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:STAT3:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:STAT3:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:STAT3:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:STAT3:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:STAT3:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT3:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:STAT3:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:STAT3:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT3:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT3:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:STAT3:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.stats.stat3,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:STAT3:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.stats.stat3,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:STAT3:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-DI-OAV-01:STAT3:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:PoolFreeBuffers") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:PoolUsedBuffers") -} - -record(calc, "S03SIM-DI-OAV-01:STAT3:PoolUsedBuffers") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT3:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:STAT3:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-DI-OAV-01:STAT3:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT3:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat3,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:STAT3:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.stats.stat3,0,1)NDARRAY_PORT") - field(VAL, "OAV.rois.roi1") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT3:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat3,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT3:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT3:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT3:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:STAT3:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT3:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT3:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:STAT3:MinCallbackTime PP") -} - -record(calc, "S03SIM-DI-OAV-01:STAT3:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT3:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:STAT3:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT3:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT3:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT3:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-DI-OAV-01:STAT3:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT3:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT3:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:STAT3:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:STAT3:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:STAT3:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:STAT3:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:STAT3:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:STAT3:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:STAT3:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:STAT3:QueueUse.HIHI") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:STAT3:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:STAT3:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:STAT3:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-DI-OAV-01:STAT3:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:STAT3:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-DI-OAV-01:STAT3:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT3:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT3:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:STAT3:SortSize") - field(OUT, "S03SIM-DI-OAV-01:STAT3:SortFree.LOW") -} - -record(longout, "S03SIM-DI-OAV-01:STAT3:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT3:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:STAT3:AsynIO") -{ - field(PORT, "OAV.stats.stat3") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records contain the basic statistics # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT3:ComputeStatistics") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)COMPUTE_STATISTICS") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT3:ComputeStatistics_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)COMPUTE_STATISTICS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT3:BgdWidth") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)BGD_WIDTH") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:BgdWidth_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)BGD_WIDTH") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:MinValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)MIN_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:MinValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)MIN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:MaxValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)MAX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:MaxValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)MAX_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:MeanValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)MEAN_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:MeanValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)MEAN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:SigmaValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)SIGMA_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:Sigma_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)SIGMA_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:Total") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)TOTAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:Total_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:Net") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)NET") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:Net_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)NET") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:MinX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)MIN_X") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:MinX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)MIN_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:MinY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)MIN_Y") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:MinY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)MIN_Y") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:MaxX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)MAX_X") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:MaxX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)MAX_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:MaxY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)MAX_Y") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:MaxY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)MAX_Y") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether centroid statistics are computed # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT3:ComputeCentroid") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)COMPUTE_CENTROID") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT3:ComputeCentroid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)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, "S03SIM-DI-OAV-01:STAT3:CentroidThreshold") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)CENTROID_THRESHOLD") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:CentroidThreshold_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)CENTROID_THRESHOLD") - field(VAL, "0") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:CentroidTotal") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)CENTROID_TOTAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:CentroidTotal_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)CENTROID_TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:CentroidX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)CENTROIDX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:CentroidX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)CENTROIDX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:CentroidY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)CENTROIDY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:CentroidY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)CENTROIDY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:SigmaX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)SIGMAX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:SigmaX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)SIGMAX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:SigmaY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)SIGMAY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:SigmaY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)SIGMAY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:SigmaXY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)SIGMAXY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:SigmaXY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)SIGMAXY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:SkewX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)SKEWX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:SkewX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)SKEWX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:SkewY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)SKEWY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:SkewY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)SKEWY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:KurtosisX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)KURTOSISX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:KurtosisX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)KURTOSISX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:KurtosisY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)KURTOSISY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:KurtosisY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)KURTOSISY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:Eccentricity") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)ECCENTRICITY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:Eccentricity_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)ECCENTRICITY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:Orientation") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)ORIENTATION_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:Orientation_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)ORIENTATION_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control time series # -################################################################### -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSMinValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,0,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSMinX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,1,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSMinY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,2,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSMaxValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,3,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSMaxX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,4,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSMaxY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,5,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSMeanValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,6,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSSigma") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,7,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,8,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSNet") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,9,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSCentroidTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,10,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSCentroidX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,11,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSCentroidY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,12,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSSigmaX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,13,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSSigmaY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,14,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSSigmaXY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,15,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSSkewX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,16,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSSkewY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,17,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSKurtosisX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,18,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSKurtosisY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,19,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSEccentricity") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,20,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSOrientation") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,21,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:TSTimestamp") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3_TS,22,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control profiles # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT3:ComputeProfiles") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)COMPUTE_PROFILES") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT3:ComputeProfiles_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)COMPUTE_PROFILES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ProfileSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)PROFILE_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:ProfileSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)PROFILE_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT3:CursorX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)CURSOR_X") - field(VAL, "256") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:CursorX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)CURSOR_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT3:CursorY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)CURSOR_Y") - field(VAL, "256") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:CursorY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)CURSOR_Y") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:CursorVal") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)CURSOR_VAL") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:ProfileAverageX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3,0,1)PROFILE_AVERAGE_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:ProfileAverageY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3,0,1)PROFILE_AVERAGE_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:ProfileThresholdX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3,0,1)PROFILE_THRESHOLD_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:ProfileThresholdY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3,0,1)PROFILE_THRESHOLD_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:ProfileCentroidX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3,0,1)PROFILE_CENTROID_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:ProfileCentroidY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3,0,1)PROFILE_CENTROID_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:ProfileCursorX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3,0,1)PROFILE_CURSOR_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:ProfileCursorY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3,0,1)PROFILE_CURSOR_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These are used to define the histogram # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT3:ComputeHistogram") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)COMPUTE_HISTOGRAM") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT3:ComputeHistogram_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)COMPUTE_HISTOGRAM") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT3:HistSize") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)HIST_SIZE") - field(VAL, "256") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:HistSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)HIST_SIZE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:HistMin") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)HIST_MIN") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:HistMin_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)HIST_MIN") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:HistMax") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)HIST_MAX") - field(VAL, "255") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:HistMax_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)HIST_MAX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT3:HistBelow") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)HIST_BELOW") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:HistBelow_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)HIST_BELOW") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT3:HistAbove") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat3,0,1)HIST_ABOVE") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:HistAbove_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat3,0,1)HIST_ABOVE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT3:HistEntropy") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat3,0,1)HIST_ENTROPY") -} - -record(ai, "S03SIM-DI-OAV-01:STAT3:HistEntropy_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat3,0,1)HIST_ENTROPY") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:Histogram_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3,0,1)HIST_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT3:HistogramX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat3,0,1)HIST_X_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - 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, "S03SIM-DI-OAV-01:STAT3:MaxSizeX") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:ProfileSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:STAT3:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:STAT3:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:STAT3:CursorX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:STAT3:MaxSizeY") -{ - field(INP, "S03SIM-DI-OAV-01:STAT3:ProfileSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:STAT3:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:STAT3:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:STAT3:CursorY.HOPR NPP") -} - -################################################################### -# These records reset the statistics # -################################################################### -record(sseq, "S03SIM-DI-OAV-01:STAT3:Reset") -{ - field(LNK1, "S03SIM-DI-OAV-01:STAT3:MinValue PP MS") - field(LNK2, "S03SIM-DI-OAV-01:STAT3:MaxValue PP MS") - field(LNK3, "S03SIM-DI-OAV-01:STAT3:MeanValue PP MS") - field(LNK4, "S03SIM-DI-OAV-01:STAT3:SigmaValue PP MS") - field(LNK5, "S03SIM-DI-OAV-01:STAT3:Total PP MS") - field(LNK6, "S03SIM-DI-OAV-01:STAT3:Net PP MS") - field(LNK7, "S03SIM-DI-OAV-01:STAT3:MinX PP MS") - field(LNK8, "S03SIM-DI-OAV-01:STAT3:MinY PP MS") - field(LNK9, "S03SIM-DI-OAV-01:STAT3:MaxX PP MS") - field(LNKA, "S03SIM-DI-OAV-01:STAT3:MaxY PP MS") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Reset1") -} - -record(sseq, "S03SIM-DI-OAV-01:STAT3:Reset1") -{ - field(LNK1, "S03SIM-DI-OAV-01:STAT3:CentroidX PP MS") - field(LNK2, "S03SIM-DI-OAV-01:STAT3:CentroidY PP MS") - field(LNK3, "S03SIM-DI-OAV-01:STAT3:SigmaX PP MS") - field(LNK4, "S03SIM-DI-OAV-01:STAT3:SigmaY PP MS") - field(LNK5, "S03SIM-DI-OAV-01:STAT3:SigmaXY PP MS") - field(LNK6, "S03SIM-DI-OAV-01:STAT3:CentroidTotal PP MS") - field(LNK7, "S03SIM-DI-OAV-01:STAT3:SkewX PP MS") - field(LNK8, "S03SIM-DI-OAV-01:STAT3:SkewY PP MS") - field(LNK9, "S03SIM-DI-OAV-01:STAT3:KurtosisX PP MS") - field(LNKA, "S03SIM-DI-OAV-01:STAT3:KurtosisY PP MS") - field(FLNK, "S03SIM-DI-OAV-01:STAT3:Reset2") -} - -record(sseq, "S03SIM-DI-OAV-01:STAT3:Reset2") -{ - field(LNK1, "S03SIM-DI-OAV-01:STAT3:Eccentricity PP MS") - field(LNK2, "S03SIM-DI-OAV-01:STAT3:Orientation PP MS") - field(LNK3, "S03SIM-DI-OAV-01:STAT3:HistBelow PP MS") - field(LNK4, "S03SIM-DI-OAV-01:STAT3:HistAbove PP MS") - field(LNK5, "S03SIM-DI-OAV-01:STAT3:HistEntropy PP MS") -} - -#=================================================================# -# Template file: NDStats.template - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, NCHANS, Number of channels -# % macro, XSIZE, x size -# % macro, YSIZE, y size -# % macro, HIST_SIZE, hist size -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Timeout -# % macro, TS_PORT, TS port - -# This associates the template with an edm screen -# % gui, OAV.stats.stat4, edmtab, NDStats.edl, P=S03SIM-DI-OAV-01,R=:STAT4: - -# This associates a BOY screen with the template -# % gui, OAV.stats.stat4, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-DI-OAV-01, R=:STAT4:, DESC=Statistics -# % gui, OAV.stats.stat4, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-DI-OAV-01, R=:STAT4:, DESC=Statistics -# % gui, OAV.stats.stat4, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-DI-OAV-01, R=:STAT4:, DESC=Statistics - - -# % gui, OAV.stats.stat4, groupHeading, Info -# % gui, OAV.stats.stat4, readback, Port name, S03SIM-DI-OAV-01:STAT4:PortName_RBV -# % gui, OAV.stats.stat4, readback, Plugin type, S03SIM-DI-OAV-01:STAT4:PluginType_RBV -# Input -# % gui, OAV.stats.stat4, demandString, Input, S03SIM-DI-OAV-01:STAT4:NDArrayPort -# % gui, OAV.stats.stat4, readback, Input, S03SIM-DI-OAV-01:STAT4:NDArrayPort_RBV - -# % gui, OAV.stats.stat4, groupHeading, Callback -# % gui, OAV.stats.stat4, enum, Callbacks, S03SIM-DI-OAV-01:STAT4:EnableCallbacks -# % gui, OAV.stats.stat4, statusbits, Callbacks, S03SIM-DI-OAV-01:STAT4:EnableCallbacks_RBV -# % gui, OAV.stats.stat4, demand, Min Callback Time, S03SIM-DI-OAV-01:STAT4:MinCallbackTime -# % gui, OAV.stats.stat4, readback, Min Callback Time, S03SIM-DI-OAV-01:STAT4:MinCallbackTime_RBV -# % gui, OAV.stats.stat4, enum, Block Callbacks, S03SIM-DI-OAV-01:STAT4:BlockingCallbacks -# % gui, OAV.stats.stat4, statusbits, Block Callbacks, S03SIM-DI-OAV-01:STAT4:BlockingCallbacks_RBV - -# % gui, OAV.stats.stat4, groupHeading, Counters -# % gui, OAV.stats.stat4, demand, Array Counter, S03SIM-DI-OAV-01:STAT4:ArrayCounter -# % gui, OAV.stats.stat4, readback, Array Counter, S03SIM-DI-OAV-01:STAT4:ArrayCounter_RBV -# % gui, OAV.stats.stat4, readback, Array Rate (fps), S03SIM-DI-OAV-01:STAT4:ArrayRate_RBV -# % gui, OAV.stats.stat4, readback, Queue Use, S03SIM-DI-OAV-01:STAT4:QueueUse -# % gui, OAV.stats.stat4, readback, Queue Size, S03SIM-DI-OAV-01:STAT4:QueueSize -# % gui, OAV.stats.stat4, demand, Dropped Arrays, S03SIM-DI-OAV-01:STAT4:DroppedArrays -# % gui, OAV.stats.stat4, readback, Dropped Arrays, S03SIM-DI-OAV-01:STAT4:DroppedArrays_RBV - -# % gui, OAV.stats.stat4, groupHeading, Array Settings -# % gui, OAV.stats.stat4, readback, Num Dimensions, S03SIM-DI-OAV-01:STAT4:NDimensions_RBV -# % gui, OAV.stats.stat4, readback, Dim 0 Size, S03SIM-DI-OAV-01:STAT4:ArraySize0_RBV -# % gui, OAV.stats.stat4, readback, Dim 1 Size, S03SIM-DI-OAV-01:STAT4:ArraySize1_RBV -# % gui, OAV.stats.stat4, readback, Dim 2 Size, S03SIM-DI-OAV-01:STAT4:ArraySize2_RBV -# % gui, OAV.stats.stat4, readback, Input Data Type, S03SIM-DI-OAV-01:STAT4:DataType_RBV -# % gui, OAV.stats.stat4, readback, Colour Mode, S03SIM-DI-OAV-01:STAT4:ColorMode_RBV -# % gui, OAV.stats.stat4, readback, Bayer Pattern, S03SIM-DI-OAV-01:STAT4:BayerPattern_RBV -# % gui, OAV.stats.stat4, readback, Unique id, S03SIM-DI-OAV-01:STAT4:UniqueId_RBV -# % gui, OAV.stats.stat4, readback, Timestamp, S03SIM-DI-OAV-01:STAT4:TimeStamp_RBV - -# Output -# % gui, OAV.stats.stat4, groupHeading, Output -# % gui, OAV.stats.stat4, demand, Name, S03SIM-DI-OAV-01:STAT4:Name -# % gui, OAV.stats.stat4, enum, Out data type, S03SIM-DI-OAV-01:STAT4:DataTypeOut -# % gui, OAV.stats.stat4, readback, Out data type, S03SIM-DI-OAV-01:STAT4:DataTypeOut_RBV -# % gui, OAV.stats.stat4, demand, Attributes file, S03SIM-DI-OAV-01:STAT4:NDAttributesFile - -# Statistics -# % gui, OAV.stats.stat4, groupHeading, Statistics -# % gui, OAV.stats.stat4, enum, Compute Statistics, S03SIM-DI-OAV-01:STAT4:ComputeStatistics -# % gui, OAV.stats.stat4, statusbits, Compute Statistics, S03SIM-DI-OAV-01:STAT4:ComputeStatistics_RBV -# % gui, OAV.stats.stat4, demand, Background Width, S03SIM-DI-OAV-01:STAT4:BgdWidth -# % gui, OAV.stats.stat4, readback, Background Width, S03SIM-DI-OAV-01:STAT4:BgdWidth_RBV -# % gui, OAV.stats.stat4, readback, Minimum Value, S03SIM-DI-OAV-01:STAT4:MinValue_RBV -# % gui, OAV.stats.stat4, readback, Minimum X, S03SIM-DI-OAV-01:STAT4:MinX_RBV -# % gui, OAV.stats.stat4, readback, Minimum Y, S03SIM-DI-OAV-01:STAT4:MinY_RBV -# % gui, OAV.stats.stat4, readback, Maximum Value, S03SIM-DI-OAV-01:STAT4:MaxValue_RBV -# % gui, OAV.stats.stat4, readback, Maximum X, S03SIM-DI-OAV-01:STAT4:MaxX_RBV -# % gui, OAV.stats.stat4, readback, Maximum Y, S03SIM-DI-OAV-01:STAT4:MaxY_RBV -# % gui, OAV.stats.stat4, readback, Mean Value, S03SIM-DI-OAV-01:STAT4:MeanValue_RBV -# % gui, OAV.stats.stat4, readback, Total, S03SIM-DI-OAV-01:STAT4:Total_RBV -# % gui, OAV.stats.stat4, readback, Sigma, S03SIM-DI-OAV-01:STAT4:Sigma_RBV -# % gui, OAV.stats.stat4, readback, Net, S03SIM-DI-OAV-01:STAT4:Net_RBV -# Centroid -# % gui, OAV.stats.stat4, groupHeading, Centroid -# % gui, OAV.stats.stat4, enum, Compute Centroid, S03SIM-DI-OAV-01:STAT4:ComputeCentroid -# % gui, OAV.stats.stat4, statusbits, Compute Centroid, S03SIM-DI-OAV-01:STAT4:ComputeCentroid_RBV -# % gui, OAV.stats.stat4, demand, Threshold, S03SIM-DI-OAV-01:STAT4:CentroidThreshold -# % gui, OAV.stats.stat4, readback, Threshold, S03SIM-DI-OAV-01:STAT4:CentroidThreshold_RBV -# % gui, OAV.stats.stat4, readback, X, S03SIM-DI-OAV-01:STAT4:CentroidX_RBV -# % gui, OAV.stats.stat4, readback, Sigma X, S03SIM-DI-OAV-01:STAT4:SigmaX_RBV -# % gui, OAV.stats.stat4, readback, Y, S03SIM-DI-OAV-01:STAT4:CentroidY_RBV -# % gui, OAV.stats.stat4, readback, Sigma Y, S03SIM-DI-OAV-01:STAT4:SigmaY_RBV -# % gui, OAV.stats.stat4, readback, Sigma XY, S03SIM-DI-OAV-01:STAT4:SigmaXY_RBV -# Histogram -# % gui, OAV.stats.stat4, groupHeading, Histogram -# % gui, OAV.stats.stat4, enum, Compute Histogram, S03SIM-DI-OAV-01:STAT4:ComputeHistogram -# % gui, OAV.stats.stat4, statusbits, Compute Histogram, S03SIM-DI-OAV-01:STAT4:ComputeHistogram_RBV -# % gui, OAV.stats.stat4, demand, Histogram Size, S03SIM-DI-OAV-01:STAT4:HistSize -# % gui, OAV.stats.stat4, readback, Histogram Size, S03SIM-DI-OAV-01:STAT4:HistSize_RBV -# % gui, OAV.stats.stat4, demand, Histogram Min, S03SIM-DI-OAV-01:STAT4:HistMin -# % gui, OAV.stats.stat4, readback, Histogram Min, S03SIM-DI-OAV-01:STAT4:HistMin_RBV -# % gui, OAV.stats.stat4, demand, Histogram Max, S03SIM-DI-OAV-01:STAT4:HistMax -# % gui, OAV.stats.stat4, readback, Histogram Max, S03SIM-DI-OAV-01:STAT4:HistMax_RBV -# % gui, OAV.stats.stat4, readback, Histogram Entropy, S03SIM-DI-OAV-01:STAT4:HistEntropy_RBV -# Profiles -# % gui, OAV.stats.stat4, groupHeading, Profiles -# % gui, OAV.stats.stat4, enum, Compute Profiles, S03SIM-DI-OAV-01:STAT4:ComputeProfiles -# % gui, OAV.stats.stat4, statusbits, Compute Profiles, S03SIM-DI-OAV-01:STAT4:ComputeProfiles_RBV -# % gui, OAV.stats.stat4, demand, Cursor X, S03SIM-DI-OAV-01:STAT4:CursorX -# % gui, OAV.stats.stat4, readback, Cursor X, S03SIM-DI-OAV-01:STAT4:CursorX_RBV -# % gui, OAV.stats.stat4, demand, Cursor Y, S03SIM-DI-OAV-01:STAT4:CursorY -# % gui, OAV.stats.stat4, readback, Cursor Y, S03SIM-DI-OAV-01:STAT4:CursorY_RBV -# % gui, OAV.stats.stat4, readback, Size X, S03SIM-DI-OAV-01:STAT4:ProfileSizeX_RBV -# % gui, OAV.stats.stat4, readback, Size Y, S03SIM-DI-OAV-01:STAT4:ProfileSizeY_RBV -# Time series -# % gui, OAV.stats.stat4, groupHeading, Time Series -# % gui, OAV.stats.stat4, enum, Time Control, S03SIM-DI-OAV-01:STAT4:TS:TSAcquire -# % gui, OAV.stats.stat4, statusbits, Acquiring, S03SIM-DI-OAV-01:STAT4:TS:TSAcquiring -# % gui, OAV.stats.stat4, readback, Current Point, S03SIM-DI-OAV-01:STAT4:TS:TSCurrentPoint -# % gui, OAV.stats.stat4, demand, Number of Points, S03SIM-DI-OAV-01:STAT4:TS:TSNumPoints -# % gui, OAV.stats.stat4, enum, Update, S03SIM-DI-OAV-01:STAT4:TS:TSRead.SCAN -# Memory -# % gui, OAV.stats.stat4, groupHeading, Memory -# % gui, OAV.stats.stat4, readback, Max memory, S03SIM-DI-OAV-01:STAT4:PoolMaxMem -# % gui, OAV.stats.stat4, readback, Max buffers, S03SIM-DI-OAV-01:STAT4:PoolMaxBuffers -# % gui, OAV.stats.stat4, readback, Used memory, S03SIM-DI-OAV-01:STAT4:PoolUsedMem -# % gui, OAV.stats.stat4, readback, Allocated buffers, S03SIM-DI-OAV-01:STAT4:PoolAllocBuffers -# % gui, OAV.stats.stat4, readback, Free buffers, S03SIM-DI-OAV-01:STAT4:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT4:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat4,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT4:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat4,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT4:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat4,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT4:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat4,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT4:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat4,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT4:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat4,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT4:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat4,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT4:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat4,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:STAT4:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:STAT4:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT4:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT4:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:STAT4:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:STAT4:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT4:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:STAT4:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:STAT4:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:STAT4:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:STAT4:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:STAT4:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.stats.stat4,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.stats.stat4,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT4:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:STAT4:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:STAT4:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat4,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:STAT4:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:STAT4:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:STAT4:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:STAT4:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:STAT4:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:STAT4:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:STAT4:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT4:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:STAT4:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:STAT4:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT4:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT4:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:STAT4:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.stats.stat4,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:STAT4:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.stats.stat4,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:STAT4:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-DI-OAV-01:STAT4:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:PoolFreeBuffers") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:PoolUsedBuffers") -} - -record(calc, "S03SIM-DI-OAV-01:STAT4:PoolUsedBuffers") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT4:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:STAT4:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-DI-OAV-01:STAT4:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT4:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat4,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:STAT4:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.stats.stat4,0,1)NDARRAY_PORT") - field(VAL, "OAV.rois.roi1") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT4:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat4,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT4:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT4:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT4:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:STAT4:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT4:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT4:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:STAT4:MinCallbackTime PP") -} - -record(calc, "S03SIM-DI-OAV-01:STAT4:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT4:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:STAT4:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT4:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT4:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT4:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-DI-OAV-01:STAT4:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT4:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT4:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:STAT4:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:STAT4:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:STAT4:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:STAT4:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:STAT4:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:STAT4:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:STAT4:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:STAT4:QueueUse.HIHI") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:STAT4:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:STAT4:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:STAT4:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-DI-OAV-01:STAT4:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:STAT4:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-DI-OAV-01:STAT4:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT4:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT4:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:STAT4:SortSize") - field(OUT, "S03SIM-DI-OAV-01:STAT4:SortFree.LOW") -} - -record(longout, "S03SIM-DI-OAV-01:STAT4:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT4:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:STAT4:AsynIO") -{ - field(PORT, "OAV.stats.stat4") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records contain the basic statistics # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT4:ComputeStatistics") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)COMPUTE_STATISTICS") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT4:ComputeStatistics_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)COMPUTE_STATISTICS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT4:BgdWidth") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)BGD_WIDTH") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:BgdWidth_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)BGD_WIDTH") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:MinValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)MIN_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:MinValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)MIN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:MaxValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)MAX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:MaxValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)MAX_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:MeanValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)MEAN_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:MeanValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)MEAN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:SigmaValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)SIGMA_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:Sigma_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)SIGMA_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:Total") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)TOTAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:Total_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:Net") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)NET") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:Net_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)NET") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:MinX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)MIN_X") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:MinX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)MIN_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:MinY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)MIN_Y") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:MinY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)MIN_Y") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:MaxX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)MAX_X") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:MaxX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)MAX_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:MaxY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)MAX_Y") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:MaxY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)MAX_Y") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether centroid statistics are computed # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT4:ComputeCentroid") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)COMPUTE_CENTROID") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT4:ComputeCentroid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)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, "S03SIM-DI-OAV-01:STAT4:CentroidThreshold") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)CENTROID_THRESHOLD") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:CentroidThreshold_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)CENTROID_THRESHOLD") - field(VAL, "0") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:CentroidTotal") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)CENTROID_TOTAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:CentroidTotal_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)CENTROID_TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:CentroidX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)CENTROIDX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:CentroidX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)CENTROIDX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:CentroidY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)CENTROIDY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:CentroidY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)CENTROIDY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:SigmaX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)SIGMAX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:SigmaX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)SIGMAX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:SigmaY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)SIGMAY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:SigmaY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)SIGMAY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:SigmaXY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)SIGMAXY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:SigmaXY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)SIGMAXY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:SkewX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)SKEWX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:SkewX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)SKEWX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:SkewY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)SKEWY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:SkewY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)SKEWY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:KurtosisX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)KURTOSISX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:KurtosisX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)KURTOSISX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:KurtosisY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)KURTOSISY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:KurtosisY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)KURTOSISY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:Eccentricity") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)ECCENTRICITY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:Eccentricity_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)ECCENTRICITY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:Orientation") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)ORIENTATION_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:Orientation_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)ORIENTATION_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control time series # -################################################################### -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSMinValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,0,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSMinX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,1,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSMinY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,2,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSMaxValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,3,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSMaxX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,4,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSMaxY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,5,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSMeanValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,6,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSSigma") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,7,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,8,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSNet") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,9,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSCentroidTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,10,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSCentroidX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,11,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSCentroidY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,12,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSSigmaX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,13,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSSigmaY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,14,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSSigmaXY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,15,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSSkewX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,16,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSSkewY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,17,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSKurtosisX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,18,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSKurtosisY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,19,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSEccentricity") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,20,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSOrientation") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,21,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:TSTimestamp") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4_TS,22,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control profiles # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT4:ComputeProfiles") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)COMPUTE_PROFILES") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT4:ComputeProfiles_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)COMPUTE_PROFILES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ProfileSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)PROFILE_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:ProfileSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)PROFILE_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT4:CursorX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)CURSOR_X") - field(VAL, "256") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:CursorX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)CURSOR_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT4:CursorY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)CURSOR_Y") - field(VAL, "256") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:CursorY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)CURSOR_Y") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:CursorVal") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)CURSOR_VAL") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:ProfileAverageX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4,0,1)PROFILE_AVERAGE_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:ProfileAverageY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4,0,1)PROFILE_AVERAGE_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:ProfileThresholdX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4,0,1)PROFILE_THRESHOLD_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:ProfileThresholdY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4,0,1)PROFILE_THRESHOLD_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:ProfileCentroidX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4,0,1)PROFILE_CENTROID_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:ProfileCentroidY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4,0,1)PROFILE_CENTROID_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:ProfileCursorX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4,0,1)PROFILE_CURSOR_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:ProfileCursorY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4,0,1)PROFILE_CURSOR_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These are used to define the histogram # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT4:ComputeHistogram") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)COMPUTE_HISTOGRAM") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT4:ComputeHistogram_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)COMPUTE_HISTOGRAM") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT4:HistSize") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)HIST_SIZE") - field(VAL, "256") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:HistSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)HIST_SIZE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:HistMin") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)HIST_MIN") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:HistMin_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)HIST_MIN") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:HistMax") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)HIST_MAX") - field(VAL, "255") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:HistMax_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)HIST_MAX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT4:HistBelow") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)HIST_BELOW") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:HistBelow_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)HIST_BELOW") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT4:HistAbove") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat4,0,1)HIST_ABOVE") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:HistAbove_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat4,0,1)HIST_ABOVE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT4:HistEntropy") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat4,0,1)HIST_ENTROPY") -} - -record(ai, "S03SIM-DI-OAV-01:STAT4:HistEntropy_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat4,0,1)HIST_ENTROPY") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:Histogram_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4,0,1)HIST_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT4:HistogramX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat4,0,1)HIST_X_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - 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, "S03SIM-DI-OAV-01:STAT4:MaxSizeX") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:ProfileSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:STAT4:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:STAT4:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:STAT4:CursorX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:STAT4:MaxSizeY") -{ - field(INP, "S03SIM-DI-OAV-01:STAT4:ProfileSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:STAT4:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:STAT4:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:STAT4:CursorY.HOPR NPP") -} - -################################################################### -# These records reset the statistics # -################################################################### -record(sseq, "S03SIM-DI-OAV-01:STAT4:Reset") -{ - field(LNK1, "S03SIM-DI-OAV-01:STAT4:MinValue PP MS") - field(LNK2, "S03SIM-DI-OAV-01:STAT4:MaxValue PP MS") - field(LNK3, "S03SIM-DI-OAV-01:STAT4:MeanValue PP MS") - field(LNK4, "S03SIM-DI-OAV-01:STAT4:SigmaValue PP MS") - field(LNK5, "S03SIM-DI-OAV-01:STAT4:Total PP MS") - field(LNK6, "S03SIM-DI-OAV-01:STAT4:Net PP MS") - field(LNK7, "S03SIM-DI-OAV-01:STAT4:MinX PP MS") - field(LNK8, "S03SIM-DI-OAV-01:STAT4:MinY PP MS") - field(LNK9, "S03SIM-DI-OAV-01:STAT4:MaxX PP MS") - field(LNKA, "S03SIM-DI-OAV-01:STAT4:MaxY PP MS") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Reset1") -} - -record(sseq, "S03SIM-DI-OAV-01:STAT4:Reset1") -{ - field(LNK1, "S03SIM-DI-OAV-01:STAT4:CentroidX PP MS") - field(LNK2, "S03SIM-DI-OAV-01:STAT4:CentroidY PP MS") - field(LNK3, "S03SIM-DI-OAV-01:STAT4:SigmaX PP MS") - field(LNK4, "S03SIM-DI-OAV-01:STAT4:SigmaY PP MS") - field(LNK5, "S03SIM-DI-OAV-01:STAT4:SigmaXY PP MS") - field(LNK6, "S03SIM-DI-OAV-01:STAT4:CentroidTotal PP MS") - field(LNK7, "S03SIM-DI-OAV-01:STAT4:SkewX PP MS") - field(LNK8, "S03SIM-DI-OAV-01:STAT4:SkewY PP MS") - field(LNK9, "S03SIM-DI-OAV-01:STAT4:KurtosisX PP MS") - field(LNKA, "S03SIM-DI-OAV-01:STAT4:KurtosisY PP MS") - field(FLNK, "S03SIM-DI-OAV-01:STAT4:Reset2") -} - -record(sseq, "S03SIM-DI-OAV-01:STAT4:Reset2") -{ - field(LNK1, "S03SIM-DI-OAV-01:STAT4:Eccentricity PP MS") - field(LNK2, "S03SIM-DI-OAV-01:STAT4:Orientation PP MS") - field(LNK3, "S03SIM-DI-OAV-01:STAT4:HistBelow PP MS") - field(LNK4, "S03SIM-DI-OAV-01:STAT4:HistAbove PP MS") - field(LNK5, "S03SIM-DI-OAV-01:STAT4:HistEntropy PP MS") -} - -#=================================================================# -# Template file: NDStats.template - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, NCHANS, Number of channels -# % macro, XSIZE, x size -# % macro, YSIZE, y size -# % macro, HIST_SIZE, hist size -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Timeout -# % macro, TS_PORT, TS port - -# This associates the template with an edm screen -# % gui, OAV.stats.stat5, edmtab, NDStats.edl, P=S03SIM-DI-OAV-01,R=:STAT5: - -# This associates a BOY screen with the template -# % gui, OAV.stats.stat5, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-DI-OAV-01, R=:STAT5:, DESC=Statistics -# % gui, OAV.stats.stat5, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-DI-OAV-01, R=:STAT5:, DESC=Statistics -# % gui, OAV.stats.stat5, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-DI-OAV-01, R=:STAT5:, DESC=Statistics - - -# % gui, OAV.stats.stat5, groupHeading, Info -# % gui, OAV.stats.stat5, readback, Port name, S03SIM-DI-OAV-01:STAT5:PortName_RBV -# % gui, OAV.stats.stat5, readback, Plugin type, S03SIM-DI-OAV-01:STAT5:PluginType_RBV -# Input -# % gui, OAV.stats.stat5, demandString, Input, S03SIM-DI-OAV-01:STAT5:NDArrayPort -# % gui, OAV.stats.stat5, readback, Input, S03SIM-DI-OAV-01:STAT5:NDArrayPort_RBV - -# % gui, OAV.stats.stat5, groupHeading, Callback -# % gui, OAV.stats.stat5, enum, Callbacks, S03SIM-DI-OAV-01:STAT5:EnableCallbacks -# % gui, OAV.stats.stat5, statusbits, Callbacks, S03SIM-DI-OAV-01:STAT5:EnableCallbacks_RBV -# % gui, OAV.stats.stat5, demand, Min Callback Time, S03SIM-DI-OAV-01:STAT5:MinCallbackTime -# % gui, OAV.stats.stat5, readback, Min Callback Time, S03SIM-DI-OAV-01:STAT5:MinCallbackTime_RBV -# % gui, OAV.stats.stat5, enum, Block Callbacks, S03SIM-DI-OAV-01:STAT5:BlockingCallbacks -# % gui, OAV.stats.stat5, statusbits, Block Callbacks, S03SIM-DI-OAV-01:STAT5:BlockingCallbacks_RBV - -# % gui, OAV.stats.stat5, groupHeading, Counters -# % gui, OAV.stats.stat5, demand, Array Counter, S03SIM-DI-OAV-01:STAT5:ArrayCounter -# % gui, OAV.stats.stat5, readback, Array Counter, S03SIM-DI-OAV-01:STAT5:ArrayCounter_RBV -# % gui, OAV.stats.stat5, readback, Array Rate (fps), S03SIM-DI-OAV-01:STAT5:ArrayRate_RBV -# % gui, OAV.stats.stat5, readback, Queue Use, S03SIM-DI-OAV-01:STAT5:QueueUse -# % gui, OAV.stats.stat5, readback, Queue Size, S03SIM-DI-OAV-01:STAT5:QueueSize -# % gui, OAV.stats.stat5, demand, Dropped Arrays, S03SIM-DI-OAV-01:STAT5:DroppedArrays -# % gui, OAV.stats.stat5, readback, Dropped Arrays, S03SIM-DI-OAV-01:STAT5:DroppedArrays_RBV - -# % gui, OAV.stats.stat5, groupHeading, Array Settings -# % gui, OAV.stats.stat5, readback, Num Dimensions, S03SIM-DI-OAV-01:STAT5:NDimensions_RBV -# % gui, OAV.stats.stat5, readback, Dim 0 Size, S03SIM-DI-OAV-01:STAT5:ArraySize0_RBV -# % gui, OAV.stats.stat5, readback, Dim 1 Size, S03SIM-DI-OAV-01:STAT5:ArraySize1_RBV -# % gui, OAV.stats.stat5, readback, Dim 2 Size, S03SIM-DI-OAV-01:STAT5:ArraySize2_RBV -# % gui, OAV.stats.stat5, readback, Input Data Type, S03SIM-DI-OAV-01:STAT5:DataType_RBV -# % gui, OAV.stats.stat5, readback, Colour Mode, S03SIM-DI-OAV-01:STAT5:ColorMode_RBV -# % gui, OAV.stats.stat5, readback, Bayer Pattern, S03SIM-DI-OAV-01:STAT5:BayerPattern_RBV -# % gui, OAV.stats.stat5, readback, Unique id, S03SIM-DI-OAV-01:STAT5:UniqueId_RBV -# % gui, OAV.stats.stat5, readback, Timestamp, S03SIM-DI-OAV-01:STAT5:TimeStamp_RBV - -# Output -# % gui, OAV.stats.stat5, groupHeading, Output -# % gui, OAV.stats.stat5, demand, Name, S03SIM-DI-OAV-01:STAT5:Name -# % gui, OAV.stats.stat5, enum, Out data type, S03SIM-DI-OAV-01:STAT5:DataTypeOut -# % gui, OAV.stats.stat5, readback, Out data type, S03SIM-DI-OAV-01:STAT5:DataTypeOut_RBV -# % gui, OAV.stats.stat5, demand, Attributes file, S03SIM-DI-OAV-01:STAT5:NDAttributesFile - -# Statistics -# % gui, OAV.stats.stat5, groupHeading, Statistics -# % gui, OAV.stats.stat5, enum, Compute Statistics, S03SIM-DI-OAV-01:STAT5:ComputeStatistics -# % gui, OAV.stats.stat5, statusbits, Compute Statistics, S03SIM-DI-OAV-01:STAT5:ComputeStatistics_RBV -# % gui, OAV.stats.stat5, demand, Background Width, S03SIM-DI-OAV-01:STAT5:BgdWidth -# % gui, OAV.stats.stat5, readback, Background Width, S03SIM-DI-OAV-01:STAT5:BgdWidth_RBV -# % gui, OAV.stats.stat5, readback, Minimum Value, S03SIM-DI-OAV-01:STAT5:MinValue_RBV -# % gui, OAV.stats.stat5, readback, Minimum X, S03SIM-DI-OAV-01:STAT5:MinX_RBV -# % gui, OAV.stats.stat5, readback, Minimum Y, S03SIM-DI-OAV-01:STAT5:MinY_RBV -# % gui, OAV.stats.stat5, readback, Maximum Value, S03SIM-DI-OAV-01:STAT5:MaxValue_RBV -# % gui, OAV.stats.stat5, readback, Maximum X, S03SIM-DI-OAV-01:STAT5:MaxX_RBV -# % gui, OAV.stats.stat5, readback, Maximum Y, S03SIM-DI-OAV-01:STAT5:MaxY_RBV -# % gui, OAV.stats.stat5, readback, Mean Value, S03SIM-DI-OAV-01:STAT5:MeanValue_RBV -# % gui, OAV.stats.stat5, readback, Total, S03SIM-DI-OAV-01:STAT5:Total_RBV -# % gui, OAV.stats.stat5, readback, Sigma, S03SIM-DI-OAV-01:STAT5:Sigma_RBV -# % gui, OAV.stats.stat5, readback, Net, S03SIM-DI-OAV-01:STAT5:Net_RBV -# Centroid -# % gui, OAV.stats.stat5, groupHeading, Centroid -# % gui, OAV.stats.stat5, enum, Compute Centroid, S03SIM-DI-OAV-01:STAT5:ComputeCentroid -# % gui, OAV.stats.stat5, statusbits, Compute Centroid, S03SIM-DI-OAV-01:STAT5:ComputeCentroid_RBV -# % gui, OAV.stats.stat5, demand, Threshold, S03SIM-DI-OAV-01:STAT5:CentroidThreshold -# % gui, OAV.stats.stat5, readback, Threshold, S03SIM-DI-OAV-01:STAT5:CentroidThreshold_RBV -# % gui, OAV.stats.stat5, readback, X, S03SIM-DI-OAV-01:STAT5:CentroidX_RBV -# % gui, OAV.stats.stat5, readback, Sigma X, S03SIM-DI-OAV-01:STAT5:SigmaX_RBV -# % gui, OAV.stats.stat5, readback, Y, S03SIM-DI-OAV-01:STAT5:CentroidY_RBV -# % gui, OAV.stats.stat5, readback, Sigma Y, S03SIM-DI-OAV-01:STAT5:SigmaY_RBV -# % gui, OAV.stats.stat5, readback, Sigma XY, S03SIM-DI-OAV-01:STAT5:SigmaXY_RBV -# Histogram -# % gui, OAV.stats.stat5, groupHeading, Histogram -# % gui, OAV.stats.stat5, enum, Compute Histogram, S03SIM-DI-OAV-01:STAT5:ComputeHistogram -# % gui, OAV.stats.stat5, statusbits, Compute Histogram, S03SIM-DI-OAV-01:STAT5:ComputeHistogram_RBV -# % gui, OAV.stats.stat5, demand, Histogram Size, S03SIM-DI-OAV-01:STAT5:HistSize -# % gui, OAV.stats.stat5, readback, Histogram Size, S03SIM-DI-OAV-01:STAT5:HistSize_RBV -# % gui, OAV.stats.stat5, demand, Histogram Min, S03SIM-DI-OAV-01:STAT5:HistMin -# % gui, OAV.stats.stat5, readback, Histogram Min, S03SIM-DI-OAV-01:STAT5:HistMin_RBV -# % gui, OAV.stats.stat5, demand, Histogram Max, S03SIM-DI-OAV-01:STAT5:HistMax -# % gui, OAV.stats.stat5, readback, Histogram Max, S03SIM-DI-OAV-01:STAT5:HistMax_RBV -# % gui, OAV.stats.stat5, readback, Histogram Entropy, S03SIM-DI-OAV-01:STAT5:HistEntropy_RBV -# Profiles -# % gui, OAV.stats.stat5, groupHeading, Profiles -# % gui, OAV.stats.stat5, enum, Compute Profiles, S03SIM-DI-OAV-01:STAT5:ComputeProfiles -# % gui, OAV.stats.stat5, statusbits, Compute Profiles, S03SIM-DI-OAV-01:STAT5:ComputeProfiles_RBV -# % gui, OAV.stats.stat5, demand, Cursor X, S03SIM-DI-OAV-01:STAT5:CursorX -# % gui, OAV.stats.stat5, readback, Cursor X, S03SIM-DI-OAV-01:STAT5:CursorX_RBV -# % gui, OAV.stats.stat5, demand, Cursor Y, S03SIM-DI-OAV-01:STAT5:CursorY -# % gui, OAV.stats.stat5, readback, Cursor Y, S03SIM-DI-OAV-01:STAT5:CursorY_RBV -# % gui, OAV.stats.stat5, readback, Size X, S03SIM-DI-OAV-01:STAT5:ProfileSizeX_RBV -# % gui, OAV.stats.stat5, readback, Size Y, S03SIM-DI-OAV-01:STAT5:ProfileSizeY_RBV -# Time series -# % gui, OAV.stats.stat5, groupHeading, Time Series -# % gui, OAV.stats.stat5, enum, Time Control, S03SIM-DI-OAV-01:STAT5:TS:TSAcquire -# % gui, OAV.stats.stat5, statusbits, Acquiring, S03SIM-DI-OAV-01:STAT5:TS:TSAcquiring -# % gui, OAV.stats.stat5, readback, Current Point, S03SIM-DI-OAV-01:STAT5:TS:TSCurrentPoint -# % gui, OAV.stats.stat5, demand, Number of Points, S03SIM-DI-OAV-01:STAT5:TS:TSNumPoints -# % gui, OAV.stats.stat5, enum, Update, S03SIM-DI-OAV-01:STAT5:TS:TSRead.SCAN -# Memory -# % gui, OAV.stats.stat5, groupHeading, Memory -# % gui, OAV.stats.stat5, readback, Max memory, S03SIM-DI-OAV-01:STAT5:PoolMaxMem -# % gui, OAV.stats.stat5, readback, Max buffers, S03SIM-DI-OAV-01:STAT5:PoolMaxBuffers -# % gui, OAV.stats.stat5, readback, Used memory, S03SIM-DI-OAV-01:STAT5:PoolUsedMem -# % gui, OAV.stats.stat5, readback, Allocated buffers, S03SIM-DI-OAV-01:STAT5:PoolAllocBuffers -# % gui, OAV.stats.stat5, readback, Free buffers, S03SIM-DI-OAV-01:STAT5:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT5:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat5,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT5:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat5,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT5:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat5,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT5:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat5,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT5:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat5,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT5:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat5,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT5:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat5,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT5:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat5,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:STAT5:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:STAT5:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT5:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT5:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:STAT5:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:STAT5:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT5:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:STAT5:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:STAT5:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:STAT5:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:STAT5:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:STAT5:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.stats.stat5,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.stats.stat5,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT5:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:STAT5:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:STAT5:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat5,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:STAT5:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:STAT5:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:STAT5:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:STAT5:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:STAT5:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:STAT5:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:STAT5:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT5:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:STAT5:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:STAT5:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT5:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT5:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:STAT5:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.stats.stat5,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:STAT5:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.stats.stat5,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:STAT5:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-DI-OAV-01:STAT5:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:PoolFreeBuffers") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:PoolUsedBuffers") -} - -record(calc, "S03SIM-DI-OAV-01:STAT5:PoolUsedBuffers") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT5:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:STAT5:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-DI-OAV-01:STAT5:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT5:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat5,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:STAT5:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.stats.stat5,0,1)NDARRAY_PORT") - field(VAL, "OAV.rois.roi1") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT5:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat5,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT5:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT5:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT5:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:STAT5:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT5:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT5:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:STAT5:MinCallbackTime PP") -} - -record(calc, "S03SIM-DI-OAV-01:STAT5:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT5:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:STAT5:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT5:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT5:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT5:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-DI-OAV-01:STAT5:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT5:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT5:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:STAT5:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:STAT5:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:STAT5:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:STAT5:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:STAT5:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:STAT5:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:STAT5:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:STAT5:QueueUse.HIHI") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:STAT5:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:STAT5:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:STAT5:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-DI-OAV-01:STAT5:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:STAT5:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-DI-OAV-01:STAT5:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT5:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT5:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:STAT5:SortSize") - field(OUT, "S03SIM-DI-OAV-01:STAT5:SortFree.LOW") -} - -record(longout, "S03SIM-DI-OAV-01:STAT5:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT5:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:STAT5:AsynIO") -{ - field(PORT, "OAV.stats.stat5") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records contain the basic statistics # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT5:ComputeStatistics") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)COMPUTE_STATISTICS") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT5:ComputeStatistics_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)COMPUTE_STATISTICS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT5:BgdWidth") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)BGD_WIDTH") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:BgdWidth_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)BGD_WIDTH") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:MinValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)MIN_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:MinValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)MIN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:MaxValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)MAX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:MaxValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)MAX_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:MeanValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)MEAN_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:MeanValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)MEAN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:SigmaValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)SIGMA_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:Sigma_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)SIGMA_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:Total") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)TOTAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:Total_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:Net") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)NET") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:Net_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)NET") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:MinX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)MIN_X") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:MinX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)MIN_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:MinY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)MIN_Y") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:MinY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)MIN_Y") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:MaxX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)MAX_X") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:MaxX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)MAX_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:MaxY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)MAX_Y") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:MaxY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)MAX_Y") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether centroid statistics are computed # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT5:ComputeCentroid") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)COMPUTE_CENTROID") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT5:ComputeCentroid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)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, "S03SIM-DI-OAV-01:STAT5:CentroidThreshold") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)CENTROID_THRESHOLD") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:CentroidThreshold_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)CENTROID_THRESHOLD") - field(VAL, "0") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:CentroidTotal") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)CENTROID_TOTAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:CentroidTotal_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)CENTROID_TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:CentroidX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)CENTROIDX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:CentroidX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)CENTROIDX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:CentroidY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)CENTROIDY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:CentroidY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)CENTROIDY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:SigmaX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)SIGMAX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:SigmaX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)SIGMAX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:SigmaY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)SIGMAY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:SigmaY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)SIGMAY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:SigmaXY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)SIGMAXY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:SigmaXY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)SIGMAXY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:SkewX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)SKEWX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:SkewX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)SKEWX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:SkewY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)SKEWY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:SkewY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)SKEWY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:KurtosisX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)KURTOSISX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:KurtosisX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)KURTOSISX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:KurtosisY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)KURTOSISY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:KurtosisY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)KURTOSISY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:Eccentricity") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)ECCENTRICITY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:Eccentricity_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)ECCENTRICITY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:Orientation") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)ORIENTATION_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:Orientation_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)ORIENTATION_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control time series # -################################################################### -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSMinValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,0,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSMinX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,1,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSMinY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,2,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSMaxValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,3,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSMaxX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,4,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSMaxY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,5,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSMeanValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,6,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSSigma") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,7,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,8,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSNet") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,9,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSCentroidTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,10,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSCentroidX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,11,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSCentroidY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,12,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSSigmaX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,13,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSSigmaY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,14,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSSigmaXY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,15,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSSkewX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,16,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSSkewY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,17,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSKurtosisX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,18,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSKurtosisY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,19,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSEccentricity") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,20,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSOrientation") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,21,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:TSTimestamp") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5_TS,22,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control profiles # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT5:ComputeProfiles") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)COMPUTE_PROFILES") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT5:ComputeProfiles_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)COMPUTE_PROFILES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ProfileSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)PROFILE_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:ProfileSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)PROFILE_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT5:CursorX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)CURSOR_X") - field(VAL, "256") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:CursorX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)CURSOR_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT5:CursorY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)CURSOR_Y") - field(VAL, "256") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:CursorY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)CURSOR_Y") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:CursorVal") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)CURSOR_VAL") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:ProfileAverageX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5,0,1)PROFILE_AVERAGE_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:ProfileAverageY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5,0,1)PROFILE_AVERAGE_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:ProfileThresholdX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5,0,1)PROFILE_THRESHOLD_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:ProfileThresholdY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5,0,1)PROFILE_THRESHOLD_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:ProfileCentroidX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5,0,1)PROFILE_CENTROID_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:ProfileCentroidY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5,0,1)PROFILE_CENTROID_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:ProfileCursorX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5,0,1)PROFILE_CURSOR_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:ProfileCursorY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5,0,1)PROFILE_CURSOR_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These are used to define the histogram # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT5:ComputeHistogram") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)COMPUTE_HISTOGRAM") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT5:ComputeHistogram_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)COMPUTE_HISTOGRAM") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT5:HistSize") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)HIST_SIZE") - field(VAL, "256") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:HistSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)HIST_SIZE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:HistMin") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)HIST_MIN") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:HistMin_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)HIST_MIN") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:HistMax") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)HIST_MAX") - field(VAL, "255") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:HistMax_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)HIST_MAX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT5:HistBelow") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)HIST_BELOW") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:HistBelow_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)HIST_BELOW") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT5:HistAbove") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat5,0,1)HIST_ABOVE") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:HistAbove_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat5,0,1)HIST_ABOVE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT5:HistEntropy") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat5,0,1)HIST_ENTROPY") -} - -record(ai, "S03SIM-DI-OAV-01:STAT5:HistEntropy_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat5,0,1)HIST_ENTROPY") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:Histogram_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5,0,1)HIST_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT5:HistogramX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat5,0,1)HIST_X_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - 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, "S03SIM-DI-OAV-01:STAT5:MaxSizeX") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:ProfileSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:STAT5:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:STAT5:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:STAT5:CursorX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:STAT5:MaxSizeY") -{ - field(INP, "S03SIM-DI-OAV-01:STAT5:ProfileSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:STAT5:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:STAT5:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:STAT5:CursorY.HOPR NPP") -} - -################################################################### -# These records reset the statistics # -################################################################### -record(sseq, "S03SIM-DI-OAV-01:STAT5:Reset") -{ - field(LNK1, "S03SIM-DI-OAV-01:STAT5:MinValue PP MS") - field(LNK2, "S03SIM-DI-OAV-01:STAT5:MaxValue PP MS") - field(LNK3, "S03SIM-DI-OAV-01:STAT5:MeanValue PP MS") - field(LNK4, "S03SIM-DI-OAV-01:STAT5:SigmaValue PP MS") - field(LNK5, "S03SIM-DI-OAV-01:STAT5:Total PP MS") - field(LNK6, "S03SIM-DI-OAV-01:STAT5:Net PP MS") - field(LNK7, "S03SIM-DI-OAV-01:STAT5:MinX PP MS") - field(LNK8, "S03SIM-DI-OAV-01:STAT5:MinY PP MS") - field(LNK9, "S03SIM-DI-OAV-01:STAT5:MaxX PP MS") - field(LNKA, "S03SIM-DI-OAV-01:STAT5:MaxY PP MS") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Reset1") -} - -record(sseq, "S03SIM-DI-OAV-01:STAT5:Reset1") -{ - field(LNK1, "S03SIM-DI-OAV-01:STAT5:CentroidX PP MS") - field(LNK2, "S03SIM-DI-OAV-01:STAT5:CentroidY PP MS") - field(LNK3, "S03SIM-DI-OAV-01:STAT5:SigmaX PP MS") - field(LNK4, "S03SIM-DI-OAV-01:STAT5:SigmaY PP MS") - field(LNK5, "S03SIM-DI-OAV-01:STAT5:SigmaXY PP MS") - field(LNK6, "S03SIM-DI-OAV-01:STAT5:CentroidTotal PP MS") - field(LNK7, "S03SIM-DI-OAV-01:STAT5:SkewX PP MS") - field(LNK8, "S03SIM-DI-OAV-01:STAT5:SkewY PP MS") - field(LNK9, "S03SIM-DI-OAV-01:STAT5:KurtosisX PP MS") - field(LNKA, "S03SIM-DI-OAV-01:STAT5:KurtosisY PP MS") - field(FLNK, "S03SIM-DI-OAV-01:STAT5:Reset2") -} - -record(sseq, "S03SIM-DI-OAV-01:STAT5:Reset2") -{ - field(LNK1, "S03SIM-DI-OAV-01:STAT5:Eccentricity PP MS") - field(LNK2, "S03SIM-DI-OAV-01:STAT5:Orientation PP MS") - field(LNK3, "S03SIM-DI-OAV-01:STAT5:HistBelow PP MS") - field(LNK4, "S03SIM-DI-OAV-01:STAT5:HistAbove PP MS") - field(LNK5, "S03SIM-DI-OAV-01:STAT5:HistEntropy PP MS") -} - -#=================================================================# -# Template file: NDStats.template - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, NCHANS, Number of channels -# % macro, XSIZE, x size -# % macro, YSIZE, y size -# % macro, HIST_SIZE, hist size -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Timeout -# % macro, TS_PORT, TS port - -# This associates the template with an edm screen -# % gui, OAV.stats.stat6, edmtab, NDStats.edl, P=S03SIM-DI-OAV-01,R=:STAT6: - -# This associates a BOY screen with the template -# % gui, OAV.stats.stat6, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-DI-OAV-01, R=:STAT6:, DESC=Statistics -# % gui, OAV.stats.stat6, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-DI-OAV-01, R=:STAT6:, DESC=Statistics -# % gui, OAV.stats.stat6, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-DI-OAV-01, R=:STAT6:, DESC=Statistics - - -# % gui, OAV.stats.stat6, groupHeading, Info -# % gui, OAV.stats.stat6, readback, Port name, S03SIM-DI-OAV-01:STAT6:PortName_RBV -# % gui, OAV.stats.stat6, readback, Plugin type, S03SIM-DI-OAV-01:STAT6:PluginType_RBV -# Input -# % gui, OAV.stats.stat6, demandString, Input, S03SIM-DI-OAV-01:STAT6:NDArrayPort -# % gui, OAV.stats.stat6, readback, Input, S03SIM-DI-OAV-01:STAT6:NDArrayPort_RBV - -# % gui, OAV.stats.stat6, groupHeading, Callback -# % gui, OAV.stats.stat6, enum, Callbacks, S03SIM-DI-OAV-01:STAT6:EnableCallbacks -# % gui, OAV.stats.stat6, statusbits, Callbacks, S03SIM-DI-OAV-01:STAT6:EnableCallbacks_RBV -# % gui, OAV.stats.stat6, demand, Min Callback Time, S03SIM-DI-OAV-01:STAT6:MinCallbackTime -# % gui, OAV.stats.stat6, readback, Min Callback Time, S03SIM-DI-OAV-01:STAT6:MinCallbackTime_RBV -# % gui, OAV.stats.stat6, enum, Block Callbacks, S03SIM-DI-OAV-01:STAT6:BlockingCallbacks -# % gui, OAV.stats.stat6, statusbits, Block Callbacks, S03SIM-DI-OAV-01:STAT6:BlockingCallbacks_RBV - -# % gui, OAV.stats.stat6, groupHeading, Counters -# % gui, OAV.stats.stat6, demand, Array Counter, S03SIM-DI-OAV-01:STAT6:ArrayCounter -# % gui, OAV.stats.stat6, readback, Array Counter, S03SIM-DI-OAV-01:STAT6:ArrayCounter_RBV -# % gui, OAV.stats.stat6, readback, Array Rate (fps), S03SIM-DI-OAV-01:STAT6:ArrayRate_RBV -# % gui, OAV.stats.stat6, readback, Queue Use, S03SIM-DI-OAV-01:STAT6:QueueUse -# % gui, OAV.stats.stat6, readback, Queue Size, S03SIM-DI-OAV-01:STAT6:QueueSize -# % gui, OAV.stats.stat6, demand, Dropped Arrays, S03SIM-DI-OAV-01:STAT6:DroppedArrays -# % gui, OAV.stats.stat6, readback, Dropped Arrays, S03SIM-DI-OAV-01:STAT6:DroppedArrays_RBV - -# % gui, OAV.stats.stat6, groupHeading, Array Settings -# % gui, OAV.stats.stat6, readback, Num Dimensions, S03SIM-DI-OAV-01:STAT6:NDimensions_RBV -# % gui, OAV.stats.stat6, readback, Dim 0 Size, S03SIM-DI-OAV-01:STAT6:ArraySize0_RBV -# % gui, OAV.stats.stat6, readback, Dim 1 Size, S03SIM-DI-OAV-01:STAT6:ArraySize1_RBV -# % gui, OAV.stats.stat6, readback, Dim 2 Size, S03SIM-DI-OAV-01:STAT6:ArraySize2_RBV -# % gui, OAV.stats.stat6, readback, Input Data Type, S03SIM-DI-OAV-01:STAT6:DataType_RBV -# % gui, OAV.stats.stat6, readback, Colour Mode, S03SIM-DI-OAV-01:STAT6:ColorMode_RBV -# % gui, OAV.stats.stat6, readback, Bayer Pattern, S03SIM-DI-OAV-01:STAT6:BayerPattern_RBV -# % gui, OAV.stats.stat6, readback, Unique id, S03SIM-DI-OAV-01:STAT6:UniqueId_RBV -# % gui, OAV.stats.stat6, readback, Timestamp, S03SIM-DI-OAV-01:STAT6:TimeStamp_RBV - -# Output -# % gui, OAV.stats.stat6, groupHeading, Output -# % gui, OAV.stats.stat6, demand, Name, S03SIM-DI-OAV-01:STAT6:Name -# % gui, OAV.stats.stat6, enum, Out data type, S03SIM-DI-OAV-01:STAT6:DataTypeOut -# % gui, OAV.stats.stat6, readback, Out data type, S03SIM-DI-OAV-01:STAT6:DataTypeOut_RBV -# % gui, OAV.stats.stat6, demand, Attributes file, S03SIM-DI-OAV-01:STAT6:NDAttributesFile - -# Statistics -# % gui, OAV.stats.stat6, groupHeading, Statistics -# % gui, OAV.stats.stat6, enum, Compute Statistics, S03SIM-DI-OAV-01:STAT6:ComputeStatistics -# % gui, OAV.stats.stat6, statusbits, Compute Statistics, S03SIM-DI-OAV-01:STAT6:ComputeStatistics_RBV -# % gui, OAV.stats.stat6, demand, Background Width, S03SIM-DI-OAV-01:STAT6:BgdWidth -# % gui, OAV.stats.stat6, readback, Background Width, S03SIM-DI-OAV-01:STAT6:BgdWidth_RBV -# % gui, OAV.stats.stat6, readback, Minimum Value, S03SIM-DI-OAV-01:STAT6:MinValue_RBV -# % gui, OAV.stats.stat6, readback, Minimum X, S03SIM-DI-OAV-01:STAT6:MinX_RBV -# % gui, OAV.stats.stat6, readback, Minimum Y, S03SIM-DI-OAV-01:STAT6:MinY_RBV -# % gui, OAV.stats.stat6, readback, Maximum Value, S03SIM-DI-OAV-01:STAT6:MaxValue_RBV -# % gui, OAV.stats.stat6, readback, Maximum X, S03SIM-DI-OAV-01:STAT6:MaxX_RBV -# % gui, OAV.stats.stat6, readback, Maximum Y, S03SIM-DI-OAV-01:STAT6:MaxY_RBV -# % gui, OAV.stats.stat6, readback, Mean Value, S03SIM-DI-OAV-01:STAT6:MeanValue_RBV -# % gui, OAV.stats.stat6, readback, Total, S03SIM-DI-OAV-01:STAT6:Total_RBV -# % gui, OAV.stats.stat6, readback, Sigma, S03SIM-DI-OAV-01:STAT6:Sigma_RBV -# % gui, OAV.stats.stat6, readback, Net, S03SIM-DI-OAV-01:STAT6:Net_RBV -# Centroid -# % gui, OAV.stats.stat6, groupHeading, Centroid -# % gui, OAV.stats.stat6, enum, Compute Centroid, S03SIM-DI-OAV-01:STAT6:ComputeCentroid -# % gui, OAV.stats.stat6, statusbits, Compute Centroid, S03SIM-DI-OAV-01:STAT6:ComputeCentroid_RBV -# % gui, OAV.stats.stat6, demand, Threshold, S03SIM-DI-OAV-01:STAT6:CentroidThreshold -# % gui, OAV.stats.stat6, readback, Threshold, S03SIM-DI-OAV-01:STAT6:CentroidThreshold_RBV -# % gui, OAV.stats.stat6, readback, X, S03SIM-DI-OAV-01:STAT6:CentroidX_RBV -# % gui, OAV.stats.stat6, readback, Sigma X, S03SIM-DI-OAV-01:STAT6:SigmaX_RBV -# % gui, OAV.stats.stat6, readback, Y, S03SIM-DI-OAV-01:STAT6:CentroidY_RBV -# % gui, OAV.stats.stat6, readback, Sigma Y, S03SIM-DI-OAV-01:STAT6:SigmaY_RBV -# % gui, OAV.stats.stat6, readback, Sigma XY, S03SIM-DI-OAV-01:STAT6:SigmaXY_RBV -# Histogram -# % gui, OAV.stats.stat6, groupHeading, Histogram -# % gui, OAV.stats.stat6, enum, Compute Histogram, S03SIM-DI-OAV-01:STAT6:ComputeHistogram -# % gui, OAV.stats.stat6, statusbits, Compute Histogram, S03SIM-DI-OAV-01:STAT6:ComputeHistogram_RBV -# % gui, OAV.stats.stat6, demand, Histogram Size, S03SIM-DI-OAV-01:STAT6:HistSize -# % gui, OAV.stats.stat6, readback, Histogram Size, S03SIM-DI-OAV-01:STAT6:HistSize_RBV -# % gui, OAV.stats.stat6, demand, Histogram Min, S03SIM-DI-OAV-01:STAT6:HistMin -# % gui, OAV.stats.stat6, readback, Histogram Min, S03SIM-DI-OAV-01:STAT6:HistMin_RBV -# % gui, OAV.stats.stat6, demand, Histogram Max, S03SIM-DI-OAV-01:STAT6:HistMax -# % gui, OAV.stats.stat6, readback, Histogram Max, S03SIM-DI-OAV-01:STAT6:HistMax_RBV -# % gui, OAV.stats.stat6, readback, Histogram Entropy, S03SIM-DI-OAV-01:STAT6:HistEntropy_RBV -# Profiles -# % gui, OAV.stats.stat6, groupHeading, Profiles -# % gui, OAV.stats.stat6, enum, Compute Profiles, S03SIM-DI-OAV-01:STAT6:ComputeProfiles -# % gui, OAV.stats.stat6, statusbits, Compute Profiles, S03SIM-DI-OAV-01:STAT6:ComputeProfiles_RBV -# % gui, OAV.stats.stat6, demand, Cursor X, S03SIM-DI-OAV-01:STAT6:CursorX -# % gui, OAV.stats.stat6, readback, Cursor X, S03SIM-DI-OAV-01:STAT6:CursorX_RBV -# % gui, OAV.stats.stat6, demand, Cursor Y, S03SIM-DI-OAV-01:STAT6:CursorY -# % gui, OAV.stats.stat6, readback, Cursor Y, S03SIM-DI-OAV-01:STAT6:CursorY_RBV -# % gui, OAV.stats.stat6, readback, Size X, S03SIM-DI-OAV-01:STAT6:ProfileSizeX_RBV -# % gui, OAV.stats.stat6, readback, Size Y, S03SIM-DI-OAV-01:STAT6:ProfileSizeY_RBV -# Time series -# % gui, OAV.stats.stat6, groupHeading, Time Series -# % gui, OAV.stats.stat6, enum, Time Control, S03SIM-DI-OAV-01:STAT6:TS:TSAcquire -# % gui, OAV.stats.stat6, statusbits, Acquiring, S03SIM-DI-OAV-01:STAT6:TS:TSAcquiring -# % gui, OAV.stats.stat6, readback, Current Point, S03SIM-DI-OAV-01:STAT6:TS:TSCurrentPoint -# % gui, OAV.stats.stat6, demand, Number of Points, S03SIM-DI-OAV-01:STAT6:TS:TSNumPoints -# % gui, OAV.stats.stat6, enum, Update, S03SIM-DI-OAV-01:STAT6:TS:TSRead.SCAN -# Memory -# % gui, OAV.stats.stat6, groupHeading, Memory -# % gui, OAV.stats.stat6, readback, Max memory, S03SIM-DI-OAV-01:STAT6:PoolMaxMem -# % gui, OAV.stats.stat6, readback, Max buffers, S03SIM-DI-OAV-01:STAT6:PoolMaxBuffers -# % gui, OAV.stats.stat6, readback, Used memory, S03SIM-DI-OAV-01:STAT6:PoolUsedMem -# % gui, OAV.stats.stat6, readback, Allocated buffers, S03SIM-DI-OAV-01:STAT6:PoolAllocBuffers -# % gui, OAV.stats.stat6, readback, Free buffers, S03SIM-DI-OAV-01:STAT6:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT6:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat6,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT6:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat6,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT6:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat6,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT6:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat6,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT6:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat6,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT6:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat6,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT6:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat6,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT6:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat6,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:STAT6:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:STAT6:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT6:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT6:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:STAT6:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:STAT6:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT6:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:STAT6:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:STAT6:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:STAT6:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:STAT6:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:STAT6:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.stats.stat6,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.stats.stat6,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:STAT6:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:STAT6:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:STAT6:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat6,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:STAT6:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:STAT6:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:STAT6:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:STAT6:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:STAT6:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:STAT6:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:STAT6:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT6:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:STAT6:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:STAT6:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT6:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT6:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:STAT6:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.stats.stat6,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:STAT6:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.stats.stat6,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:STAT6:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-DI-OAV-01:STAT6:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:PoolFreeBuffers") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:PoolUsedBuffers") -} - -record(calc, "S03SIM-DI-OAV-01:STAT6:PoolUsedBuffers") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT6:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:STAT6:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-DI-OAV-01:STAT6:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:STAT6:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat6,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:STAT6:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.stats.stat6,0,1)NDARRAY_PORT") - field(VAL, "OAV.rois.roi1") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:STAT6:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.stats.stat6,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT6:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT6:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT6:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:STAT6:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT6:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT6:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:STAT6:MinCallbackTime PP") -} - -record(calc, "S03SIM-DI-OAV-01:STAT6:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:STAT6:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:STAT6:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT6:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT6:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT6:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-DI-OAV-01:STAT6:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT6:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT6:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:STAT6:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:STAT6:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:STAT6:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:STAT6:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:STAT6:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:STAT6:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:STAT6:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:STAT6:QueueUse.HIHI") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:STAT6:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:STAT6:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:STAT6:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-DI-OAV-01:STAT6:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:STAT6:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-DI-OAV-01:STAT6:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT6:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:STAT6:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:STAT6:SortSize") - field(OUT, "S03SIM-DI-OAV-01:STAT6:SortFree.LOW") -} - -record(longout, "S03SIM-DI-OAV-01:STAT6:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT6:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:STAT6:AsynIO") -{ - field(PORT, "OAV.stats.stat6") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records contain the basic statistics # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT6:ComputeStatistics") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)COMPUTE_STATISTICS") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT6:ComputeStatistics_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)COMPUTE_STATISTICS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT6:BgdWidth") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)BGD_WIDTH") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:BgdWidth_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)BGD_WIDTH") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:MinValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)MIN_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:MinValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)MIN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:MaxValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)MAX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:MaxValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)MAX_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:MeanValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)MEAN_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:MeanValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)MEAN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:SigmaValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)SIGMA_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:Sigma_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)SIGMA_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:Total") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)TOTAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:Total_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:Net") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)NET") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:Net_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)NET") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:MinX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)MIN_X") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:MinX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)MIN_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:MinY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)MIN_Y") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:MinY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)MIN_Y") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:MaxX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)MAX_X") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:MaxX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)MAX_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:MaxY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)MAX_Y") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:MaxY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)MAX_Y") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether centroid statistics are computed # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT6:ComputeCentroid") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)COMPUTE_CENTROID") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT6:ComputeCentroid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)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, "S03SIM-DI-OAV-01:STAT6:CentroidThreshold") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)CENTROID_THRESHOLD") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:CentroidThreshold_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)CENTROID_THRESHOLD") - field(VAL, "0") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:CentroidTotal") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)CENTROID_TOTAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:CentroidTotal_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)CENTROID_TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:CentroidX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)CENTROIDX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:CentroidX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)CENTROIDX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:CentroidY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)CENTROIDY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:CentroidY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)CENTROIDY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:SigmaX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)SIGMAX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:SigmaX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)SIGMAX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:SigmaY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)SIGMAY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:SigmaY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)SIGMAY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:SigmaXY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)SIGMAXY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:SigmaXY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)SIGMAXY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:SkewX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)SKEWX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:SkewX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)SKEWX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:SkewY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)SKEWY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:SkewY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)SKEWY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:KurtosisX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)KURTOSISX_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:KurtosisX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)KURTOSISX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:KurtosisY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)KURTOSISY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:KurtosisY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)KURTOSISY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:Eccentricity") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)ECCENTRICITY_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:Eccentricity_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)ECCENTRICITY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:Orientation") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)ORIENTATION_VALUE") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:Orientation_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)ORIENTATION_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control time series # -################################################################### -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSMinValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,0,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSMinX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,1,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSMinY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,2,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSMaxValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,3,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSMaxX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,4,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSMaxY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,5,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSMeanValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,6,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSSigma") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,7,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,8,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSNet") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,9,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSCentroidTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,10,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSCentroidX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,11,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSCentroidY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,12,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSSigmaX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,13,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSSigmaY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,14,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSSigmaXY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,15,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSSkewX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,16,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSSkewY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,17,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSKurtosisX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,18,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSKurtosisY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,19,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSEccentricity") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,20,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSOrientation") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,21,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:TSTimestamp") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6_TS,22,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control profiles # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT6:ComputeProfiles") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)COMPUTE_PROFILES") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT6:ComputeProfiles_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)COMPUTE_PROFILES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ProfileSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)PROFILE_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:ProfileSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)PROFILE_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT6:CursorX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)CURSOR_X") - field(VAL, "256") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:CursorX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)CURSOR_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT6:CursorY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)CURSOR_Y") - field(VAL, "256") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:CursorY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)CURSOR_Y") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:CursorVal") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)CURSOR_VAL") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:ProfileAverageX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6,0,1)PROFILE_AVERAGE_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:ProfileAverageY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6,0,1)PROFILE_AVERAGE_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:ProfileThresholdX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6,0,1)PROFILE_THRESHOLD_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:ProfileThresholdY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6,0,1)PROFILE_THRESHOLD_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:ProfileCentroidX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6,0,1)PROFILE_CENTROID_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:ProfileCentroidY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6,0,1)PROFILE_CENTROID_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:ProfileCursorX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6,0,1)PROFILE_CURSOR_X") - field(FTVL, "DOUBLE") - field(NELM, "1936") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:ProfileCursorY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6,0,1)PROFILE_CURSOR_Y") - field(FTVL, "DOUBLE") - field(NELM, "1216") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These are used to define the histogram # -################################################################### -record(bo, "S03SIM-DI-OAV-01:STAT6:ComputeHistogram") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)COMPUTE_HISTOGRAM") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:STAT6:ComputeHistogram_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)COMPUTE_HISTOGRAM") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT6:HistSize") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)HIST_SIZE") - field(VAL, "256") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:HistSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)HIST_SIZE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:HistMin") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)HIST_MIN") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:HistMin_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)HIST_MIN") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:HistMax") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)HIST_MAX") - field(VAL, "255") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:HistMax_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)HIST_MAX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT6:HistBelow") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)HIST_BELOW") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:HistBelow_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)HIST_BELOW") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:STAT6:HistAbove") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.stats.stat6,0,1)HIST_ABOVE") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:HistAbove_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.stats.stat6,0,1)HIST_ABOVE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:STAT6:HistEntropy") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.stats.stat6,0,1)HIST_ENTROPY") -} - -record(ai, "S03SIM-DI-OAV-01:STAT6:HistEntropy_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.stats.stat6,0,1)HIST_ENTROPY") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:Histogram_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6,0,1)HIST_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:STAT6:HistogramX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(OAV.stats.stat6,0,1)HIST_X_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - 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, "S03SIM-DI-OAV-01:STAT6:MaxSizeX") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:ProfileSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:STAT6:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:STAT6:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:STAT6:CursorX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:STAT6:MaxSizeY") -{ - field(INP, "S03SIM-DI-OAV-01:STAT6:ProfileSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:STAT6:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:STAT6:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:STAT6:CursorY.HOPR NPP") -} - -################################################################### -# These records reset the statistics # -################################################################### -record(sseq, "S03SIM-DI-OAV-01:STAT6:Reset") -{ - field(LNK1, "S03SIM-DI-OAV-01:STAT6:MinValue PP MS") - field(LNK2, "S03SIM-DI-OAV-01:STAT6:MaxValue PP MS") - field(LNK3, "S03SIM-DI-OAV-01:STAT6:MeanValue PP MS") - field(LNK4, "S03SIM-DI-OAV-01:STAT6:SigmaValue PP MS") - field(LNK5, "S03SIM-DI-OAV-01:STAT6:Total PP MS") - field(LNK6, "S03SIM-DI-OAV-01:STAT6:Net PP MS") - field(LNK7, "S03SIM-DI-OAV-01:STAT6:MinX PP MS") - field(LNK8, "S03SIM-DI-OAV-01:STAT6:MinY PP MS") - field(LNK9, "S03SIM-DI-OAV-01:STAT6:MaxX PP MS") - field(LNKA, "S03SIM-DI-OAV-01:STAT6:MaxY PP MS") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Reset1") -} - -record(sseq, "S03SIM-DI-OAV-01:STAT6:Reset1") -{ - field(LNK1, "S03SIM-DI-OAV-01:STAT6:CentroidX PP MS") - field(LNK2, "S03SIM-DI-OAV-01:STAT6:CentroidY PP MS") - field(LNK3, "S03SIM-DI-OAV-01:STAT6:SigmaX PP MS") - field(LNK4, "S03SIM-DI-OAV-01:STAT6:SigmaY PP MS") - field(LNK5, "S03SIM-DI-OAV-01:STAT6:SigmaXY PP MS") - field(LNK6, "S03SIM-DI-OAV-01:STAT6:CentroidTotal PP MS") - field(LNK7, "S03SIM-DI-OAV-01:STAT6:SkewX PP MS") - field(LNK8, "S03SIM-DI-OAV-01:STAT6:SkewY PP MS") - field(LNK9, "S03SIM-DI-OAV-01:STAT6:KurtosisX PP MS") - field(LNKA, "S03SIM-DI-OAV-01:STAT6:KurtosisY PP MS") - field(FLNK, "S03SIM-DI-OAV-01:STAT6:Reset2") -} - -record(sseq, "S03SIM-DI-OAV-01:STAT6:Reset2") -{ - field(LNK1, "S03SIM-DI-OAV-01:STAT6:Eccentricity PP MS") - field(LNK2, "S03SIM-DI-OAV-01:STAT6:Orientation PP MS") - field(LNK3, "S03SIM-DI-OAV-01:STAT6:HistBelow PP MS") - field(LNK4, "S03SIM-DI-OAV-01:STAT6:HistAbove PP MS") - field(LNK5, "S03SIM-DI-OAV-01:STAT6:HistEntropy PP MS") -} - -#=================================================================# -# Template file: NDStats.template - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, NCHANS, Number of channels -# % macro, XSIZE, x size -# % macro, YSIZE, y size -# % macro, HIST_SIZE, hist size -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Timeout -# % macro, TS_PORT, TS port - -# This associates the template with an edm screen -# % gui, FSCN1.stat, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-01,R=:STAT: - -# This associates a BOY screen with the template -# % gui, FSCN1.stat, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-01, R=:STAT:, DESC=Statistics -# % gui, FSCN1.stat, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:STAT:, DESC=Statistics -# % gui, FSCN1.stat, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-01, R=:STAT:, DESC=Statistics - - -# % gui, FSCN1.stat, groupHeading, Info -# % gui, FSCN1.stat, readback, Port name, S03SIM-EA-FSCN-01:STAT:PortName_RBV -# % gui, FSCN1.stat, readback, Plugin type, S03SIM-EA-FSCN-01:STAT:PluginType_RBV -# Input -# % gui, FSCN1.stat, demandString, Input, S03SIM-EA-FSCN-01:STAT:NDArrayPort -# % gui, FSCN1.stat, readback, Input, S03SIM-EA-FSCN-01:STAT:NDArrayPort_RBV - -# % gui, FSCN1.stat, groupHeading, Callback -# % gui, FSCN1.stat, enum, Callbacks, S03SIM-EA-FSCN-01:STAT:EnableCallbacks -# % gui, FSCN1.stat, statusbits, Callbacks, S03SIM-EA-FSCN-01:STAT:EnableCallbacks_RBV -# % gui, FSCN1.stat, demand, Min Callback Time, S03SIM-EA-FSCN-01:STAT:MinCallbackTime -# % gui, FSCN1.stat, readback, Min Callback Time, S03SIM-EA-FSCN-01:STAT:MinCallbackTime_RBV -# % gui, FSCN1.stat, enum, Block Callbacks, S03SIM-EA-FSCN-01:STAT:BlockingCallbacks -# % gui, FSCN1.stat, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:STAT:BlockingCallbacks_RBV - -# % gui, FSCN1.stat, groupHeading, Counters -# % gui, FSCN1.stat, demand, Array Counter, S03SIM-EA-FSCN-01:STAT:ArrayCounter -# % gui, FSCN1.stat, readback, Array Counter, S03SIM-EA-FSCN-01:STAT:ArrayCounter_RBV -# % gui, FSCN1.stat, readback, Array Rate (fps), S03SIM-EA-FSCN-01:STAT:ArrayRate_RBV -# % gui, FSCN1.stat, readback, Queue Use, S03SIM-EA-FSCN-01:STAT:QueueUse -# % gui, FSCN1.stat, readback, Queue Size, S03SIM-EA-FSCN-01:STAT:QueueSize -# % gui, FSCN1.stat, demand, Dropped Arrays, S03SIM-EA-FSCN-01:STAT:DroppedArrays -# % gui, FSCN1.stat, readback, Dropped Arrays, S03SIM-EA-FSCN-01:STAT:DroppedArrays_RBV - -# % gui, FSCN1.stat, groupHeading, Array Settings -# % gui, FSCN1.stat, readback, Num Dimensions, S03SIM-EA-FSCN-01:STAT:NDimensions_RBV -# % gui, FSCN1.stat, readback, Dim 0 Size, S03SIM-EA-FSCN-01:STAT:ArraySize0_RBV -# % gui, FSCN1.stat, readback, Dim 1 Size, S03SIM-EA-FSCN-01:STAT:ArraySize1_RBV -# % gui, FSCN1.stat, readback, Dim 2 Size, S03SIM-EA-FSCN-01:STAT:ArraySize2_RBV -# % gui, FSCN1.stat, readback, Input Data Type, S03SIM-EA-FSCN-01:STAT:DataType_RBV -# % gui, FSCN1.stat, readback, Colour Mode, S03SIM-EA-FSCN-01:STAT:ColorMode_RBV -# % gui, FSCN1.stat, readback, Bayer Pattern, S03SIM-EA-FSCN-01:STAT:BayerPattern_RBV -# % gui, FSCN1.stat, readback, Unique id, S03SIM-EA-FSCN-01:STAT:UniqueId_RBV -# % gui, FSCN1.stat, readback, Timestamp, S03SIM-EA-FSCN-01:STAT:TimeStamp_RBV - -# Output -# % gui, FSCN1.stat, groupHeading, Output -# % gui, FSCN1.stat, demand, Name, S03SIM-EA-FSCN-01:STAT:Name -# % gui, FSCN1.stat, enum, Out data type, S03SIM-EA-FSCN-01:STAT:DataTypeOut -# % gui, FSCN1.stat, readback, Out data type, S03SIM-EA-FSCN-01:STAT:DataTypeOut_RBV -# % gui, FSCN1.stat, demand, Attributes file, S03SIM-EA-FSCN-01:STAT:NDAttributesFile - -# Statistics -# % gui, FSCN1.stat, groupHeading, Statistics -# % gui, FSCN1.stat, enum, Compute Statistics, S03SIM-EA-FSCN-01:STAT:ComputeStatistics -# % gui, FSCN1.stat, statusbits, Compute Statistics, S03SIM-EA-FSCN-01:STAT:ComputeStatistics_RBV -# % gui, FSCN1.stat, demand, Background Width, S03SIM-EA-FSCN-01:STAT:BgdWidth -# % gui, FSCN1.stat, readback, Background Width, S03SIM-EA-FSCN-01:STAT:BgdWidth_RBV -# % gui, FSCN1.stat, readback, Minimum Value, S03SIM-EA-FSCN-01:STAT:MinValue_RBV -# % gui, FSCN1.stat, readback, Minimum X, S03SIM-EA-FSCN-01:STAT:MinX_RBV -# % gui, FSCN1.stat, readback, Minimum Y, S03SIM-EA-FSCN-01:STAT:MinY_RBV -# % gui, FSCN1.stat, readback, Maximum Value, S03SIM-EA-FSCN-01:STAT:MaxValue_RBV -# % gui, FSCN1.stat, readback, Maximum X, S03SIM-EA-FSCN-01:STAT:MaxX_RBV -# % gui, FSCN1.stat, readback, Maximum Y, S03SIM-EA-FSCN-01:STAT:MaxY_RBV -# % gui, FSCN1.stat, readback, Mean Value, S03SIM-EA-FSCN-01:STAT:MeanValue_RBV -# % gui, FSCN1.stat, readback, Total, S03SIM-EA-FSCN-01:STAT:Total_RBV -# % gui, FSCN1.stat, readback, Sigma, S03SIM-EA-FSCN-01:STAT:Sigma_RBV -# % gui, FSCN1.stat, readback, Net, S03SIM-EA-FSCN-01:STAT:Net_RBV -# Centroid -# % gui, FSCN1.stat, groupHeading, Centroid -# % gui, FSCN1.stat, enum, Compute Centroid, S03SIM-EA-FSCN-01:STAT:ComputeCentroid -# % gui, FSCN1.stat, statusbits, Compute Centroid, S03SIM-EA-FSCN-01:STAT:ComputeCentroid_RBV -# % gui, FSCN1.stat, demand, Threshold, S03SIM-EA-FSCN-01:STAT:CentroidThreshold -# % gui, FSCN1.stat, readback, Threshold, S03SIM-EA-FSCN-01:STAT:CentroidThreshold_RBV -# % gui, FSCN1.stat, readback, X, S03SIM-EA-FSCN-01:STAT:CentroidX_RBV -# % gui, FSCN1.stat, readback, Sigma X, S03SIM-EA-FSCN-01:STAT:SigmaX_RBV -# % gui, FSCN1.stat, readback, Y, S03SIM-EA-FSCN-01:STAT:CentroidY_RBV -# % gui, FSCN1.stat, readback, Sigma Y, S03SIM-EA-FSCN-01:STAT:SigmaY_RBV -# % gui, FSCN1.stat, readback, Sigma XY, S03SIM-EA-FSCN-01:STAT:SigmaXY_RBV -# Histogram -# % gui, FSCN1.stat, groupHeading, Histogram -# % gui, FSCN1.stat, enum, Compute Histogram, S03SIM-EA-FSCN-01:STAT:ComputeHistogram -# % gui, FSCN1.stat, statusbits, Compute Histogram, S03SIM-EA-FSCN-01:STAT:ComputeHistogram_RBV -# % gui, FSCN1.stat, demand, Histogram Size, S03SIM-EA-FSCN-01:STAT:HistSize -# % gui, FSCN1.stat, readback, Histogram Size, S03SIM-EA-FSCN-01:STAT:HistSize_RBV -# % gui, FSCN1.stat, demand, Histogram Min, S03SIM-EA-FSCN-01:STAT:HistMin -# % gui, FSCN1.stat, readback, Histogram Min, S03SIM-EA-FSCN-01:STAT:HistMin_RBV -# % gui, FSCN1.stat, demand, Histogram Max, S03SIM-EA-FSCN-01:STAT:HistMax -# % gui, FSCN1.stat, readback, Histogram Max, S03SIM-EA-FSCN-01:STAT:HistMax_RBV -# % gui, FSCN1.stat, readback, Histogram Entropy, S03SIM-EA-FSCN-01:STAT:HistEntropy_RBV -# Profiles -# % gui, FSCN1.stat, groupHeading, Profiles -# % gui, FSCN1.stat, enum, Compute Profiles, S03SIM-EA-FSCN-01:STAT:ComputeProfiles -# % gui, FSCN1.stat, statusbits, Compute Profiles, S03SIM-EA-FSCN-01:STAT:ComputeProfiles_RBV -# % gui, FSCN1.stat, demand, Cursor X, S03SIM-EA-FSCN-01:STAT:CursorX -# % gui, FSCN1.stat, readback, Cursor X, S03SIM-EA-FSCN-01:STAT:CursorX_RBV -# % gui, FSCN1.stat, demand, Cursor Y, S03SIM-EA-FSCN-01:STAT:CursorY -# % gui, FSCN1.stat, readback, Cursor Y, S03SIM-EA-FSCN-01:STAT:CursorY_RBV -# % gui, FSCN1.stat, readback, Size X, S03SIM-EA-FSCN-01:STAT:ProfileSizeX_RBV -# % gui, FSCN1.stat, readback, Size Y, S03SIM-EA-FSCN-01:STAT:ProfileSizeY_RBV -# Time series -# % gui, FSCN1.stat, groupHeading, Time Series -# % gui, FSCN1.stat, enum, Time Control, S03SIM-EA-FSCN-01:STAT:TS:TSAcquire -# % gui, FSCN1.stat, statusbits, Acquiring, S03SIM-EA-FSCN-01:STAT:TS:TSAcquiring -# % gui, FSCN1.stat, readback, Current Point, S03SIM-EA-FSCN-01:STAT:TS:TSCurrentPoint -# % gui, FSCN1.stat, demand, Number of Points, S03SIM-EA-FSCN-01:STAT:TS:TSNumPoints -# % gui, FSCN1.stat, enum, Update, S03SIM-EA-FSCN-01:STAT:TS:TSRead.SCAN -# Memory -# % gui, FSCN1.stat, groupHeading, Memory -# % gui, FSCN1.stat, readback, Max memory, S03SIM-EA-FSCN-01:STAT:PoolMaxMem -# % gui, FSCN1.stat, readback, Max buffers, S03SIM-EA-FSCN-01:STAT:PoolMaxBuffers -# % gui, FSCN1.stat, readback, Used memory, S03SIM-EA-FSCN-01:STAT:PoolUsedMem -# % gui, FSCN1.stat, readback, Allocated buffers, S03SIM-EA-FSCN-01:STAT:PoolAllocBuffers -# % gui, FSCN1.stat, readback, Free buffers, S03SIM-EA-FSCN-01:STAT:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stat,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stat,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stat,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stat,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stat,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stat,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stat,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stat,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:STAT:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:STAT:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:STAT:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:STAT:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-01:STAT:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:STAT:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:STAT:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN1.stat,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN1.stat,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-01:STAT:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-01:STAT:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stat,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:STAT:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:STAT:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:STAT:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:STAT:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-01:STAT:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-01:STAT:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:STAT:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:STAT:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:STAT:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:STAT:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.stat,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:STAT:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.stat,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-01:STAT:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-01:STAT:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-01:STAT:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:STAT:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-01:STAT:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stat,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-01:STAT:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.stat,0,1)NDARRAY_PORT") - field(VAL, "FSCN1.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stat,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:STAT:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:STAT:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-01:STAT:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-01:STAT:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-01:STAT:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:STAT:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:STAT:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:STAT:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:STAT:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:STAT:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:STAT:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:STAT:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:STAT:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:STAT:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-01:STAT:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:STAT:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:STAT:AsynIO") -{ - field(PORT, "FSCN1.stat") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records contain the basic statistics # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT:ComputeStatistics") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)COMPUTE_STATISTICS") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT:ComputeStatistics_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)COMPUTE_STATISTICS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT:BgdWidth") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)BGD_WIDTH") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:BgdWidth_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)BGD_WIDTH") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:MinValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)MIN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:MinValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)MIN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:MaxValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)MAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:MaxValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)MAX_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:MeanValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)MEAN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:MeanValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)MEAN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:SigmaValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)SIGMA_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:Sigma_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)SIGMA_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:Total") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:Total_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:Net") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)NET") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:Net_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)NET") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:MinX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)MIN_X") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:MinX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)MIN_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:MinY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)MIN_Y") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:MinY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)MIN_Y") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:MaxX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)MAX_X") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:MaxX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)MAX_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:MaxY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)MAX_Y") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:MaxY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)MAX_Y") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether centroid statistics are computed # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT:ComputeCentroid") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)COMPUTE_CENTROID") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT:ComputeCentroid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)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, "S03SIM-EA-FSCN-01:STAT:CentroidThreshold") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)CENTROID_THRESHOLD") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:CentroidThreshold_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)CENTROID_THRESHOLD") - field(VAL, "0") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:CentroidTotal") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)CENTROID_TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:CentroidTotal_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)CENTROID_TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:CentroidX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)CENTROIDX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:CentroidX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)CENTROIDX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:CentroidY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)CENTROIDY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:CentroidY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)CENTROIDY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:SigmaX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)SIGMAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:SigmaX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)SIGMAX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:SigmaY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)SIGMAY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:SigmaY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)SIGMAY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:SigmaXY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)SIGMAXY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:SigmaXY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)SIGMAXY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:SkewX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)SKEWX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:SkewX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)SKEWX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:SkewY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)SKEWY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:SkewY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)SKEWY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:KurtosisX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)KURTOSISX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:KurtosisX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)KURTOSISX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:KurtosisY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)KURTOSISY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:KurtosisY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)KURTOSISY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:Eccentricity") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)ECCENTRICITY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:Eccentricity_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)ECCENTRICITY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:Orientation") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)ORIENTATION_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:Orientation_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)ORIENTATION_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control time series # -################################################################### -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSMinValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,0,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSMinX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,1,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSMinY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,2,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSMaxValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,3,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSMaxX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,4,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSMaxY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,5,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSMeanValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,6,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSSigma") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,7,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,8,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSNet") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,9,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSCentroidTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,10,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSCentroidX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,11,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSCentroidY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,12,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSSigmaX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,13,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSSigmaY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,14,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSSigmaXY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,15,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSSkewX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,16,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSSkewY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,17,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSKurtosisX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,18,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSKurtosisY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,19,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSEccentricity") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,20,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSOrientation") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,21,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:TSTimestamp") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat_TS,22,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control profiles # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT:ComputeProfiles") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)COMPUTE_PROFILES") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT:ComputeProfiles_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)COMPUTE_PROFILES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ProfileSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)PROFILE_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:ProfileSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)PROFILE_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT:CursorX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)CURSOR_X") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:CursorX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)CURSOR_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT:CursorY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)CURSOR_Y") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:CursorY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)CURSOR_Y") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:CursorVal") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)CURSOR_VAL") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:ProfileAverageX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat,0,1)PROFILE_AVERAGE_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:ProfileAverageY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat,0,1)PROFILE_AVERAGE_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:ProfileThresholdX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat,0,1)PROFILE_THRESHOLD_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:ProfileThresholdY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat,0,1)PROFILE_THRESHOLD_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:ProfileCentroidX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat,0,1)PROFILE_CENTROID_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:ProfileCentroidY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat,0,1)PROFILE_CENTROID_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:ProfileCursorX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat,0,1)PROFILE_CURSOR_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:ProfileCursorY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat,0,1)PROFILE_CURSOR_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These are used to define the histogram # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT:ComputeHistogram") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)COMPUTE_HISTOGRAM") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT:ComputeHistogram_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)COMPUTE_HISTOGRAM") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT:HistSize") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)HIST_SIZE") - field(VAL, "256") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:HistSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)HIST_SIZE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:HistMin") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)HIST_MIN") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:HistMin_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)HIST_MIN") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:HistMax") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)HIST_MAX") - field(VAL, "255") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:HistMax_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)HIST_MAX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT:HistBelow") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)HIST_BELOW") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:HistBelow_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)HIST_BELOW") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT:HistAbove") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stat,0,1)HIST_ABOVE") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:HistAbove_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stat,0,1)HIST_ABOVE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT:HistEntropy") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stat,0,1)HIST_ENTROPY") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT:HistEntropy_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stat,0,1)HIST_ENTROPY") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:Histogram_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat,0,1)HIST_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT:HistogramX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stat,0,1)HIST_X_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - 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, "S03SIM-EA-FSCN-01:STAT:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:ProfileSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:STAT:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:STAT:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:STAT:CursorX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT:ProfileSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:STAT:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:STAT:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:STAT:CursorY.HOPR NPP") -} - -################################################################### -# These records reset the statistics # -################################################################### -record(sseq, "S03SIM-EA-FSCN-01:STAT:Reset") -{ - field(LNK1, "S03SIM-EA-FSCN-01:STAT:MinValue PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:STAT:MaxValue PP MS") - field(LNK3, "S03SIM-EA-FSCN-01:STAT:MeanValue PP MS") - field(LNK4, "S03SIM-EA-FSCN-01:STAT:SigmaValue PP MS") - field(LNK5, "S03SIM-EA-FSCN-01:STAT:Total PP MS") - field(LNK6, "S03SIM-EA-FSCN-01:STAT:Net PP MS") - field(LNK7, "S03SIM-EA-FSCN-01:STAT:MinX PP MS") - field(LNK8, "S03SIM-EA-FSCN-01:STAT:MinY PP MS") - field(LNK9, "S03SIM-EA-FSCN-01:STAT:MaxX PP MS") - field(LNKA, "S03SIM-EA-FSCN-01:STAT:MaxY PP MS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Reset1") -} - -record(sseq, "S03SIM-EA-FSCN-01:STAT:Reset1") -{ - field(LNK1, "S03SIM-EA-FSCN-01:STAT:CentroidX PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:STAT:CentroidY PP MS") - field(LNK3, "S03SIM-EA-FSCN-01:STAT:SigmaX PP MS") - field(LNK4, "S03SIM-EA-FSCN-01:STAT:SigmaY PP MS") - field(LNK5, "S03SIM-EA-FSCN-01:STAT:SigmaXY PP MS") - field(LNK6, "S03SIM-EA-FSCN-01:STAT:CentroidTotal PP MS") - field(LNK7, "S03SIM-EA-FSCN-01:STAT:SkewX PP MS") - field(LNK8, "S03SIM-EA-FSCN-01:STAT:SkewY PP MS") - field(LNK9, "S03SIM-EA-FSCN-01:STAT:KurtosisX PP MS") - field(LNKA, "S03SIM-EA-FSCN-01:STAT:KurtosisY PP MS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT:Reset2") -} - -record(sseq, "S03SIM-EA-FSCN-01:STAT:Reset2") -{ - field(LNK1, "S03SIM-EA-FSCN-01:STAT:Eccentricity PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:STAT:Orientation PP MS") - field(LNK3, "S03SIM-EA-FSCN-01:STAT:HistBelow PP MS") - field(LNK4, "S03SIM-EA-FSCN-01:STAT:HistAbove PP MS") - field(LNK5, "S03SIM-EA-FSCN-01:STAT:HistEntropy PP MS") -} - -#=================================================================# -# Template file: NDStats.template - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, NCHANS, Number of channels -# % macro, XSIZE, x size -# % macro, YSIZE, y size -# % macro, HIST_SIZE, hist size -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Timeout -# % macro, TS_PORT, TS port - -# This associates the template with an edm screen -# % gui, FSCN1.stats.stat1, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-01,R=:STAT1: - -# This associates a BOY screen with the template -# % gui, FSCN1.stats.stat1, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-01, R=:STAT1:, DESC=Statistics -# % gui, FSCN1.stats.stat1, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:STAT1:, DESC=Statistics -# % gui, FSCN1.stats.stat1, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-01, R=:STAT1:, DESC=Statistics - - -# % gui, FSCN1.stats.stat1, groupHeading, Info -# % gui, FSCN1.stats.stat1, readback, Port name, S03SIM-EA-FSCN-01:STAT1:PortName_RBV -# % gui, FSCN1.stats.stat1, readback, Plugin type, S03SIM-EA-FSCN-01:STAT1:PluginType_RBV -# Input -# % gui, FSCN1.stats.stat1, demandString, Input, S03SIM-EA-FSCN-01:STAT1:NDArrayPort -# % gui, FSCN1.stats.stat1, readback, Input, S03SIM-EA-FSCN-01:STAT1:NDArrayPort_RBV - -# % gui, FSCN1.stats.stat1, groupHeading, Callback -# % gui, FSCN1.stats.stat1, enum, Callbacks, S03SIM-EA-FSCN-01:STAT1:EnableCallbacks -# % gui, FSCN1.stats.stat1, statusbits, Callbacks, S03SIM-EA-FSCN-01:STAT1:EnableCallbacks_RBV -# % gui, FSCN1.stats.stat1, demand, Min Callback Time, S03SIM-EA-FSCN-01:STAT1:MinCallbackTime -# % gui, FSCN1.stats.stat1, readback, Min Callback Time, S03SIM-EA-FSCN-01:STAT1:MinCallbackTime_RBV -# % gui, FSCN1.stats.stat1, enum, Block Callbacks, S03SIM-EA-FSCN-01:STAT1:BlockingCallbacks -# % gui, FSCN1.stats.stat1, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:STAT1:BlockingCallbacks_RBV - -# % gui, FSCN1.stats.stat1, groupHeading, Counters -# % gui, FSCN1.stats.stat1, demand, Array Counter, S03SIM-EA-FSCN-01:STAT1:ArrayCounter -# % gui, FSCN1.stats.stat1, readback, Array Counter, S03SIM-EA-FSCN-01:STAT1:ArrayCounter_RBV -# % gui, FSCN1.stats.stat1, readback, Array Rate (fps), S03SIM-EA-FSCN-01:STAT1:ArrayRate_RBV -# % gui, FSCN1.stats.stat1, readback, Queue Use, S03SIM-EA-FSCN-01:STAT1:QueueUse -# % gui, FSCN1.stats.stat1, readback, Queue Size, S03SIM-EA-FSCN-01:STAT1:QueueSize -# % gui, FSCN1.stats.stat1, demand, Dropped Arrays, S03SIM-EA-FSCN-01:STAT1:DroppedArrays -# % gui, FSCN1.stats.stat1, readback, Dropped Arrays, S03SIM-EA-FSCN-01:STAT1:DroppedArrays_RBV - -# % gui, FSCN1.stats.stat1, groupHeading, Array Settings -# % gui, FSCN1.stats.stat1, readback, Num Dimensions, S03SIM-EA-FSCN-01:STAT1:NDimensions_RBV -# % gui, FSCN1.stats.stat1, readback, Dim 0 Size, S03SIM-EA-FSCN-01:STAT1:ArraySize0_RBV -# % gui, FSCN1.stats.stat1, readback, Dim 1 Size, S03SIM-EA-FSCN-01:STAT1:ArraySize1_RBV -# % gui, FSCN1.stats.stat1, readback, Dim 2 Size, S03SIM-EA-FSCN-01:STAT1:ArraySize2_RBV -# % gui, FSCN1.stats.stat1, readback, Input Data Type, S03SIM-EA-FSCN-01:STAT1:DataType_RBV -# % gui, FSCN1.stats.stat1, readback, Colour Mode, S03SIM-EA-FSCN-01:STAT1:ColorMode_RBV -# % gui, FSCN1.stats.stat1, readback, Bayer Pattern, S03SIM-EA-FSCN-01:STAT1:BayerPattern_RBV -# % gui, FSCN1.stats.stat1, readback, Unique id, S03SIM-EA-FSCN-01:STAT1:UniqueId_RBV -# % gui, FSCN1.stats.stat1, readback, Timestamp, S03SIM-EA-FSCN-01:STAT1:TimeStamp_RBV - -# Output -# % gui, FSCN1.stats.stat1, groupHeading, Output -# % gui, FSCN1.stats.stat1, demand, Name, S03SIM-EA-FSCN-01:STAT1:Name -# % gui, FSCN1.stats.stat1, enum, Out data type, S03SIM-EA-FSCN-01:STAT1:DataTypeOut -# % gui, FSCN1.stats.stat1, readback, Out data type, S03SIM-EA-FSCN-01:STAT1:DataTypeOut_RBV -# % gui, FSCN1.stats.stat1, demand, Attributes file, S03SIM-EA-FSCN-01:STAT1:NDAttributesFile - -# Statistics -# % gui, FSCN1.stats.stat1, groupHeading, Statistics -# % gui, FSCN1.stats.stat1, enum, Compute Statistics, S03SIM-EA-FSCN-01:STAT1:ComputeStatistics -# % gui, FSCN1.stats.stat1, statusbits, Compute Statistics, S03SIM-EA-FSCN-01:STAT1:ComputeStatistics_RBV -# % gui, FSCN1.stats.stat1, demand, Background Width, S03SIM-EA-FSCN-01:STAT1:BgdWidth -# % gui, FSCN1.stats.stat1, readback, Background Width, S03SIM-EA-FSCN-01:STAT1:BgdWidth_RBV -# % gui, FSCN1.stats.stat1, readback, Minimum Value, S03SIM-EA-FSCN-01:STAT1:MinValue_RBV -# % gui, FSCN1.stats.stat1, readback, Minimum X, S03SIM-EA-FSCN-01:STAT1:MinX_RBV -# % gui, FSCN1.stats.stat1, readback, Minimum Y, S03SIM-EA-FSCN-01:STAT1:MinY_RBV -# % gui, FSCN1.stats.stat1, readback, Maximum Value, S03SIM-EA-FSCN-01:STAT1:MaxValue_RBV -# % gui, FSCN1.stats.stat1, readback, Maximum X, S03SIM-EA-FSCN-01:STAT1:MaxX_RBV -# % gui, FSCN1.stats.stat1, readback, Maximum Y, S03SIM-EA-FSCN-01:STAT1:MaxY_RBV -# % gui, FSCN1.stats.stat1, readback, Mean Value, S03SIM-EA-FSCN-01:STAT1:MeanValue_RBV -# % gui, FSCN1.stats.stat1, readback, Total, S03SIM-EA-FSCN-01:STAT1:Total_RBV -# % gui, FSCN1.stats.stat1, readback, Sigma, S03SIM-EA-FSCN-01:STAT1:Sigma_RBV -# % gui, FSCN1.stats.stat1, readback, Net, S03SIM-EA-FSCN-01:STAT1:Net_RBV -# Centroid -# % gui, FSCN1.stats.stat1, groupHeading, Centroid -# % gui, FSCN1.stats.stat1, enum, Compute Centroid, S03SIM-EA-FSCN-01:STAT1:ComputeCentroid -# % gui, FSCN1.stats.stat1, statusbits, Compute Centroid, S03SIM-EA-FSCN-01:STAT1:ComputeCentroid_RBV -# % gui, FSCN1.stats.stat1, demand, Threshold, S03SIM-EA-FSCN-01:STAT1:CentroidThreshold -# % gui, FSCN1.stats.stat1, readback, Threshold, S03SIM-EA-FSCN-01:STAT1:CentroidThreshold_RBV -# % gui, FSCN1.stats.stat1, readback, X, S03SIM-EA-FSCN-01:STAT1:CentroidX_RBV -# % gui, FSCN1.stats.stat1, readback, Sigma X, S03SIM-EA-FSCN-01:STAT1:SigmaX_RBV -# % gui, FSCN1.stats.stat1, readback, Y, S03SIM-EA-FSCN-01:STAT1:CentroidY_RBV -# % gui, FSCN1.stats.stat1, readback, Sigma Y, S03SIM-EA-FSCN-01:STAT1:SigmaY_RBV -# % gui, FSCN1.stats.stat1, readback, Sigma XY, S03SIM-EA-FSCN-01:STAT1:SigmaXY_RBV -# Histogram -# % gui, FSCN1.stats.stat1, groupHeading, Histogram -# % gui, FSCN1.stats.stat1, enum, Compute Histogram, S03SIM-EA-FSCN-01:STAT1:ComputeHistogram -# % gui, FSCN1.stats.stat1, statusbits, Compute Histogram, S03SIM-EA-FSCN-01:STAT1:ComputeHistogram_RBV -# % gui, FSCN1.stats.stat1, demand, Histogram Size, S03SIM-EA-FSCN-01:STAT1:HistSize -# % gui, FSCN1.stats.stat1, readback, Histogram Size, S03SIM-EA-FSCN-01:STAT1:HistSize_RBV -# % gui, FSCN1.stats.stat1, demand, Histogram Min, S03SIM-EA-FSCN-01:STAT1:HistMin -# % gui, FSCN1.stats.stat1, readback, Histogram Min, S03SIM-EA-FSCN-01:STAT1:HistMin_RBV -# % gui, FSCN1.stats.stat1, demand, Histogram Max, S03SIM-EA-FSCN-01:STAT1:HistMax -# % gui, FSCN1.stats.stat1, readback, Histogram Max, S03SIM-EA-FSCN-01:STAT1:HistMax_RBV -# % gui, FSCN1.stats.stat1, readback, Histogram Entropy, S03SIM-EA-FSCN-01:STAT1:HistEntropy_RBV -# Profiles -# % gui, FSCN1.stats.stat1, groupHeading, Profiles -# % gui, FSCN1.stats.stat1, enum, Compute Profiles, S03SIM-EA-FSCN-01:STAT1:ComputeProfiles -# % gui, FSCN1.stats.stat1, statusbits, Compute Profiles, S03SIM-EA-FSCN-01:STAT1:ComputeProfiles_RBV -# % gui, FSCN1.stats.stat1, demand, Cursor X, S03SIM-EA-FSCN-01:STAT1:CursorX -# % gui, FSCN1.stats.stat1, readback, Cursor X, S03SIM-EA-FSCN-01:STAT1:CursorX_RBV -# % gui, FSCN1.stats.stat1, demand, Cursor Y, S03SIM-EA-FSCN-01:STAT1:CursorY -# % gui, FSCN1.stats.stat1, readback, Cursor Y, S03SIM-EA-FSCN-01:STAT1:CursorY_RBV -# % gui, FSCN1.stats.stat1, readback, Size X, S03SIM-EA-FSCN-01:STAT1:ProfileSizeX_RBV -# % gui, FSCN1.stats.stat1, readback, Size Y, S03SIM-EA-FSCN-01:STAT1:ProfileSizeY_RBV -# Time series -# % gui, FSCN1.stats.stat1, groupHeading, Time Series -# % gui, FSCN1.stats.stat1, enum, Time Control, S03SIM-EA-FSCN-01:STAT1:TS:TSAcquire -# % gui, FSCN1.stats.stat1, statusbits, Acquiring, S03SIM-EA-FSCN-01:STAT1:TS:TSAcquiring -# % gui, FSCN1.stats.stat1, readback, Current Point, S03SIM-EA-FSCN-01:STAT1:TS:TSCurrentPoint -# % gui, FSCN1.stats.stat1, demand, Number of Points, S03SIM-EA-FSCN-01:STAT1:TS:TSNumPoints -# % gui, FSCN1.stats.stat1, enum, Update, S03SIM-EA-FSCN-01:STAT1:TS:TSRead.SCAN -# Memory -# % gui, FSCN1.stats.stat1, groupHeading, Memory -# % gui, FSCN1.stats.stat1, readback, Max memory, S03SIM-EA-FSCN-01:STAT1:PoolMaxMem -# % gui, FSCN1.stats.stat1, readback, Max buffers, S03SIM-EA-FSCN-01:STAT1:PoolMaxBuffers -# % gui, FSCN1.stats.stat1, readback, Used memory, S03SIM-EA-FSCN-01:STAT1:PoolUsedMem -# % gui, FSCN1.stats.stat1, readback, Allocated buffers, S03SIM-EA-FSCN-01:STAT1:PoolAllocBuffers -# % gui, FSCN1.stats.stat1, readback, Free buffers, S03SIM-EA-FSCN-01:STAT1:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT1:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT1:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT1:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT1:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT1:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT1:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT1:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT1:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:STAT1:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT1:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT1:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT1:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:STAT1:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT1:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT1:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:STAT1:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:STAT1:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-01:STAT1:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:STAT1:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:STAT1:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT1:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-01:STAT1:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-01:STAT1:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:STAT1:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:STAT1:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:STAT1:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:STAT1:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-01:STAT1:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-01:STAT1:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:STAT1:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT1:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:STAT1:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:STAT1:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT1:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT1:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-01:STAT1:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-01:STAT1:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-01:STAT1:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT1:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:STAT1:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-01:STAT1:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT1:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-01:STAT1:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)NDARRAY_PORT") - field(VAL, "FSCN1.rois.roi1") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT1:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT1:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT1:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT1:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:STAT1:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT1:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT1:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:STAT1:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-01:STAT1:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT1:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-01:STAT1:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT1:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT1:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT1:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-01:STAT1:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT1:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT1:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:STAT1:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT1:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:STAT1:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:STAT1:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT1:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:STAT1:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:STAT1:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT1:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:STAT1:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:STAT1:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:STAT1:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT1:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:STAT1:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-01:STAT1:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT1:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT1:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:STAT1:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT1:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT1:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT1:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:STAT1:AsynIO") -{ - field(PORT, "FSCN1.stats.stat1") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records contain the basic statistics # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT1:ComputeStatistics") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)COMPUTE_STATISTICS") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT1:ComputeStatistics_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)COMPUTE_STATISTICS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT1:BgdWidth") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)BGD_WIDTH") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:BgdWidth_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)BGD_WIDTH") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:MinValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)MIN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:MinValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)MIN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:MaxValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)MAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:MaxValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)MAX_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:MeanValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)MEAN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:MeanValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)MEAN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:SigmaValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)SIGMA_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:Sigma_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)SIGMA_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:Total") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:Total_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:Net") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)NET") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:Net_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)NET") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:MinX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)MIN_X") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:MinX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)MIN_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:MinY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)MIN_Y") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:MinY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)MIN_Y") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:MaxX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)MAX_X") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:MaxX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)MAX_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:MaxY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)MAX_Y") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:MaxY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)MAX_Y") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether centroid statistics are computed # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT1:ComputeCentroid") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)COMPUTE_CENTROID") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT1:ComputeCentroid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)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, "S03SIM-EA-FSCN-01:STAT1:CentroidThreshold") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)CENTROID_THRESHOLD") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:CentroidThreshold_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)CENTROID_THRESHOLD") - field(VAL, "0") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:CentroidTotal") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)CENTROID_TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:CentroidTotal_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)CENTROID_TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:CentroidX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)CENTROIDX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:CentroidX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)CENTROIDX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:CentroidY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)CENTROIDY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:CentroidY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)CENTROIDY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:SigmaX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)SIGMAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:SigmaX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)SIGMAX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:SigmaY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)SIGMAY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:SigmaY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)SIGMAY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:SigmaXY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)SIGMAXY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:SigmaXY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)SIGMAXY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:SkewX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)SKEWX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:SkewX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)SKEWX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:SkewY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)SKEWY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:SkewY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)SKEWY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:KurtosisX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)KURTOSISX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:KurtosisX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)KURTOSISX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:KurtosisY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)KURTOSISY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:KurtosisY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)KURTOSISY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:Eccentricity") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)ECCENTRICITY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:Eccentricity_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)ECCENTRICITY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:Orientation") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)ORIENTATION_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:Orientation_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)ORIENTATION_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control time series # -################################################################### -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSMinValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,0,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSMinX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,1,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSMinY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,2,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSMaxValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,3,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSMaxX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,4,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSMaxY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,5,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSMeanValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,6,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSSigma") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,7,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,8,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSNet") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,9,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSCentroidTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,10,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSCentroidX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,11,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSCentroidY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,12,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSSigmaX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,13,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSSigmaY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,14,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSSigmaXY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,15,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSSkewX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,16,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSSkewY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,17,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSKurtosisX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,18,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSKurtosisY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,19,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSEccentricity") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,20,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSOrientation") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,21,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:TSTimestamp") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1_TS,22,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control profiles # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT1:ComputeProfiles") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)COMPUTE_PROFILES") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT1:ComputeProfiles_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)COMPUTE_PROFILES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ProfileSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)PROFILE_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:ProfileSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)PROFILE_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT1:CursorX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)CURSOR_X") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:CursorX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)CURSOR_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT1:CursorY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)CURSOR_Y") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:CursorY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)CURSOR_Y") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:CursorVal") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)CURSOR_VAL") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:ProfileAverageX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)PROFILE_AVERAGE_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:ProfileAverageY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)PROFILE_AVERAGE_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:ProfileThresholdX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)PROFILE_THRESHOLD_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:ProfileThresholdY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)PROFILE_THRESHOLD_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:ProfileCentroidX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)PROFILE_CENTROID_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:ProfileCentroidY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)PROFILE_CENTROID_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:ProfileCursorX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)PROFILE_CURSOR_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:ProfileCursorY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)PROFILE_CURSOR_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These are used to define the histogram # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT1:ComputeHistogram") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)COMPUTE_HISTOGRAM") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT1:ComputeHistogram_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)COMPUTE_HISTOGRAM") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT1:HistSize") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)HIST_SIZE") - field(VAL, "256") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:HistSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)HIST_SIZE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:HistMin") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)HIST_MIN") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:HistMin_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)HIST_MIN") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:HistMax") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)HIST_MAX") - field(VAL, "255") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:HistMax_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)HIST_MAX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT1:HistBelow") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)HIST_BELOW") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:HistBelow_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)HIST_BELOW") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT1:HistAbove") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)HIST_ABOVE") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:HistAbove_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)HIST_ABOVE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT1:HistEntropy") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat1,0,1)HIST_ENTROPY") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT1:HistEntropy_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)HIST_ENTROPY") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:Histogram_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)HIST_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT1:HistogramX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat1,0,1)HIST_X_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - 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, "S03SIM-EA-FSCN-01:STAT1:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:ProfileSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:STAT1:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:STAT1:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:STAT1:CursorX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT1:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT1:ProfileSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:STAT1:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:STAT1:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:STAT1:CursorY.HOPR NPP") -} - -################################################################### -# These records reset the statistics # -################################################################### -record(sseq, "S03SIM-EA-FSCN-01:STAT1:Reset") -{ - field(LNK1, "S03SIM-EA-FSCN-01:STAT1:MinValue PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:STAT1:MaxValue PP MS") - field(LNK3, "S03SIM-EA-FSCN-01:STAT1:MeanValue PP MS") - field(LNK4, "S03SIM-EA-FSCN-01:STAT1:SigmaValue PP MS") - field(LNK5, "S03SIM-EA-FSCN-01:STAT1:Total PP MS") - field(LNK6, "S03SIM-EA-FSCN-01:STAT1:Net PP MS") - field(LNK7, "S03SIM-EA-FSCN-01:STAT1:MinX PP MS") - field(LNK8, "S03SIM-EA-FSCN-01:STAT1:MinY PP MS") - field(LNK9, "S03SIM-EA-FSCN-01:STAT1:MaxX PP MS") - field(LNKA, "S03SIM-EA-FSCN-01:STAT1:MaxY PP MS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Reset1") -} - -record(sseq, "S03SIM-EA-FSCN-01:STAT1:Reset1") -{ - field(LNK1, "S03SIM-EA-FSCN-01:STAT1:CentroidX PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:STAT1:CentroidY PP MS") - field(LNK3, "S03SIM-EA-FSCN-01:STAT1:SigmaX PP MS") - field(LNK4, "S03SIM-EA-FSCN-01:STAT1:SigmaY PP MS") - field(LNK5, "S03SIM-EA-FSCN-01:STAT1:SigmaXY PP MS") - field(LNK6, "S03SIM-EA-FSCN-01:STAT1:CentroidTotal PP MS") - field(LNK7, "S03SIM-EA-FSCN-01:STAT1:SkewX PP MS") - field(LNK8, "S03SIM-EA-FSCN-01:STAT1:SkewY PP MS") - field(LNK9, "S03SIM-EA-FSCN-01:STAT1:KurtosisX PP MS") - field(LNKA, "S03SIM-EA-FSCN-01:STAT1:KurtosisY PP MS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT1:Reset2") -} - -record(sseq, "S03SIM-EA-FSCN-01:STAT1:Reset2") -{ - field(LNK1, "S03SIM-EA-FSCN-01:STAT1:Eccentricity PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:STAT1:Orientation PP MS") - field(LNK3, "S03SIM-EA-FSCN-01:STAT1:HistBelow PP MS") - field(LNK4, "S03SIM-EA-FSCN-01:STAT1:HistAbove PP MS") - field(LNK5, "S03SIM-EA-FSCN-01:STAT1:HistEntropy PP MS") -} - -#=================================================================# -# Template file: NDStats.template - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, NCHANS, Number of channels -# % macro, XSIZE, x size -# % macro, YSIZE, y size -# % macro, HIST_SIZE, hist size -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Timeout -# % macro, TS_PORT, TS port - -# This associates the template with an edm screen -# % gui, FSCN1.stats.stat2, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-01,R=:STAT2: - -# This associates a BOY screen with the template -# % gui, FSCN1.stats.stat2, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-01, R=:STAT2:, DESC=Statistics -# % gui, FSCN1.stats.stat2, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:STAT2:, DESC=Statistics -# % gui, FSCN1.stats.stat2, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-01, R=:STAT2:, DESC=Statistics - - -# % gui, FSCN1.stats.stat2, groupHeading, Info -# % gui, FSCN1.stats.stat2, readback, Port name, S03SIM-EA-FSCN-01:STAT2:PortName_RBV -# % gui, FSCN1.stats.stat2, readback, Plugin type, S03SIM-EA-FSCN-01:STAT2:PluginType_RBV -# Input -# % gui, FSCN1.stats.stat2, demandString, Input, S03SIM-EA-FSCN-01:STAT2:NDArrayPort -# % gui, FSCN1.stats.stat2, readback, Input, S03SIM-EA-FSCN-01:STAT2:NDArrayPort_RBV - -# % gui, FSCN1.stats.stat2, groupHeading, Callback -# % gui, FSCN1.stats.stat2, enum, Callbacks, S03SIM-EA-FSCN-01:STAT2:EnableCallbacks -# % gui, FSCN1.stats.stat2, statusbits, Callbacks, S03SIM-EA-FSCN-01:STAT2:EnableCallbacks_RBV -# % gui, FSCN1.stats.stat2, demand, Min Callback Time, S03SIM-EA-FSCN-01:STAT2:MinCallbackTime -# % gui, FSCN1.stats.stat2, readback, Min Callback Time, S03SIM-EA-FSCN-01:STAT2:MinCallbackTime_RBV -# % gui, FSCN1.stats.stat2, enum, Block Callbacks, S03SIM-EA-FSCN-01:STAT2:BlockingCallbacks -# % gui, FSCN1.stats.stat2, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:STAT2:BlockingCallbacks_RBV - -# % gui, FSCN1.stats.stat2, groupHeading, Counters -# % gui, FSCN1.stats.stat2, demand, Array Counter, S03SIM-EA-FSCN-01:STAT2:ArrayCounter -# % gui, FSCN1.stats.stat2, readback, Array Counter, S03SIM-EA-FSCN-01:STAT2:ArrayCounter_RBV -# % gui, FSCN1.stats.stat2, readback, Array Rate (fps), S03SIM-EA-FSCN-01:STAT2:ArrayRate_RBV -# % gui, FSCN1.stats.stat2, readback, Queue Use, S03SIM-EA-FSCN-01:STAT2:QueueUse -# % gui, FSCN1.stats.stat2, readback, Queue Size, S03SIM-EA-FSCN-01:STAT2:QueueSize -# % gui, FSCN1.stats.stat2, demand, Dropped Arrays, S03SIM-EA-FSCN-01:STAT2:DroppedArrays -# % gui, FSCN1.stats.stat2, readback, Dropped Arrays, S03SIM-EA-FSCN-01:STAT2:DroppedArrays_RBV - -# % gui, FSCN1.stats.stat2, groupHeading, Array Settings -# % gui, FSCN1.stats.stat2, readback, Num Dimensions, S03SIM-EA-FSCN-01:STAT2:NDimensions_RBV -# % gui, FSCN1.stats.stat2, readback, Dim 0 Size, S03SIM-EA-FSCN-01:STAT2:ArraySize0_RBV -# % gui, FSCN1.stats.stat2, readback, Dim 1 Size, S03SIM-EA-FSCN-01:STAT2:ArraySize1_RBV -# % gui, FSCN1.stats.stat2, readback, Dim 2 Size, S03SIM-EA-FSCN-01:STAT2:ArraySize2_RBV -# % gui, FSCN1.stats.stat2, readback, Input Data Type, S03SIM-EA-FSCN-01:STAT2:DataType_RBV -# % gui, FSCN1.stats.stat2, readback, Colour Mode, S03SIM-EA-FSCN-01:STAT2:ColorMode_RBV -# % gui, FSCN1.stats.stat2, readback, Bayer Pattern, S03SIM-EA-FSCN-01:STAT2:BayerPattern_RBV -# % gui, FSCN1.stats.stat2, readback, Unique id, S03SIM-EA-FSCN-01:STAT2:UniqueId_RBV -# % gui, FSCN1.stats.stat2, readback, Timestamp, S03SIM-EA-FSCN-01:STAT2:TimeStamp_RBV - -# Output -# % gui, FSCN1.stats.stat2, groupHeading, Output -# % gui, FSCN1.stats.stat2, demand, Name, S03SIM-EA-FSCN-01:STAT2:Name -# % gui, FSCN1.stats.stat2, enum, Out data type, S03SIM-EA-FSCN-01:STAT2:DataTypeOut -# % gui, FSCN1.stats.stat2, readback, Out data type, S03SIM-EA-FSCN-01:STAT2:DataTypeOut_RBV -# % gui, FSCN1.stats.stat2, demand, Attributes file, S03SIM-EA-FSCN-01:STAT2:NDAttributesFile - -# Statistics -# % gui, FSCN1.stats.stat2, groupHeading, Statistics -# % gui, FSCN1.stats.stat2, enum, Compute Statistics, S03SIM-EA-FSCN-01:STAT2:ComputeStatistics -# % gui, FSCN1.stats.stat2, statusbits, Compute Statistics, S03SIM-EA-FSCN-01:STAT2:ComputeStatistics_RBV -# % gui, FSCN1.stats.stat2, demand, Background Width, S03SIM-EA-FSCN-01:STAT2:BgdWidth -# % gui, FSCN1.stats.stat2, readback, Background Width, S03SIM-EA-FSCN-01:STAT2:BgdWidth_RBV -# % gui, FSCN1.stats.stat2, readback, Minimum Value, S03SIM-EA-FSCN-01:STAT2:MinValue_RBV -# % gui, FSCN1.stats.stat2, readback, Minimum X, S03SIM-EA-FSCN-01:STAT2:MinX_RBV -# % gui, FSCN1.stats.stat2, readback, Minimum Y, S03SIM-EA-FSCN-01:STAT2:MinY_RBV -# % gui, FSCN1.stats.stat2, readback, Maximum Value, S03SIM-EA-FSCN-01:STAT2:MaxValue_RBV -# % gui, FSCN1.stats.stat2, readback, Maximum X, S03SIM-EA-FSCN-01:STAT2:MaxX_RBV -# % gui, FSCN1.stats.stat2, readback, Maximum Y, S03SIM-EA-FSCN-01:STAT2:MaxY_RBV -# % gui, FSCN1.stats.stat2, readback, Mean Value, S03SIM-EA-FSCN-01:STAT2:MeanValue_RBV -# % gui, FSCN1.stats.stat2, readback, Total, S03SIM-EA-FSCN-01:STAT2:Total_RBV -# % gui, FSCN1.stats.stat2, readback, Sigma, S03SIM-EA-FSCN-01:STAT2:Sigma_RBV -# % gui, FSCN1.stats.stat2, readback, Net, S03SIM-EA-FSCN-01:STAT2:Net_RBV -# Centroid -# % gui, FSCN1.stats.stat2, groupHeading, Centroid -# % gui, FSCN1.stats.stat2, enum, Compute Centroid, S03SIM-EA-FSCN-01:STAT2:ComputeCentroid -# % gui, FSCN1.stats.stat2, statusbits, Compute Centroid, S03SIM-EA-FSCN-01:STAT2:ComputeCentroid_RBV -# % gui, FSCN1.stats.stat2, demand, Threshold, S03SIM-EA-FSCN-01:STAT2:CentroidThreshold -# % gui, FSCN1.stats.stat2, readback, Threshold, S03SIM-EA-FSCN-01:STAT2:CentroidThreshold_RBV -# % gui, FSCN1.stats.stat2, readback, X, S03SIM-EA-FSCN-01:STAT2:CentroidX_RBV -# % gui, FSCN1.stats.stat2, readback, Sigma X, S03SIM-EA-FSCN-01:STAT2:SigmaX_RBV -# % gui, FSCN1.stats.stat2, readback, Y, S03SIM-EA-FSCN-01:STAT2:CentroidY_RBV -# % gui, FSCN1.stats.stat2, readback, Sigma Y, S03SIM-EA-FSCN-01:STAT2:SigmaY_RBV -# % gui, FSCN1.stats.stat2, readback, Sigma XY, S03SIM-EA-FSCN-01:STAT2:SigmaXY_RBV -# Histogram -# % gui, FSCN1.stats.stat2, groupHeading, Histogram -# % gui, FSCN1.stats.stat2, enum, Compute Histogram, S03SIM-EA-FSCN-01:STAT2:ComputeHistogram -# % gui, FSCN1.stats.stat2, statusbits, Compute Histogram, S03SIM-EA-FSCN-01:STAT2:ComputeHistogram_RBV -# % gui, FSCN1.stats.stat2, demand, Histogram Size, S03SIM-EA-FSCN-01:STAT2:HistSize -# % gui, FSCN1.stats.stat2, readback, Histogram Size, S03SIM-EA-FSCN-01:STAT2:HistSize_RBV -# % gui, FSCN1.stats.stat2, demand, Histogram Min, S03SIM-EA-FSCN-01:STAT2:HistMin -# % gui, FSCN1.stats.stat2, readback, Histogram Min, S03SIM-EA-FSCN-01:STAT2:HistMin_RBV -# % gui, FSCN1.stats.stat2, demand, Histogram Max, S03SIM-EA-FSCN-01:STAT2:HistMax -# % gui, FSCN1.stats.stat2, readback, Histogram Max, S03SIM-EA-FSCN-01:STAT2:HistMax_RBV -# % gui, FSCN1.stats.stat2, readback, Histogram Entropy, S03SIM-EA-FSCN-01:STAT2:HistEntropy_RBV -# Profiles -# % gui, FSCN1.stats.stat2, groupHeading, Profiles -# % gui, FSCN1.stats.stat2, enum, Compute Profiles, S03SIM-EA-FSCN-01:STAT2:ComputeProfiles -# % gui, FSCN1.stats.stat2, statusbits, Compute Profiles, S03SIM-EA-FSCN-01:STAT2:ComputeProfiles_RBV -# % gui, FSCN1.stats.stat2, demand, Cursor X, S03SIM-EA-FSCN-01:STAT2:CursorX -# % gui, FSCN1.stats.stat2, readback, Cursor X, S03SIM-EA-FSCN-01:STAT2:CursorX_RBV -# % gui, FSCN1.stats.stat2, demand, Cursor Y, S03SIM-EA-FSCN-01:STAT2:CursorY -# % gui, FSCN1.stats.stat2, readback, Cursor Y, S03SIM-EA-FSCN-01:STAT2:CursorY_RBV -# % gui, FSCN1.stats.stat2, readback, Size X, S03SIM-EA-FSCN-01:STAT2:ProfileSizeX_RBV -# % gui, FSCN1.stats.stat2, readback, Size Y, S03SIM-EA-FSCN-01:STAT2:ProfileSizeY_RBV -# Time series -# % gui, FSCN1.stats.stat2, groupHeading, Time Series -# % gui, FSCN1.stats.stat2, enum, Time Control, S03SIM-EA-FSCN-01:STAT2:TS:TSAcquire -# % gui, FSCN1.stats.stat2, statusbits, Acquiring, S03SIM-EA-FSCN-01:STAT2:TS:TSAcquiring -# % gui, FSCN1.stats.stat2, readback, Current Point, S03SIM-EA-FSCN-01:STAT2:TS:TSCurrentPoint -# % gui, FSCN1.stats.stat2, demand, Number of Points, S03SIM-EA-FSCN-01:STAT2:TS:TSNumPoints -# % gui, FSCN1.stats.stat2, enum, Update, S03SIM-EA-FSCN-01:STAT2:TS:TSRead.SCAN -# Memory -# % gui, FSCN1.stats.stat2, groupHeading, Memory -# % gui, FSCN1.stats.stat2, readback, Max memory, S03SIM-EA-FSCN-01:STAT2:PoolMaxMem -# % gui, FSCN1.stats.stat2, readback, Max buffers, S03SIM-EA-FSCN-01:STAT2:PoolMaxBuffers -# % gui, FSCN1.stats.stat2, readback, Used memory, S03SIM-EA-FSCN-01:STAT2:PoolUsedMem -# % gui, FSCN1.stats.stat2, readback, Allocated buffers, S03SIM-EA-FSCN-01:STAT2:PoolAllocBuffers -# % gui, FSCN1.stats.stat2, readback, Free buffers, S03SIM-EA-FSCN-01:STAT2:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT2:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT2:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT2:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT2:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT2:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT2:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT2:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT2:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:STAT2:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT2:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT2:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT2:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:STAT2:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT2:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT2:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:STAT2:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:STAT2:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-01:STAT2:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:STAT2:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:STAT2:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT2:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-01:STAT2:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-01:STAT2:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:STAT2:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:STAT2:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:STAT2:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:STAT2:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-01:STAT2:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-01:STAT2:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:STAT2:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT2:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:STAT2:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:STAT2:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT2:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT2:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-01:STAT2:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-01:STAT2:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-01:STAT2:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT2:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:STAT2:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-01:STAT2:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT2:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-01:STAT2:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)NDARRAY_PORT") - field(VAL, "FSCN1.rois.roi1") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT2:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT2:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT2:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT2:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:STAT2:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT2:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT2:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:STAT2:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-01:STAT2:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT2:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-01:STAT2:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT2:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT2:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT2:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-01:STAT2:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT2:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT2:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:STAT2:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT2:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:STAT2:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:STAT2:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT2:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:STAT2:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:STAT2:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT2:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:STAT2:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:STAT2:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:STAT2:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT2:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:STAT2:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-01:STAT2:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT2:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT2:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:STAT2:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT2:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT2:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT2:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:STAT2:AsynIO") -{ - field(PORT, "FSCN1.stats.stat2") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records contain the basic statistics # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT2:ComputeStatistics") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)COMPUTE_STATISTICS") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT2:ComputeStatistics_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)COMPUTE_STATISTICS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT2:BgdWidth") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)BGD_WIDTH") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:BgdWidth_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)BGD_WIDTH") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:MinValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)MIN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:MinValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)MIN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:MaxValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)MAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:MaxValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)MAX_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:MeanValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)MEAN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:MeanValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)MEAN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:SigmaValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)SIGMA_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:Sigma_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)SIGMA_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:Total") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:Total_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:Net") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)NET") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:Net_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)NET") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:MinX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)MIN_X") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:MinX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)MIN_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:MinY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)MIN_Y") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:MinY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)MIN_Y") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:MaxX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)MAX_X") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:MaxX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)MAX_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:MaxY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)MAX_Y") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:MaxY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)MAX_Y") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether centroid statistics are computed # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT2:ComputeCentroid") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)COMPUTE_CENTROID") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT2:ComputeCentroid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)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, "S03SIM-EA-FSCN-01:STAT2:CentroidThreshold") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)CENTROID_THRESHOLD") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:CentroidThreshold_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)CENTROID_THRESHOLD") - field(VAL, "0") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:CentroidTotal") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)CENTROID_TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:CentroidTotal_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)CENTROID_TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:CentroidX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)CENTROIDX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:CentroidX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)CENTROIDX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:CentroidY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)CENTROIDY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:CentroidY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)CENTROIDY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:SigmaX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)SIGMAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:SigmaX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)SIGMAX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:SigmaY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)SIGMAY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:SigmaY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)SIGMAY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:SigmaXY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)SIGMAXY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:SigmaXY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)SIGMAXY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:SkewX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)SKEWX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:SkewX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)SKEWX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:SkewY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)SKEWY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:SkewY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)SKEWY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:KurtosisX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)KURTOSISX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:KurtosisX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)KURTOSISX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:KurtosisY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)KURTOSISY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:KurtosisY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)KURTOSISY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:Eccentricity") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)ECCENTRICITY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:Eccentricity_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)ECCENTRICITY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:Orientation") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)ORIENTATION_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:Orientation_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)ORIENTATION_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control time series # -################################################################### -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSMinValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,0,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSMinX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,1,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSMinY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,2,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSMaxValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,3,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSMaxX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,4,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSMaxY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,5,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSMeanValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,6,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSSigma") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,7,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,8,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSNet") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,9,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSCentroidTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,10,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSCentroidX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,11,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSCentroidY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,12,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSSigmaX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,13,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSSigmaY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,14,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSSigmaXY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,15,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSSkewX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,16,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSSkewY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,17,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSKurtosisX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,18,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSKurtosisY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,19,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSEccentricity") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,20,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSOrientation") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,21,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:TSTimestamp") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2_TS,22,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control profiles # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT2:ComputeProfiles") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)COMPUTE_PROFILES") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT2:ComputeProfiles_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)COMPUTE_PROFILES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ProfileSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)PROFILE_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:ProfileSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)PROFILE_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT2:CursorX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)CURSOR_X") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:CursorX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)CURSOR_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT2:CursorY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)CURSOR_Y") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:CursorY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)CURSOR_Y") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:CursorVal") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)CURSOR_VAL") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:ProfileAverageX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)PROFILE_AVERAGE_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:ProfileAverageY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)PROFILE_AVERAGE_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:ProfileThresholdX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)PROFILE_THRESHOLD_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:ProfileThresholdY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)PROFILE_THRESHOLD_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:ProfileCentroidX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)PROFILE_CENTROID_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:ProfileCentroidY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)PROFILE_CENTROID_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:ProfileCursorX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)PROFILE_CURSOR_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:ProfileCursorY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)PROFILE_CURSOR_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These are used to define the histogram # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT2:ComputeHistogram") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)COMPUTE_HISTOGRAM") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT2:ComputeHistogram_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)COMPUTE_HISTOGRAM") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT2:HistSize") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)HIST_SIZE") - field(VAL, "256") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:HistSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)HIST_SIZE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:HistMin") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)HIST_MIN") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:HistMin_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)HIST_MIN") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:HistMax") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)HIST_MAX") - field(VAL, "255") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:HistMax_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)HIST_MAX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT2:HistBelow") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)HIST_BELOW") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:HistBelow_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)HIST_BELOW") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT2:HistAbove") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)HIST_ABOVE") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:HistAbove_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)HIST_ABOVE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT2:HistEntropy") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat2,0,1)HIST_ENTROPY") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT2:HistEntropy_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)HIST_ENTROPY") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:Histogram_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)HIST_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT2:HistogramX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat2,0,1)HIST_X_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - 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, "S03SIM-EA-FSCN-01:STAT2:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:ProfileSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:STAT2:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:STAT2:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:STAT2:CursorX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT2:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT2:ProfileSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:STAT2:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:STAT2:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:STAT2:CursorY.HOPR NPP") -} - -################################################################### -# These records reset the statistics # -################################################################### -record(sseq, "S03SIM-EA-FSCN-01:STAT2:Reset") -{ - field(LNK1, "S03SIM-EA-FSCN-01:STAT2:MinValue PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:STAT2:MaxValue PP MS") - field(LNK3, "S03SIM-EA-FSCN-01:STAT2:MeanValue PP MS") - field(LNK4, "S03SIM-EA-FSCN-01:STAT2:SigmaValue PP MS") - field(LNK5, "S03SIM-EA-FSCN-01:STAT2:Total PP MS") - field(LNK6, "S03SIM-EA-FSCN-01:STAT2:Net PP MS") - field(LNK7, "S03SIM-EA-FSCN-01:STAT2:MinX PP MS") - field(LNK8, "S03SIM-EA-FSCN-01:STAT2:MinY PP MS") - field(LNK9, "S03SIM-EA-FSCN-01:STAT2:MaxX PP MS") - field(LNKA, "S03SIM-EA-FSCN-01:STAT2:MaxY PP MS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Reset1") -} - -record(sseq, "S03SIM-EA-FSCN-01:STAT2:Reset1") -{ - field(LNK1, "S03SIM-EA-FSCN-01:STAT2:CentroidX PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:STAT2:CentroidY PP MS") - field(LNK3, "S03SIM-EA-FSCN-01:STAT2:SigmaX PP MS") - field(LNK4, "S03SIM-EA-FSCN-01:STAT2:SigmaY PP MS") - field(LNK5, "S03SIM-EA-FSCN-01:STAT2:SigmaXY PP MS") - field(LNK6, "S03SIM-EA-FSCN-01:STAT2:CentroidTotal PP MS") - field(LNK7, "S03SIM-EA-FSCN-01:STAT2:SkewX PP MS") - field(LNK8, "S03SIM-EA-FSCN-01:STAT2:SkewY PP MS") - field(LNK9, "S03SIM-EA-FSCN-01:STAT2:KurtosisX PP MS") - field(LNKA, "S03SIM-EA-FSCN-01:STAT2:KurtosisY PP MS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT2:Reset2") -} - -record(sseq, "S03SIM-EA-FSCN-01:STAT2:Reset2") -{ - field(LNK1, "S03SIM-EA-FSCN-01:STAT2:Eccentricity PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:STAT2:Orientation PP MS") - field(LNK3, "S03SIM-EA-FSCN-01:STAT2:HistBelow PP MS") - field(LNK4, "S03SIM-EA-FSCN-01:STAT2:HistAbove PP MS") - field(LNK5, "S03SIM-EA-FSCN-01:STAT2:HistEntropy PP MS") -} - -#=================================================================# -# Template file: NDStats.template - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, NCHANS, Number of channels -# % macro, XSIZE, x size -# % macro, YSIZE, y size -# % macro, HIST_SIZE, hist size -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Timeout -# % macro, TS_PORT, TS port - -# This associates the template with an edm screen -# % gui, FSCN1.stats.stat3, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-01,R=:STAT3: - -# This associates a BOY screen with the template -# % gui, FSCN1.stats.stat3, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-01, R=:STAT3:, DESC=Statistics -# % gui, FSCN1.stats.stat3, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:STAT3:, DESC=Statistics -# % gui, FSCN1.stats.stat3, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-01, R=:STAT3:, DESC=Statistics - - -# % gui, FSCN1.stats.stat3, groupHeading, Info -# % gui, FSCN1.stats.stat3, readback, Port name, S03SIM-EA-FSCN-01:STAT3:PortName_RBV -# % gui, FSCN1.stats.stat3, readback, Plugin type, S03SIM-EA-FSCN-01:STAT3:PluginType_RBV -# Input -# % gui, FSCN1.stats.stat3, demandString, Input, S03SIM-EA-FSCN-01:STAT3:NDArrayPort -# % gui, FSCN1.stats.stat3, readback, Input, S03SIM-EA-FSCN-01:STAT3:NDArrayPort_RBV - -# % gui, FSCN1.stats.stat3, groupHeading, Callback -# % gui, FSCN1.stats.stat3, enum, Callbacks, S03SIM-EA-FSCN-01:STAT3:EnableCallbacks -# % gui, FSCN1.stats.stat3, statusbits, Callbacks, S03SIM-EA-FSCN-01:STAT3:EnableCallbacks_RBV -# % gui, FSCN1.stats.stat3, demand, Min Callback Time, S03SIM-EA-FSCN-01:STAT3:MinCallbackTime -# % gui, FSCN1.stats.stat3, readback, Min Callback Time, S03SIM-EA-FSCN-01:STAT3:MinCallbackTime_RBV -# % gui, FSCN1.stats.stat3, enum, Block Callbacks, S03SIM-EA-FSCN-01:STAT3:BlockingCallbacks -# % gui, FSCN1.stats.stat3, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:STAT3:BlockingCallbacks_RBV - -# % gui, FSCN1.stats.stat3, groupHeading, Counters -# % gui, FSCN1.stats.stat3, demand, Array Counter, S03SIM-EA-FSCN-01:STAT3:ArrayCounter -# % gui, FSCN1.stats.stat3, readback, Array Counter, S03SIM-EA-FSCN-01:STAT3:ArrayCounter_RBV -# % gui, FSCN1.stats.stat3, readback, Array Rate (fps), S03SIM-EA-FSCN-01:STAT3:ArrayRate_RBV -# % gui, FSCN1.stats.stat3, readback, Queue Use, S03SIM-EA-FSCN-01:STAT3:QueueUse -# % gui, FSCN1.stats.stat3, readback, Queue Size, S03SIM-EA-FSCN-01:STAT3:QueueSize -# % gui, FSCN1.stats.stat3, demand, Dropped Arrays, S03SIM-EA-FSCN-01:STAT3:DroppedArrays -# % gui, FSCN1.stats.stat3, readback, Dropped Arrays, S03SIM-EA-FSCN-01:STAT3:DroppedArrays_RBV - -# % gui, FSCN1.stats.stat3, groupHeading, Array Settings -# % gui, FSCN1.stats.stat3, readback, Num Dimensions, S03SIM-EA-FSCN-01:STAT3:NDimensions_RBV -# % gui, FSCN1.stats.stat3, readback, Dim 0 Size, S03SIM-EA-FSCN-01:STAT3:ArraySize0_RBV -# % gui, FSCN1.stats.stat3, readback, Dim 1 Size, S03SIM-EA-FSCN-01:STAT3:ArraySize1_RBV -# % gui, FSCN1.stats.stat3, readback, Dim 2 Size, S03SIM-EA-FSCN-01:STAT3:ArraySize2_RBV -# % gui, FSCN1.stats.stat3, readback, Input Data Type, S03SIM-EA-FSCN-01:STAT3:DataType_RBV -# % gui, FSCN1.stats.stat3, readback, Colour Mode, S03SIM-EA-FSCN-01:STAT3:ColorMode_RBV -# % gui, FSCN1.stats.stat3, readback, Bayer Pattern, S03SIM-EA-FSCN-01:STAT3:BayerPattern_RBV -# % gui, FSCN1.stats.stat3, readback, Unique id, S03SIM-EA-FSCN-01:STAT3:UniqueId_RBV -# % gui, FSCN1.stats.stat3, readback, Timestamp, S03SIM-EA-FSCN-01:STAT3:TimeStamp_RBV - -# Output -# % gui, FSCN1.stats.stat3, groupHeading, Output -# % gui, FSCN1.stats.stat3, demand, Name, S03SIM-EA-FSCN-01:STAT3:Name -# % gui, FSCN1.stats.stat3, enum, Out data type, S03SIM-EA-FSCN-01:STAT3:DataTypeOut -# % gui, FSCN1.stats.stat3, readback, Out data type, S03SIM-EA-FSCN-01:STAT3:DataTypeOut_RBV -# % gui, FSCN1.stats.stat3, demand, Attributes file, S03SIM-EA-FSCN-01:STAT3:NDAttributesFile - -# Statistics -# % gui, FSCN1.stats.stat3, groupHeading, Statistics -# % gui, FSCN1.stats.stat3, enum, Compute Statistics, S03SIM-EA-FSCN-01:STAT3:ComputeStatistics -# % gui, FSCN1.stats.stat3, statusbits, Compute Statistics, S03SIM-EA-FSCN-01:STAT3:ComputeStatistics_RBV -# % gui, FSCN1.stats.stat3, demand, Background Width, S03SIM-EA-FSCN-01:STAT3:BgdWidth -# % gui, FSCN1.stats.stat3, readback, Background Width, S03SIM-EA-FSCN-01:STAT3:BgdWidth_RBV -# % gui, FSCN1.stats.stat3, readback, Minimum Value, S03SIM-EA-FSCN-01:STAT3:MinValue_RBV -# % gui, FSCN1.stats.stat3, readback, Minimum X, S03SIM-EA-FSCN-01:STAT3:MinX_RBV -# % gui, FSCN1.stats.stat3, readback, Minimum Y, S03SIM-EA-FSCN-01:STAT3:MinY_RBV -# % gui, FSCN1.stats.stat3, readback, Maximum Value, S03SIM-EA-FSCN-01:STAT3:MaxValue_RBV -# % gui, FSCN1.stats.stat3, readback, Maximum X, S03SIM-EA-FSCN-01:STAT3:MaxX_RBV -# % gui, FSCN1.stats.stat3, readback, Maximum Y, S03SIM-EA-FSCN-01:STAT3:MaxY_RBV -# % gui, FSCN1.stats.stat3, readback, Mean Value, S03SIM-EA-FSCN-01:STAT3:MeanValue_RBV -# % gui, FSCN1.stats.stat3, readback, Total, S03SIM-EA-FSCN-01:STAT3:Total_RBV -# % gui, FSCN1.stats.stat3, readback, Sigma, S03SIM-EA-FSCN-01:STAT3:Sigma_RBV -# % gui, FSCN1.stats.stat3, readback, Net, S03SIM-EA-FSCN-01:STAT3:Net_RBV -# Centroid -# % gui, FSCN1.stats.stat3, groupHeading, Centroid -# % gui, FSCN1.stats.stat3, enum, Compute Centroid, S03SIM-EA-FSCN-01:STAT3:ComputeCentroid -# % gui, FSCN1.stats.stat3, statusbits, Compute Centroid, S03SIM-EA-FSCN-01:STAT3:ComputeCentroid_RBV -# % gui, FSCN1.stats.stat3, demand, Threshold, S03SIM-EA-FSCN-01:STAT3:CentroidThreshold -# % gui, FSCN1.stats.stat3, readback, Threshold, S03SIM-EA-FSCN-01:STAT3:CentroidThreshold_RBV -# % gui, FSCN1.stats.stat3, readback, X, S03SIM-EA-FSCN-01:STAT3:CentroidX_RBV -# % gui, FSCN1.stats.stat3, readback, Sigma X, S03SIM-EA-FSCN-01:STAT3:SigmaX_RBV -# % gui, FSCN1.stats.stat3, readback, Y, S03SIM-EA-FSCN-01:STAT3:CentroidY_RBV -# % gui, FSCN1.stats.stat3, readback, Sigma Y, S03SIM-EA-FSCN-01:STAT3:SigmaY_RBV -# % gui, FSCN1.stats.stat3, readback, Sigma XY, S03SIM-EA-FSCN-01:STAT3:SigmaXY_RBV -# Histogram -# % gui, FSCN1.stats.stat3, groupHeading, Histogram -# % gui, FSCN1.stats.stat3, enum, Compute Histogram, S03SIM-EA-FSCN-01:STAT3:ComputeHistogram -# % gui, FSCN1.stats.stat3, statusbits, Compute Histogram, S03SIM-EA-FSCN-01:STAT3:ComputeHistogram_RBV -# % gui, FSCN1.stats.stat3, demand, Histogram Size, S03SIM-EA-FSCN-01:STAT3:HistSize -# % gui, FSCN1.stats.stat3, readback, Histogram Size, S03SIM-EA-FSCN-01:STAT3:HistSize_RBV -# % gui, FSCN1.stats.stat3, demand, Histogram Min, S03SIM-EA-FSCN-01:STAT3:HistMin -# % gui, FSCN1.stats.stat3, readback, Histogram Min, S03SIM-EA-FSCN-01:STAT3:HistMin_RBV -# % gui, FSCN1.stats.stat3, demand, Histogram Max, S03SIM-EA-FSCN-01:STAT3:HistMax -# % gui, FSCN1.stats.stat3, readback, Histogram Max, S03SIM-EA-FSCN-01:STAT3:HistMax_RBV -# % gui, FSCN1.stats.stat3, readback, Histogram Entropy, S03SIM-EA-FSCN-01:STAT3:HistEntropy_RBV -# Profiles -# % gui, FSCN1.stats.stat3, groupHeading, Profiles -# % gui, FSCN1.stats.stat3, enum, Compute Profiles, S03SIM-EA-FSCN-01:STAT3:ComputeProfiles -# % gui, FSCN1.stats.stat3, statusbits, Compute Profiles, S03SIM-EA-FSCN-01:STAT3:ComputeProfiles_RBV -# % gui, FSCN1.stats.stat3, demand, Cursor X, S03SIM-EA-FSCN-01:STAT3:CursorX -# % gui, FSCN1.stats.stat3, readback, Cursor X, S03SIM-EA-FSCN-01:STAT3:CursorX_RBV -# % gui, FSCN1.stats.stat3, demand, Cursor Y, S03SIM-EA-FSCN-01:STAT3:CursorY -# % gui, FSCN1.stats.stat3, readback, Cursor Y, S03SIM-EA-FSCN-01:STAT3:CursorY_RBV -# % gui, FSCN1.stats.stat3, readback, Size X, S03SIM-EA-FSCN-01:STAT3:ProfileSizeX_RBV -# % gui, FSCN1.stats.stat3, readback, Size Y, S03SIM-EA-FSCN-01:STAT3:ProfileSizeY_RBV -# Time series -# % gui, FSCN1.stats.stat3, groupHeading, Time Series -# % gui, FSCN1.stats.stat3, enum, Time Control, S03SIM-EA-FSCN-01:STAT3:TS:TSAcquire -# % gui, FSCN1.stats.stat3, statusbits, Acquiring, S03SIM-EA-FSCN-01:STAT3:TS:TSAcquiring -# % gui, FSCN1.stats.stat3, readback, Current Point, S03SIM-EA-FSCN-01:STAT3:TS:TSCurrentPoint -# % gui, FSCN1.stats.stat3, demand, Number of Points, S03SIM-EA-FSCN-01:STAT3:TS:TSNumPoints -# % gui, FSCN1.stats.stat3, enum, Update, S03SIM-EA-FSCN-01:STAT3:TS:TSRead.SCAN -# Memory -# % gui, FSCN1.stats.stat3, groupHeading, Memory -# % gui, FSCN1.stats.stat3, readback, Max memory, S03SIM-EA-FSCN-01:STAT3:PoolMaxMem -# % gui, FSCN1.stats.stat3, readback, Max buffers, S03SIM-EA-FSCN-01:STAT3:PoolMaxBuffers -# % gui, FSCN1.stats.stat3, readback, Used memory, S03SIM-EA-FSCN-01:STAT3:PoolUsedMem -# % gui, FSCN1.stats.stat3, readback, Allocated buffers, S03SIM-EA-FSCN-01:STAT3:PoolAllocBuffers -# % gui, FSCN1.stats.stat3, readback, Free buffers, S03SIM-EA-FSCN-01:STAT3:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT3:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT3:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT3:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT3:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT3:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT3:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT3:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT3:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:STAT3:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT3:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT3:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT3:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:STAT3:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT3:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT3:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:STAT3:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:STAT3:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-01:STAT3:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:STAT3:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:STAT3:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT3:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-01:STAT3:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-01:STAT3:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:STAT3:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:STAT3:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:STAT3:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:STAT3:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-01:STAT3:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-01:STAT3:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:STAT3:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT3:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:STAT3:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:STAT3:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT3:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT3:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-01:STAT3:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-01:STAT3:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-01:STAT3:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT3:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:STAT3:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-01:STAT3:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT3:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-01:STAT3:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)NDARRAY_PORT") - field(VAL, "FSCN1.rois.roi1") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT3:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT3:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT3:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT3:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:STAT3:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT3:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT3:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:STAT3:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-01:STAT3:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT3:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-01:STAT3:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT3:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT3:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT3:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-01:STAT3:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT3:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT3:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:STAT3:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT3:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:STAT3:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:STAT3:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT3:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:STAT3:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:STAT3:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT3:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:STAT3:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:STAT3:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:STAT3:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT3:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:STAT3:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-01:STAT3:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT3:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT3:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:STAT3:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT3:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT3:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT3:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:STAT3:AsynIO") -{ - field(PORT, "FSCN1.stats.stat3") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records contain the basic statistics # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT3:ComputeStatistics") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)COMPUTE_STATISTICS") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT3:ComputeStatistics_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)COMPUTE_STATISTICS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT3:BgdWidth") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)BGD_WIDTH") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:BgdWidth_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)BGD_WIDTH") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:MinValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)MIN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:MinValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)MIN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:MaxValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)MAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:MaxValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)MAX_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:MeanValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)MEAN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:MeanValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)MEAN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:SigmaValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)SIGMA_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:Sigma_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)SIGMA_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:Total") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:Total_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:Net") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)NET") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:Net_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)NET") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:MinX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)MIN_X") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:MinX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)MIN_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:MinY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)MIN_Y") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:MinY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)MIN_Y") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:MaxX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)MAX_X") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:MaxX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)MAX_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:MaxY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)MAX_Y") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:MaxY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)MAX_Y") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether centroid statistics are computed # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT3:ComputeCentroid") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)COMPUTE_CENTROID") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT3:ComputeCentroid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)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, "S03SIM-EA-FSCN-01:STAT3:CentroidThreshold") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)CENTROID_THRESHOLD") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:CentroidThreshold_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)CENTROID_THRESHOLD") - field(VAL, "0") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:CentroidTotal") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)CENTROID_TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:CentroidTotal_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)CENTROID_TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:CentroidX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)CENTROIDX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:CentroidX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)CENTROIDX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:CentroidY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)CENTROIDY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:CentroidY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)CENTROIDY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:SigmaX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)SIGMAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:SigmaX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)SIGMAX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:SigmaY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)SIGMAY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:SigmaY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)SIGMAY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:SigmaXY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)SIGMAXY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:SigmaXY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)SIGMAXY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:SkewX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)SKEWX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:SkewX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)SKEWX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:SkewY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)SKEWY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:SkewY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)SKEWY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:KurtosisX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)KURTOSISX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:KurtosisX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)KURTOSISX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:KurtosisY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)KURTOSISY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:KurtosisY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)KURTOSISY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:Eccentricity") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)ECCENTRICITY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:Eccentricity_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)ECCENTRICITY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:Orientation") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)ORIENTATION_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:Orientation_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)ORIENTATION_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control time series # -################################################################### -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSMinValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,0,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSMinX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,1,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSMinY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,2,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSMaxValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,3,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSMaxX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,4,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSMaxY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,5,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSMeanValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,6,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSSigma") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,7,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,8,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSNet") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,9,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSCentroidTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,10,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSCentroidX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,11,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSCentroidY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,12,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSSigmaX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,13,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSSigmaY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,14,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSSigmaXY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,15,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSSkewX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,16,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSSkewY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,17,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSKurtosisX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,18,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSKurtosisY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,19,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSEccentricity") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,20,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSOrientation") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,21,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:TSTimestamp") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3_TS,22,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control profiles # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT3:ComputeProfiles") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)COMPUTE_PROFILES") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT3:ComputeProfiles_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)COMPUTE_PROFILES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ProfileSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)PROFILE_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:ProfileSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)PROFILE_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT3:CursorX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)CURSOR_X") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:CursorX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)CURSOR_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT3:CursorY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)CURSOR_Y") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:CursorY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)CURSOR_Y") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:CursorVal") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)CURSOR_VAL") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:ProfileAverageX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)PROFILE_AVERAGE_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:ProfileAverageY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)PROFILE_AVERAGE_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:ProfileThresholdX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)PROFILE_THRESHOLD_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:ProfileThresholdY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)PROFILE_THRESHOLD_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:ProfileCentroidX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)PROFILE_CENTROID_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:ProfileCentroidY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)PROFILE_CENTROID_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:ProfileCursorX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)PROFILE_CURSOR_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:ProfileCursorY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)PROFILE_CURSOR_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These are used to define the histogram # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT3:ComputeHistogram") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)COMPUTE_HISTOGRAM") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT3:ComputeHistogram_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)COMPUTE_HISTOGRAM") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT3:HistSize") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)HIST_SIZE") - field(VAL, "256") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:HistSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)HIST_SIZE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:HistMin") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)HIST_MIN") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:HistMin_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)HIST_MIN") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:HistMax") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)HIST_MAX") - field(VAL, "255") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:HistMax_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)HIST_MAX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT3:HistBelow") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)HIST_BELOW") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:HistBelow_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)HIST_BELOW") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT3:HistAbove") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)HIST_ABOVE") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:HistAbove_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)HIST_ABOVE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT3:HistEntropy") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat3,0,1)HIST_ENTROPY") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT3:HistEntropy_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)HIST_ENTROPY") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:Histogram_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)HIST_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT3:HistogramX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat3,0,1)HIST_X_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - 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, "S03SIM-EA-FSCN-01:STAT3:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:ProfileSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:STAT3:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:STAT3:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:STAT3:CursorX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT3:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT3:ProfileSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:STAT3:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:STAT3:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:STAT3:CursorY.HOPR NPP") -} - -################################################################### -# These records reset the statistics # -################################################################### -record(sseq, "S03SIM-EA-FSCN-01:STAT3:Reset") -{ - field(LNK1, "S03SIM-EA-FSCN-01:STAT3:MinValue PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:STAT3:MaxValue PP MS") - field(LNK3, "S03SIM-EA-FSCN-01:STAT3:MeanValue PP MS") - field(LNK4, "S03SIM-EA-FSCN-01:STAT3:SigmaValue PP MS") - field(LNK5, "S03SIM-EA-FSCN-01:STAT3:Total PP MS") - field(LNK6, "S03SIM-EA-FSCN-01:STAT3:Net PP MS") - field(LNK7, "S03SIM-EA-FSCN-01:STAT3:MinX PP MS") - field(LNK8, "S03SIM-EA-FSCN-01:STAT3:MinY PP MS") - field(LNK9, "S03SIM-EA-FSCN-01:STAT3:MaxX PP MS") - field(LNKA, "S03SIM-EA-FSCN-01:STAT3:MaxY PP MS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Reset1") -} - -record(sseq, "S03SIM-EA-FSCN-01:STAT3:Reset1") -{ - field(LNK1, "S03SIM-EA-FSCN-01:STAT3:CentroidX PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:STAT3:CentroidY PP MS") - field(LNK3, "S03SIM-EA-FSCN-01:STAT3:SigmaX PP MS") - field(LNK4, "S03SIM-EA-FSCN-01:STAT3:SigmaY PP MS") - field(LNK5, "S03SIM-EA-FSCN-01:STAT3:SigmaXY PP MS") - field(LNK6, "S03SIM-EA-FSCN-01:STAT3:CentroidTotal PP MS") - field(LNK7, "S03SIM-EA-FSCN-01:STAT3:SkewX PP MS") - field(LNK8, "S03SIM-EA-FSCN-01:STAT3:SkewY PP MS") - field(LNK9, "S03SIM-EA-FSCN-01:STAT3:KurtosisX PP MS") - field(LNKA, "S03SIM-EA-FSCN-01:STAT3:KurtosisY PP MS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT3:Reset2") -} - -record(sseq, "S03SIM-EA-FSCN-01:STAT3:Reset2") -{ - field(LNK1, "S03SIM-EA-FSCN-01:STAT3:Eccentricity PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:STAT3:Orientation PP MS") - field(LNK3, "S03SIM-EA-FSCN-01:STAT3:HistBelow PP MS") - field(LNK4, "S03SIM-EA-FSCN-01:STAT3:HistAbove PP MS") - field(LNK5, "S03SIM-EA-FSCN-01:STAT3:HistEntropy PP MS") -} - -#=================================================================# -# Template file: NDStats.template - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, NCHANS, Number of channels -# % macro, XSIZE, x size -# % macro, YSIZE, y size -# % macro, HIST_SIZE, hist size -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Timeout -# % macro, TS_PORT, TS port - -# This associates the template with an edm screen -# % gui, FSCN1.stats.stat4, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-01,R=:STAT4: - -# This associates a BOY screen with the template -# % gui, FSCN1.stats.stat4, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-01, R=:STAT4:, DESC=Statistics -# % gui, FSCN1.stats.stat4, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:STAT4:, DESC=Statistics -# % gui, FSCN1.stats.stat4, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-01, R=:STAT4:, DESC=Statistics - - -# % gui, FSCN1.stats.stat4, groupHeading, Info -# % gui, FSCN1.stats.stat4, readback, Port name, S03SIM-EA-FSCN-01:STAT4:PortName_RBV -# % gui, FSCN1.stats.stat4, readback, Plugin type, S03SIM-EA-FSCN-01:STAT4:PluginType_RBV -# Input -# % gui, FSCN1.stats.stat4, demandString, Input, S03SIM-EA-FSCN-01:STAT4:NDArrayPort -# % gui, FSCN1.stats.stat4, readback, Input, S03SIM-EA-FSCN-01:STAT4:NDArrayPort_RBV - -# % gui, FSCN1.stats.stat4, groupHeading, Callback -# % gui, FSCN1.stats.stat4, enum, Callbacks, S03SIM-EA-FSCN-01:STAT4:EnableCallbacks -# % gui, FSCN1.stats.stat4, statusbits, Callbacks, S03SIM-EA-FSCN-01:STAT4:EnableCallbacks_RBV -# % gui, FSCN1.stats.stat4, demand, Min Callback Time, S03SIM-EA-FSCN-01:STAT4:MinCallbackTime -# % gui, FSCN1.stats.stat4, readback, Min Callback Time, S03SIM-EA-FSCN-01:STAT4:MinCallbackTime_RBV -# % gui, FSCN1.stats.stat4, enum, Block Callbacks, S03SIM-EA-FSCN-01:STAT4:BlockingCallbacks -# % gui, FSCN1.stats.stat4, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:STAT4:BlockingCallbacks_RBV - -# % gui, FSCN1.stats.stat4, groupHeading, Counters -# % gui, FSCN1.stats.stat4, demand, Array Counter, S03SIM-EA-FSCN-01:STAT4:ArrayCounter -# % gui, FSCN1.stats.stat4, readback, Array Counter, S03SIM-EA-FSCN-01:STAT4:ArrayCounter_RBV -# % gui, FSCN1.stats.stat4, readback, Array Rate (fps), S03SIM-EA-FSCN-01:STAT4:ArrayRate_RBV -# % gui, FSCN1.stats.stat4, readback, Queue Use, S03SIM-EA-FSCN-01:STAT4:QueueUse -# % gui, FSCN1.stats.stat4, readback, Queue Size, S03SIM-EA-FSCN-01:STAT4:QueueSize -# % gui, FSCN1.stats.stat4, demand, Dropped Arrays, S03SIM-EA-FSCN-01:STAT4:DroppedArrays -# % gui, FSCN1.stats.stat4, readback, Dropped Arrays, S03SIM-EA-FSCN-01:STAT4:DroppedArrays_RBV - -# % gui, FSCN1.stats.stat4, groupHeading, Array Settings -# % gui, FSCN1.stats.stat4, readback, Num Dimensions, S03SIM-EA-FSCN-01:STAT4:NDimensions_RBV -# % gui, FSCN1.stats.stat4, readback, Dim 0 Size, S03SIM-EA-FSCN-01:STAT4:ArraySize0_RBV -# % gui, FSCN1.stats.stat4, readback, Dim 1 Size, S03SIM-EA-FSCN-01:STAT4:ArraySize1_RBV -# % gui, FSCN1.stats.stat4, readback, Dim 2 Size, S03SIM-EA-FSCN-01:STAT4:ArraySize2_RBV -# % gui, FSCN1.stats.stat4, readback, Input Data Type, S03SIM-EA-FSCN-01:STAT4:DataType_RBV -# % gui, FSCN1.stats.stat4, readback, Colour Mode, S03SIM-EA-FSCN-01:STAT4:ColorMode_RBV -# % gui, FSCN1.stats.stat4, readback, Bayer Pattern, S03SIM-EA-FSCN-01:STAT4:BayerPattern_RBV -# % gui, FSCN1.stats.stat4, readback, Unique id, S03SIM-EA-FSCN-01:STAT4:UniqueId_RBV -# % gui, FSCN1.stats.stat4, readback, Timestamp, S03SIM-EA-FSCN-01:STAT4:TimeStamp_RBV - -# Output -# % gui, FSCN1.stats.stat4, groupHeading, Output -# % gui, FSCN1.stats.stat4, demand, Name, S03SIM-EA-FSCN-01:STAT4:Name -# % gui, FSCN1.stats.stat4, enum, Out data type, S03SIM-EA-FSCN-01:STAT4:DataTypeOut -# % gui, FSCN1.stats.stat4, readback, Out data type, S03SIM-EA-FSCN-01:STAT4:DataTypeOut_RBV -# % gui, FSCN1.stats.stat4, demand, Attributes file, S03SIM-EA-FSCN-01:STAT4:NDAttributesFile - -# Statistics -# % gui, FSCN1.stats.stat4, groupHeading, Statistics -# % gui, FSCN1.stats.stat4, enum, Compute Statistics, S03SIM-EA-FSCN-01:STAT4:ComputeStatistics -# % gui, FSCN1.stats.stat4, statusbits, Compute Statistics, S03SIM-EA-FSCN-01:STAT4:ComputeStatistics_RBV -# % gui, FSCN1.stats.stat4, demand, Background Width, S03SIM-EA-FSCN-01:STAT4:BgdWidth -# % gui, FSCN1.stats.stat4, readback, Background Width, S03SIM-EA-FSCN-01:STAT4:BgdWidth_RBV -# % gui, FSCN1.stats.stat4, readback, Minimum Value, S03SIM-EA-FSCN-01:STAT4:MinValue_RBV -# % gui, FSCN1.stats.stat4, readback, Minimum X, S03SIM-EA-FSCN-01:STAT4:MinX_RBV -# % gui, FSCN1.stats.stat4, readback, Minimum Y, S03SIM-EA-FSCN-01:STAT4:MinY_RBV -# % gui, FSCN1.stats.stat4, readback, Maximum Value, S03SIM-EA-FSCN-01:STAT4:MaxValue_RBV -# % gui, FSCN1.stats.stat4, readback, Maximum X, S03SIM-EA-FSCN-01:STAT4:MaxX_RBV -# % gui, FSCN1.stats.stat4, readback, Maximum Y, S03SIM-EA-FSCN-01:STAT4:MaxY_RBV -# % gui, FSCN1.stats.stat4, readback, Mean Value, S03SIM-EA-FSCN-01:STAT4:MeanValue_RBV -# % gui, FSCN1.stats.stat4, readback, Total, S03SIM-EA-FSCN-01:STAT4:Total_RBV -# % gui, FSCN1.stats.stat4, readback, Sigma, S03SIM-EA-FSCN-01:STAT4:Sigma_RBV -# % gui, FSCN1.stats.stat4, readback, Net, S03SIM-EA-FSCN-01:STAT4:Net_RBV -# Centroid -# % gui, FSCN1.stats.stat4, groupHeading, Centroid -# % gui, FSCN1.stats.stat4, enum, Compute Centroid, S03SIM-EA-FSCN-01:STAT4:ComputeCentroid -# % gui, FSCN1.stats.stat4, statusbits, Compute Centroid, S03SIM-EA-FSCN-01:STAT4:ComputeCentroid_RBV -# % gui, FSCN1.stats.stat4, demand, Threshold, S03SIM-EA-FSCN-01:STAT4:CentroidThreshold -# % gui, FSCN1.stats.stat4, readback, Threshold, S03SIM-EA-FSCN-01:STAT4:CentroidThreshold_RBV -# % gui, FSCN1.stats.stat4, readback, X, S03SIM-EA-FSCN-01:STAT4:CentroidX_RBV -# % gui, FSCN1.stats.stat4, readback, Sigma X, S03SIM-EA-FSCN-01:STAT4:SigmaX_RBV -# % gui, FSCN1.stats.stat4, readback, Y, S03SIM-EA-FSCN-01:STAT4:CentroidY_RBV -# % gui, FSCN1.stats.stat4, readback, Sigma Y, S03SIM-EA-FSCN-01:STAT4:SigmaY_RBV -# % gui, FSCN1.stats.stat4, readback, Sigma XY, S03SIM-EA-FSCN-01:STAT4:SigmaXY_RBV -# Histogram -# % gui, FSCN1.stats.stat4, groupHeading, Histogram -# % gui, FSCN1.stats.stat4, enum, Compute Histogram, S03SIM-EA-FSCN-01:STAT4:ComputeHistogram -# % gui, FSCN1.stats.stat4, statusbits, Compute Histogram, S03SIM-EA-FSCN-01:STAT4:ComputeHistogram_RBV -# % gui, FSCN1.stats.stat4, demand, Histogram Size, S03SIM-EA-FSCN-01:STAT4:HistSize -# % gui, FSCN1.stats.stat4, readback, Histogram Size, S03SIM-EA-FSCN-01:STAT4:HistSize_RBV -# % gui, FSCN1.stats.stat4, demand, Histogram Min, S03SIM-EA-FSCN-01:STAT4:HistMin -# % gui, FSCN1.stats.stat4, readback, Histogram Min, S03SIM-EA-FSCN-01:STAT4:HistMin_RBV -# % gui, FSCN1.stats.stat4, demand, Histogram Max, S03SIM-EA-FSCN-01:STAT4:HistMax -# % gui, FSCN1.stats.stat4, readback, Histogram Max, S03SIM-EA-FSCN-01:STAT4:HistMax_RBV -# % gui, FSCN1.stats.stat4, readback, Histogram Entropy, S03SIM-EA-FSCN-01:STAT4:HistEntropy_RBV -# Profiles -# % gui, FSCN1.stats.stat4, groupHeading, Profiles -# % gui, FSCN1.stats.stat4, enum, Compute Profiles, S03SIM-EA-FSCN-01:STAT4:ComputeProfiles -# % gui, FSCN1.stats.stat4, statusbits, Compute Profiles, S03SIM-EA-FSCN-01:STAT4:ComputeProfiles_RBV -# % gui, FSCN1.stats.stat4, demand, Cursor X, S03SIM-EA-FSCN-01:STAT4:CursorX -# % gui, FSCN1.stats.stat4, readback, Cursor X, S03SIM-EA-FSCN-01:STAT4:CursorX_RBV -# % gui, FSCN1.stats.stat4, demand, Cursor Y, S03SIM-EA-FSCN-01:STAT4:CursorY -# % gui, FSCN1.stats.stat4, readback, Cursor Y, S03SIM-EA-FSCN-01:STAT4:CursorY_RBV -# % gui, FSCN1.stats.stat4, readback, Size X, S03SIM-EA-FSCN-01:STAT4:ProfileSizeX_RBV -# % gui, FSCN1.stats.stat4, readback, Size Y, S03SIM-EA-FSCN-01:STAT4:ProfileSizeY_RBV -# Time series -# % gui, FSCN1.stats.stat4, groupHeading, Time Series -# % gui, FSCN1.stats.stat4, enum, Time Control, S03SIM-EA-FSCN-01:STAT4:TS:TSAcquire -# % gui, FSCN1.stats.stat4, statusbits, Acquiring, S03SIM-EA-FSCN-01:STAT4:TS:TSAcquiring -# % gui, FSCN1.stats.stat4, readback, Current Point, S03SIM-EA-FSCN-01:STAT4:TS:TSCurrentPoint -# % gui, FSCN1.stats.stat4, demand, Number of Points, S03SIM-EA-FSCN-01:STAT4:TS:TSNumPoints -# % gui, FSCN1.stats.stat4, enum, Update, S03SIM-EA-FSCN-01:STAT4:TS:TSRead.SCAN -# Memory -# % gui, FSCN1.stats.stat4, groupHeading, Memory -# % gui, FSCN1.stats.stat4, readback, Max memory, S03SIM-EA-FSCN-01:STAT4:PoolMaxMem -# % gui, FSCN1.stats.stat4, readback, Max buffers, S03SIM-EA-FSCN-01:STAT4:PoolMaxBuffers -# % gui, FSCN1.stats.stat4, readback, Used memory, S03SIM-EA-FSCN-01:STAT4:PoolUsedMem -# % gui, FSCN1.stats.stat4, readback, Allocated buffers, S03SIM-EA-FSCN-01:STAT4:PoolAllocBuffers -# % gui, FSCN1.stats.stat4, readback, Free buffers, S03SIM-EA-FSCN-01:STAT4:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT4:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT4:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT4:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT4:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT4:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT4:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT4:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT4:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:STAT4:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT4:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT4:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT4:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:STAT4:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT4:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT4:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:STAT4:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:STAT4:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-01:STAT4:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:STAT4:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:STAT4:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT4:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-01:STAT4:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-01:STAT4:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:STAT4:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:STAT4:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:STAT4:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:STAT4:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-01:STAT4:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-01:STAT4:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:STAT4:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT4:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:STAT4:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:STAT4:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT4:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT4:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-01:STAT4:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-01:STAT4:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-01:STAT4:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT4:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:STAT4:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-01:STAT4:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT4:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-01:STAT4:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)NDARRAY_PORT") - field(VAL, "FSCN1.rois.roi1") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT4:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT4:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT4:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT4:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:STAT4:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT4:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT4:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:STAT4:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-01:STAT4:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT4:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-01:STAT4:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT4:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT4:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT4:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-01:STAT4:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT4:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT4:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:STAT4:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT4:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:STAT4:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:STAT4:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT4:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:STAT4:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:STAT4:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT4:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:STAT4:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:STAT4:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:STAT4:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT4:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:STAT4:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-01:STAT4:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT4:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT4:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:STAT4:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT4:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT4:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT4:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:STAT4:AsynIO") -{ - field(PORT, "FSCN1.stats.stat4") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records contain the basic statistics # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT4:ComputeStatistics") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)COMPUTE_STATISTICS") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT4:ComputeStatistics_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)COMPUTE_STATISTICS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT4:BgdWidth") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)BGD_WIDTH") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:BgdWidth_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)BGD_WIDTH") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:MinValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)MIN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:MinValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)MIN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:MaxValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)MAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:MaxValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)MAX_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:MeanValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)MEAN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:MeanValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)MEAN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:SigmaValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)SIGMA_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:Sigma_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)SIGMA_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:Total") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:Total_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:Net") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)NET") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:Net_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)NET") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:MinX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)MIN_X") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:MinX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)MIN_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:MinY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)MIN_Y") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:MinY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)MIN_Y") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:MaxX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)MAX_X") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:MaxX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)MAX_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:MaxY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)MAX_Y") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:MaxY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)MAX_Y") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether centroid statistics are computed # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT4:ComputeCentroid") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)COMPUTE_CENTROID") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT4:ComputeCentroid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)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, "S03SIM-EA-FSCN-01:STAT4:CentroidThreshold") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)CENTROID_THRESHOLD") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:CentroidThreshold_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)CENTROID_THRESHOLD") - field(VAL, "0") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:CentroidTotal") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)CENTROID_TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:CentroidTotal_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)CENTROID_TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:CentroidX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)CENTROIDX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:CentroidX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)CENTROIDX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:CentroidY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)CENTROIDY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:CentroidY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)CENTROIDY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:SigmaX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)SIGMAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:SigmaX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)SIGMAX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:SigmaY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)SIGMAY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:SigmaY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)SIGMAY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:SigmaXY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)SIGMAXY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:SigmaXY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)SIGMAXY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:SkewX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)SKEWX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:SkewX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)SKEWX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:SkewY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)SKEWY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:SkewY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)SKEWY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:KurtosisX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)KURTOSISX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:KurtosisX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)KURTOSISX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:KurtosisY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)KURTOSISY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:KurtosisY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)KURTOSISY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:Eccentricity") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)ECCENTRICITY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:Eccentricity_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)ECCENTRICITY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:Orientation") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)ORIENTATION_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:Orientation_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)ORIENTATION_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control time series # -################################################################### -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSMinValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,0,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSMinX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,1,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSMinY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,2,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSMaxValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,3,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSMaxX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,4,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSMaxY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,5,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSMeanValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,6,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSSigma") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,7,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,8,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSNet") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,9,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSCentroidTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,10,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSCentroidX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,11,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSCentroidY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,12,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSSigmaX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,13,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSSigmaY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,14,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSSigmaXY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,15,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSSkewX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,16,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSSkewY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,17,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSKurtosisX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,18,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSKurtosisY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,19,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSEccentricity") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,20,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSOrientation") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,21,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:TSTimestamp") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4_TS,22,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control profiles # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT4:ComputeProfiles") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)COMPUTE_PROFILES") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT4:ComputeProfiles_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)COMPUTE_PROFILES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ProfileSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)PROFILE_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:ProfileSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)PROFILE_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT4:CursorX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)CURSOR_X") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:CursorX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)CURSOR_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT4:CursorY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)CURSOR_Y") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:CursorY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)CURSOR_Y") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:CursorVal") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)CURSOR_VAL") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:ProfileAverageX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)PROFILE_AVERAGE_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:ProfileAverageY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)PROFILE_AVERAGE_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:ProfileThresholdX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)PROFILE_THRESHOLD_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:ProfileThresholdY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)PROFILE_THRESHOLD_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:ProfileCentroidX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)PROFILE_CENTROID_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:ProfileCentroidY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)PROFILE_CENTROID_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:ProfileCursorX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)PROFILE_CURSOR_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:ProfileCursorY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)PROFILE_CURSOR_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These are used to define the histogram # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT4:ComputeHistogram") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)COMPUTE_HISTOGRAM") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT4:ComputeHistogram_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)COMPUTE_HISTOGRAM") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT4:HistSize") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)HIST_SIZE") - field(VAL, "256") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:HistSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)HIST_SIZE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:HistMin") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)HIST_MIN") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:HistMin_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)HIST_MIN") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:HistMax") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)HIST_MAX") - field(VAL, "255") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:HistMax_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)HIST_MAX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT4:HistBelow") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)HIST_BELOW") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:HistBelow_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)HIST_BELOW") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT4:HistAbove") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)HIST_ABOVE") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:HistAbove_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)HIST_ABOVE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT4:HistEntropy") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat4,0,1)HIST_ENTROPY") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT4:HistEntropy_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)HIST_ENTROPY") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:Histogram_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)HIST_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT4:HistogramX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat4,0,1)HIST_X_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - 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, "S03SIM-EA-FSCN-01:STAT4:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:ProfileSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:STAT4:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:STAT4:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:STAT4:CursorX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT4:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT4:ProfileSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:STAT4:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:STAT4:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:STAT4:CursorY.HOPR NPP") -} - -################################################################### -# These records reset the statistics # -################################################################### -record(sseq, "S03SIM-EA-FSCN-01:STAT4:Reset") -{ - field(LNK1, "S03SIM-EA-FSCN-01:STAT4:MinValue PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:STAT4:MaxValue PP MS") - field(LNK3, "S03SIM-EA-FSCN-01:STAT4:MeanValue PP MS") - field(LNK4, "S03SIM-EA-FSCN-01:STAT4:SigmaValue PP MS") - field(LNK5, "S03SIM-EA-FSCN-01:STAT4:Total PP MS") - field(LNK6, "S03SIM-EA-FSCN-01:STAT4:Net PP MS") - field(LNK7, "S03SIM-EA-FSCN-01:STAT4:MinX PP MS") - field(LNK8, "S03SIM-EA-FSCN-01:STAT4:MinY PP MS") - field(LNK9, "S03SIM-EA-FSCN-01:STAT4:MaxX PP MS") - field(LNKA, "S03SIM-EA-FSCN-01:STAT4:MaxY PP MS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Reset1") -} - -record(sseq, "S03SIM-EA-FSCN-01:STAT4:Reset1") -{ - field(LNK1, "S03SIM-EA-FSCN-01:STAT4:CentroidX PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:STAT4:CentroidY PP MS") - field(LNK3, "S03SIM-EA-FSCN-01:STAT4:SigmaX PP MS") - field(LNK4, "S03SIM-EA-FSCN-01:STAT4:SigmaY PP MS") - field(LNK5, "S03SIM-EA-FSCN-01:STAT4:SigmaXY PP MS") - field(LNK6, "S03SIM-EA-FSCN-01:STAT4:CentroidTotal PP MS") - field(LNK7, "S03SIM-EA-FSCN-01:STAT4:SkewX PP MS") - field(LNK8, "S03SIM-EA-FSCN-01:STAT4:SkewY PP MS") - field(LNK9, "S03SIM-EA-FSCN-01:STAT4:KurtosisX PP MS") - field(LNKA, "S03SIM-EA-FSCN-01:STAT4:KurtosisY PP MS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT4:Reset2") -} - -record(sseq, "S03SIM-EA-FSCN-01:STAT4:Reset2") -{ - field(LNK1, "S03SIM-EA-FSCN-01:STAT4:Eccentricity PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:STAT4:Orientation PP MS") - field(LNK3, "S03SIM-EA-FSCN-01:STAT4:HistBelow PP MS") - field(LNK4, "S03SIM-EA-FSCN-01:STAT4:HistAbove PP MS") - field(LNK5, "S03SIM-EA-FSCN-01:STAT4:HistEntropy PP MS") -} - -#=================================================================# -# Template file: NDStats.template - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, NCHANS, Number of channels -# % macro, XSIZE, x size -# % macro, YSIZE, y size -# % macro, HIST_SIZE, hist size -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Timeout -# % macro, TS_PORT, TS port - -# This associates the template with an edm screen -# % gui, FSCN1.stats.stat5, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-01,R=:STAT5: - -# This associates a BOY screen with the template -# % gui, FSCN1.stats.stat5, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-01, R=:STAT5:, DESC=Statistics -# % gui, FSCN1.stats.stat5, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:STAT5:, DESC=Statistics -# % gui, FSCN1.stats.stat5, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-01, R=:STAT5:, DESC=Statistics - - -# % gui, FSCN1.stats.stat5, groupHeading, Info -# % gui, FSCN1.stats.stat5, readback, Port name, S03SIM-EA-FSCN-01:STAT5:PortName_RBV -# % gui, FSCN1.stats.stat5, readback, Plugin type, S03SIM-EA-FSCN-01:STAT5:PluginType_RBV -# Input -# % gui, FSCN1.stats.stat5, demandString, Input, S03SIM-EA-FSCN-01:STAT5:NDArrayPort -# % gui, FSCN1.stats.stat5, readback, Input, S03SIM-EA-FSCN-01:STAT5:NDArrayPort_RBV - -# % gui, FSCN1.stats.stat5, groupHeading, Callback -# % gui, FSCN1.stats.stat5, enum, Callbacks, S03SIM-EA-FSCN-01:STAT5:EnableCallbacks -# % gui, FSCN1.stats.stat5, statusbits, Callbacks, S03SIM-EA-FSCN-01:STAT5:EnableCallbacks_RBV -# % gui, FSCN1.stats.stat5, demand, Min Callback Time, S03SIM-EA-FSCN-01:STAT5:MinCallbackTime -# % gui, FSCN1.stats.stat5, readback, Min Callback Time, S03SIM-EA-FSCN-01:STAT5:MinCallbackTime_RBV -# % gui, FSCN1.stats.stat5, enum, Block Callbacks, S03SIM-EA-FSCN-01:STAT5:BlockingCallbacks -# % gui, FSCN1.stats.stat5, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:STAT5:BlockingCallbacks_RBV - -# % gui, FSCN1.stats.stat5, groupHeading, Counters -# % gui, FSCN1.stats.stat5, demand, Array Counter, S03SIM-EA-FSCN-01:STAT5:ArrayCounter -# % gui, FSCN1.stats.stat5, readback, Array Counter, S03SIM-EA-FSCN-01:STAT5:ArrayCounter_RBV -# % gui, FSCN1.stats.stat5, readback, Array Rate (fps), S03SIM-EA-FSCN-01:STAT5:ArrayRate_RBV -# % gui, FSCN1.stats.stat5, readback, Queue Use, S03SIM-EA-FSCN-01:STAT5:QueueUse -# % gui, FSCN1.stats.stat5, readback, Queue Size, S03SIM-EA-FSCN-01:STAT5:QueueSize -# % gui, FSCN1.stats.stat5, demand, Dropped Arrays, S03SIM-EA-FSCN-01:STAT5:DroppedArrays -# % gui, FSCN1.stats.stat5, readback, Dropped Arrays, S03SIM-EA-FSCN-01:STAT5:DroppedArrays_RBV - -# % gui, FSCN1.stats.stat5, groupHeading, Array Settings -# % gui, FSCN1.stats.stat5, readback, Num Dimensions, S03SIM-EA-FSCN-01:STAT5:NDimensions_RBV -# % gui, FSCN1.stats.stat5, readback, Dim 0 Size, S03SIM-EA-FSCN-01:STAT5:ArraySize0_RBV -# % gui, FSCN1.stats.stat5, readback, Dim 1 Size, S03SIM-EA-FSCN-01:STAT5:ArraySize1_RBV -# % gui, FSCN1.stats.stat5, readback, Dim 2 Size, S03SIM-EA-FSCN-01:STAT5:ArraySize2_RBV -# % gui, FSCN1.stats.stat5, readback, Input Data Type, S03SIM-EA-FSCN-01:STAT5:DataType_RBV -# % gui, FSCN1.stats.stat5, readback, Colour Mode, S03SIM-EA-FSCN-01:STAT5:ColorMode_RBV -# % gui, FSCN1.stats.stat5, readback, Bayer Pattern, S03SIM-EA-FSCN-01:STAT5:BayerPattern_RBV -# % gui, FSCN1.stats.stat5, readback, Unique id, S03SIM-EA-FSCN-01:STAT5:UniqueId_RBV -# % gui, FSCN1.stats.stat5, readback, Timestamp, S03SIM-EA-FSCN-01:STAT5:TimeStamp_RBV - -# Output -# % gui, FSCN1.stats.stat5, groupHeading, Output -# % gui, FSCN1.stats.stat5, demand, Name, S03SIM-EA-FSCN-01:STAT5:Name -# % gui, FSCN1.stats.stat5, enum, Out data type, S03SIM-EA-FSCN-01:STAT5:DataTypeOut -# % gui, FSCN1.stats.stat5, readback, Out data type, S03SIM-EA-FSCN-01:STAT5:DataTypeOut_RBV -# % gui, FSCN1.stats.stat5, demand, Attributes file, S03SIM-EA-FSCN-01:STAT5:NDAttributesFile - -# Statistics -# % gui, FSCN1.stats.stat5, groupHeading, Statistics -# % gui, FSCN1.stats.stat5, enum, Compute Statistics, S03SIM-EA-FSCN-01:STAT5:ComputeStatistics -# % gui, FSCN1.stats.stat5, statusbits, Compute Statistics, S03SIM-EA-FSCN-01:STAT5:ComputeStatistics_RBV -# % gui, FSCN1.stats.stat5, demand, Background Width, S03SIM-EA-FSCN-01:STAT5:BgdWidth -# % gui, FSCN1.stats.stat5, readback, Background Width, S03SIM-EA-FSCN-01:STAT5:BgdWidth_RBV -# % gui, FSCN1.stats.stat5, readback, Minimum Value, S03SIM-EA-FSCN-01:STAT5:MinValue_RBV -# % gui, FSCN1.stats.stat5, readback, Minimum X, S03SIM-EA-FSCN-01:STAT5:MinX_RBV -# % gui, FSCN1.stats.stat5, readback, Minimum Y, S03SIM-EA-FSCN-01:STAT5:MinY_RBV -# % gui, FSCN1.stats.stat5, readback, Maximum Value, S03SIM-EA-FSCN-01:STAT5:MaxValue_RBV -# % gui, FSCN1.stats.stat5, readback, Maximum X, S03SIM-EA-FSCN-01:STAT5:MaxX_RBV -# % gui, FSCN1.stats.stat5, readback, Maximum Y, S03SIM-EA-FSCN-01:STAT5:MaxY_RBV -# % gui, FSCN1.stats.stat5, readback, Mean Value, S03SIM-EA-FSCN-01:STAT5:MeanValue_RBV -# % gui, FSCN1.stats.stat5, readback, Total, S03SIM-EA-FSCN-01:STAT5:Total_RBV -# % gui, FSCN1.stats.stat5, readback, Sigma, S03SIM-EA-FSCN-01:STAT5:Sigma_RBV -# % gui, FSCN1.stats.stat5, readback, Net, S03SIM-EA-FSCN-01:STAT5:Net_RBV -# Centroid -# % gui, FSCN1.stats.stat5, groupHeading, Centroid -# % gui, FSCN1.stats.stat5, enum, Compute Centroid, S03SIM-EA-FSCN-01:STAT5:ComputeCentroid -# % gui, FSCN1.stats.stat5, statusbits, Compute Centroid, S03SIM-EA-FSCN-01:STAT5:ComputeCentroid_RBV -# % gui, FSCN1.stats.stat5, demand, Threshold, S03SIM-EA-FSCN-01:STAT5:CentroidThreshold -# % gui, FSCN1.stats.stat5, readback, Threshold, S03SIM-EA-FSCN-01:STAT5:CentroidThreshold_RBV -# % gui, FSCN1.stats.stat5, readback, X, S03SIM-EA-FSCN-01:STAT5:CentroidX_RBV -# % gui, FSCN1.stats.stat5, readback, Sigma X, S03SIM-EA-FSCN-01:STAT5:SigmaX_RBV -# % gui, FSCN1.stats.stat5, readback, Y, S03SIM-EA-FSCN-01:STAT5:CentroidY_RBV -# % gui, FSCN1.stats.stat5, readback, Sigma Y, S03SIM-EA-FSCN-01:STAT5:SigmaY_RBV -# % gui, FSCN1.stats.stat5, readback, Sigma XY, S03SIM-EA-FSCN-01:STAT5:SigmaXY_RBV -# Histogram -# % gui, FSCN1.stats.stat5, groupHeading, Histogram -# % gui, FSCN1.stats.stat5, enum, Compute Histogram, S03SIM-EA-FSCN-01:STAT5:ComputeHistogram -# % gui, FSCN1.stats.stat5, statusbits, Compute Histogram, S03SIM-EA-FSCN-01:STAT5:ComputeHistogram_RBV -# % gui, FSCN1.stats.stat5, demand, Histogram Size, S03SIM-EA-FSCN-01:STAT5:HistSize -# % gui, FSCN1.stats.stat5, readback, Histogram Size, S03SIM-EA-FSCN-01:STAT5:HistSize_RBV -# % gui, FSCN1.stats.stat5, demand, Histogram Min, S03SIM-EA-FSCN-01:STAT5:HistMin -# % gui, FSCN1.stats.stat5, readback, Histogram Min, S03SIM-EA-FSCN-01:STAT5:HistMin_RBV -# % gui, FSCN1.stats.stat5, demand, Histogram Max, S03SIM-EA-FSCN-01:STAT5:HistMax -# % gui, FSCN1.stats.stat5, readback, Histogram Max, S03SIM-EA-FSCN-01:STAT5:HistMax_RBV -# % gui, FSCN1.stats.stat5, readback, Histogram Entropy, S03SIM-EA-FSCN-01:STAT5:HistEntropy_RBV -# Profiles -# % gui, FSCN1.stats.stat5, groupHeading, Profiles -# % gui, FSCN1.stats.stat5, enum, Compute Profiles, S03SIM-EA-FSCN-01:STAT5:ComputeProfiles -# % gui, FSCN1.stats.stat5, statusbits, Compute Profiles, S03SIM-EA-FSCN-01:STAT5:ComputeProfiles_RBV -# % gui, FSCN1.stats.stat5, demand, Cursor X, S03SIM-EA-FSCN-01:STAT5:CursorX -# % gui, FSCN1.stats.stat5, readback, Cursor X, S03SIM-EA-FSCN-01:STAT5:CursorX_RBV -# % gui, FSCN1.stats.stat5, demand, Cursor Y, S03SIM-EA-FSCN-01:STAT5:CursorY -# % gui, FSCN1.stats.stat5, readback, Cursor Y, S03SIM-EA-FSCN-01:STAT5:CursorY_RBV -# % gui, FSCN1.stats.stat5, readback, Size X, S03SIM-EA-FSCN-01:STAT5:ProfileSizeX_RBV -# % gui, FSCN1.stats.stat5, readback, Size Y, S03SIM-EA-FSCN-01:STAT5:ProfileSizeY_RBV -# Time series -# % gui, FSCN1.stats.stat5, groupHeading, Time Series -# % gui, FSCN1.stats.stat5, enum, Time Control, S03SIM-EA-FSCN-01:STAT5:TS:TSAcquire -# % gui, FSCN1.stats.stat5, statusbits, Acquiring, S03SIM-EA-FSCN-01:STAT5:TS:TSAcquiring -# % gui, FSCN1.stats.stat5, readback, Current Point, S03SIM-EA-FSCN-01:STAT5:TS:TSCurrentPoint -# % gui, FSCN1.stats.stat5, demand, Number of Points, S03SIM-EA-FSCN-01:STAT5:TS:TSNumPoints -# % gui, FSCN1.stats.stat5, enum, Update, S03SIM-EA-FSCN-01:STAT5:TS:TSRead.SCAN -# Memory -# % gui, FSCN1.stats.stat5, groupHeading, Memory -# % gui, FSCN1.stats.stat5, readback, Max memory, S03SIM-EA-FSCN-01:STAT5:PoolMaxMem -# % gui, FSCN1.stats.stat5, readback, Max buffers, S03SIM-EA-FSCN-01:STAT5:PoolMaxBuffers -# % gui, FSCN1.stats.stat5, readback, Used memory, S03SIM-EA-FSCN-01:STAT5:PoolUsedMem -# % gui, FSCN1.stats.stat5, readback, Allocated buffers, S03SIM-EA-FSCN-01:STAT5:PoolAllocBuffers -# % gui, FSCN1.stats.stat5, readback, Free buffers, S03SIM-EA-FSCN-01:STAT5:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT5:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT5:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT5:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT5:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT5:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT5:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT5:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT5:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:STAT5:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT5:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT5:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT5:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:STAT5:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT5:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT5:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:STAT5:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:STAT5:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-01:STAT5:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:STAT5:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:STAT5:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT5:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-01:STAT5:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-01:STAT5:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:STAT5:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:STAT5:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:STAT5:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:STAT5:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-01:STAT5:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-01:STAT5:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:STAT5:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT5:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:STAT5:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:STAT5:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT5:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT5:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-01:STAT5:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-01:STAT5:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-01:STAT5:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT5:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:STAT5:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-01:STAT5:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT5:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-01:STAT5:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)NDARRAY_PORT") - field(VAL, "FSCN1.rois.roi1") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT5:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT5:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT5:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT5:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:STAT5:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT5:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT5:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:STAT5:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-01:STAT5:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT5:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-01:STAT5:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT5:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT5:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT5:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-01:STAT5:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT5:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT5:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:STAT5:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT5:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:STAT5:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:STAT5:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT5:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:STAT5:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:STAT5:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT5:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:STAT5:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:STAT5:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:STAT5:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT5:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:STAT5:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-01:STAT5:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT5:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT5:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:STAT5:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT5:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT5:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT5:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:STAT5:AsynIO") -{ - field(PORT, "FSCN1.stats.stat5") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records contain the basic statistics # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT5:ComputeStatistics") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)COMPUTE_STATISTICS") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT5:ComputeStatistics_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)COMPUTE_STATISTICS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT5:BgdWidth") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)BGD_WIDTH") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:BgdWidth_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)BGD_WIDTH") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:MinValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)MIN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:MinValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)MIN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:MaxValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)MAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:MaxValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)MAX_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:MeanValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)MEAN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:MeanValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)MEAN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:SigmaValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)SIGMA_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:Sigma_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)SIGMA_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:Total") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:Total_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:Net") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)NET") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:Net_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)NET") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:MinX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)MIN_X") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:MinX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)MIN_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:MinY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)MIN_Y") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:MinY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)MIN_Y") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:MaxX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)MAX_X") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:MaxX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)MAX_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:MaxY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)MAX_Y") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:MaxY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)MAX_Y") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether centroid statistics are computed # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT5:ComputeCentroid") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)COMPUTE_CENTROID") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT5:ComputeCentroid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)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, "S03SIM-EA-FSCN-01:STAT5:CentroidThreshold") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)CENTROID_THRESHOLD") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:CentroidThreshold_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)CENTROID_THRESHOLD") - field(VAL, "0") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:CentroidTotal") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)CENTROID_TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:CentroidTotal_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)CENTROID_TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:CentroidX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)CENTROIDX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:CentroidX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)CENTROIDX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:CentroidY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)CENTROIDY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:CentroidY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)CENTROIDY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:SigmaX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)SIGMAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:SigmaX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)SIGMAX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:SigmaY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)SIGMAY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:SigmaY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)SIGMAY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:SigmaXY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)SIGMAXY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:SigmaXY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)SIGMAXY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:SkewX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)SKEWX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:SkewX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)SKEWX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:SkewY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)SKEWY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:SkewY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)SKEWY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:KurtosisX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)KURTOSISX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:KurtosisX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)KURTOSISX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:KurtosisY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)KURTOSISY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:KurtosisY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)KURTOSISY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:Eccentricity") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)ECCENTRICITY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:Eccentricity_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)ECCENTRICITY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:Orientation") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)ORIENTATION_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:Orientation_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)ORIENTATION_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control time series # -################################################################### -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSMinValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,0,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSMinX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,1,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSMinY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,2,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSMaxValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,3,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSMaxX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,4,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSMaxY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,5,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSMeanValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,6,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSSigma") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,7,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,8,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSNet") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,9,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSCentroidTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,10,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSCentroidX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,11,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSCentroidY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,12,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSSigmaX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,13,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSSigmaY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,14,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSSigmaXY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,15,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSSkewX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,16,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSSkewY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,17,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSKurtosisX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,18,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSKurtosisY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,19,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSEccentricity") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,20,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSOrientation") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,21,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:TSTimestamp") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5_TS,22,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control profiles # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT5:ComputeProfiles") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)COMPUTE_PROFILES") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT5:ComputeProfiles_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)COMPUTE_PROFILES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ProfileSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)PROFILE_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:ProfileSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)PROFILE_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT5:CursorX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)CURSOR_X") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:CursorX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)CURSOR_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT5:CursorY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)CURSOR_Y") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:CursorY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)CURSOR_Y") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:CursorVal") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)CURSOR_VAL") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:ProfileAverageX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)PROFILE_AVERAGE_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:ProfileAverageY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)PROFILE_AVERAGE_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:ProfileThresholdX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)PROFILE_THRESHOLD_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:ProfileThresholdY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)PROFILE_THRESHOLD_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:ProfileCentroidX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)PROFILE_CENTROID_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:ProfileCentroidY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)PROFILE_CENTROID_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:ProfileCursorX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)PROFILE_CURSOR_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:ProfileCursorY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)PROFILE_CURSOR_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These are used to define the histogram # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT5:ComputeHistogram") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)COMPUTE_HISTOGRAM") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT5:ComputeHistogram_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)COMPUTE_HISTOGRAM") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT5:HistSize") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)HIST_SIZE") - field(VAL, "256") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:HistSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)HIST_SIZE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:HistMin") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)HIST_MIN") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:HistMin_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)HIST_MIN") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:HistMax") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)HIST_MAX") - field(VAL, "255") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:HistMax_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)HIST_MAX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT5:HistBelow") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)HIST_BELOW") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:HistBelow_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)HIST_BELOW") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT5:HistAbove") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)HIST_ABOVE") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:HistAbove_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)HIST_ABOVE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT5:HistEntropy") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat5,0,1)HIST_ENTROPY") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT5:HistEntropy_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)HIST_ENTROPY") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:Histogram_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)HIST_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT5:HistogramX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat5,0,1)HIST_X_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - 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, "S03SIM-EA-FSCN-01:STAT5:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:ProfileSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:STAT5:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:STAT5:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:STAT5:CursorX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT5:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT5:ProfileSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:STAT5:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:STAT5:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:STAT5:CursorY.HOPR NPP") -} - -################################################################### -# These records reset the statistics # -################################################################### -record(sseq, "S03SIM-EA-FSCN-01:STAT5:Reset") -{ - field(LNK1, "S03SIM-EA-FSCN-01:STAT5:MinValue PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:STAT5:MaxValue PP MS") - field(LNK3, "S03SIM-EA-FSCN-01:STAT5:MeanValue PP MS") - field(LNK4, "S03SIM-EA-FSCN-01:STAT5:SigmaValue PP MS") - field(LNK5, "S03SIM-EA-FSCN-01:STAT5:Total PP MS") - field(LNK6, "S03SIM-EA-FSCN-01:STAT5:Net PP MS") - field(LNK7, "S03SIM-EA-FSCN-01:STAT5:MinX PP MS") - field(LNK8, "S03SIM-EA-FSCN-01:STAT5:MinY PP MS") - field(LNK9, "S03SIM-EA-FSCN-01:STAT5:MaxX PP MS") - field(LNKA, "S03SIM-EA-FSCN-01:STAT5:MaxY PP MS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Reset1") -} - -record(sseq, "S03SIM-EA-FSCN-01:STAT5:Reset1") -{ - field(LNK1, "S03SIM-EA-FSCN-01:STAT5:CentroidX PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:STAT5:CentroidY PP MS") - field(LNK3, "S03SIM-EA-FSCN-01:STAT5:SigmaX PP MS") - field(LNK4, "S03SIM-EA-FSCN-01:STAT5:SigmaY PP MS") - field(LNK5, "S03SIM-EA-FSCN-01:STAT5:SigmaXY PP MS") - field(LNK6, "S03SIM-EA-FSCN-01:STAT5:CentroidTotal PP MS") - field(LNK7, "S03SIM-EA-FSCN-01:STAT5:SkewX PP MS") - field(LNK8, "S03SIM-EA-FSCN-01:STAT5:SkewY PP MS") - field(LNK9, "S03SIM-EA-FSCN-01:STAT5:KurtosisX PP MS") - field(LNKA, "S03SIM-EA-FSCN-01:STAT5:KurtosisY PP MS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT5:Reset2") -} - -record(sseq, "S03SIM-EA-FSCN-01:STAT5:Reset2") -{ - field(LNK1, "S03SIM-EA-FSCN-01:STAT5:Eccentricity PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:STAT5:Orientation PP MS") - field(LNK3, "S03SIM-EA-FSCN-01:STAT5:HistBelow PP MS") - field(LNK4, "S03SIM-EA-FSCN-01:STAT5:HistAbove PP MS") - field(LNK5, "S03SIM-EA-FSCN-01:STAT5:HistEntropy PP MS") -} - -#=================================================================# -# Template file: NDStats.template - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, NCHANS, Number of channels -# % macro, XSIZE, x size -# % macro, YSIZE, y size -# % macro, HIST_SIZE, hist size -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Timeout -# % macro, TS_PORT, TS port - -# This associates the template with an edm screen -# % gui, FSCN1.stats.stat6, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-01,R=:STAT6: - -# This associates a BOY screen with the template -# % gui, FSCN1.stats.stat6, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-01, R=:STAT6:, DESC=Statistics -# % gui, FSCN1.stats.stat6, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:STAT6:, DESC=Statistics -# % gui, FSCN1.stats.stat6, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-01, R=:STAT6:, DESC=Statistics - - -# % gui, FSCN1.stats.stat6, groupHeading, Info -# % gui, FSCN1.stats.stat6, readback, Port name, S03SIM-EA-FSCN-01:STAT6:PortName_RBV -# % gui, FSCN1.stats.stat6, readback, Plugin type, S03SIM-EA-FSCN-01:STAT6:PluginType_RBV -# Input -# % gui, FSCN1.stats.stat6, demandString, Input, S03SIM-EA-FSCN-01:STAT6:NDArrayPort -# % gui, FSCN1.stats.stat6, readback, Input, S03SIM-EA-FSCN-01:STAT6:NDArrayPort_RBV - -# % gui, FSCN1.stats.stat6, groupHeading, Callback -# % gui, FSCN1.stats.stat6, enum, Callbacks, S03SIM-EA-FSCN-01:STAT6:EnableCallbacks -# % gui, FSCN1.stats.stat6, statusbits, Callbacks, S03SIM-EA-FSCN-01:STAT6:EnableCallbacks_RBV -# % gui, FSCN1.stats.stat6, demand, Min Callback Time, S03SIM-EA-FSCN-01:STAT6:MinCallbackTime -# % gui, FSCN1.stats.stat6, readback, Min Callback Time, S03SIM-EA-FSCN-01:STAT6:MinCallbackTime_RBV -# % gui, FSCN1.stats.stat6, enum, Block Callbacks, S03SIM-EA-FSCN-01:STAT6:BlockingCallbacks -# % gui, FSCN1.stats.stat6, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:STAT6:BlockingCallbacks_RBV - -# % gui, FSCN1.stats.stat6, groupHeading, Counters -# % gui, FSCN1.stats.stat6, demand, Array Counter, S03SIM-EA-FSCN-01:STAT6:ArrayCounter -# % gui, FSCN1.stats.stat6, readback, Array Counter, S03SIM-EA-FSCN-01:STAT6:ArrayCounter_RBV -# % gui, FSCN1.stats.stat6, readback, Array Rate (fps), S03SIM-EA-FSCN-01:STAT6:ArrayRate_RBV -# % gui, FSCN1.stats.stat6, readback, Queue Use, S03SIM-EA-FSCN-01:STAT6:QueueUse -# % gui, FSCN1.stats.stat6, readback, Queue Size, S03SIM-EA-FSCN-01:STAT6:QueueSize -# % gui, FSCN1.stats.stat6, demand, Dropped Arrays, S03SIM-EA-FSCN-01:STAT6:DroppedArrays -# % gui, FSCN1.stats.stat6, readback, Dropped Arrays, S03SIM-EA-FSCN-01:STAT6:DroppedArrays_RBV - -# % gui, FSCN1.stats.stat6, groupHeading, Array Settings -# % gui, FSCN1.stats.stat6, readback, Num Dimensions, S03SIM-EA-FSCN-01:STAT6:NDimensions_RBV -# % gui, FSCN1.stats.stat6, readback, Dim 0 Size, S03SIM-EA-FSCN-01:STAT6:ArraySize0_RBV -# % gui, FSCN1.stats.stat6, readback, Dim 1 Size, S03SIM-EA-FSCN-01:STAT6:ArraySize1_RBV -# % gui, FSCN1.stats.stat6, readback, Dim 2 Size, S03SIM-EA-FSCN-01:STAT6:ArraySize2_RBV -# % gui, FSCN1.stats.stat6, readback, Input Data Type, S03SIM-EA-FSCN-01:STAT6:DataType_RBV -# % gui, FSCN1.stats.stat6, readback, Colour Mode, S03SIM-EA-FSCN-01:STAT6:ColorMode_RBV -# % gui, FSCN1.stats.stat6, readback, Bayer Pattern, S03SIM-EA-FSCN-01:STAT6:BayerPattern_RBV -# % gui, FSCN1.stats.stat6, readback, Unique id, S03SIM-EA-FSCN-01:STAT6:UniqueId_RBV -# % gui, FSCN1.stats.stat6, readback, Timestamp, S03SIM-EA-FSCN-01:STAT6:TimeStamp_RBV - -# Output -# % gui, FSCN1.stats.stat6, groupHeading, Output -# % gui, FSCN1.stats.stat6, demand, Name, S03SIM-EA-FSCN-01:STAT6:Name -# % gui, FSCN1.stats.stat6, enum, Out data type, S03SIM-EA-FSCN-01:STAT6:DataTypeOut -# % gui, FSCN1.stats.stat6, readback, Out data type, S03SIM-EA-FSCN-01:STAT6:DataTypeOut_RBV -# % gui, FSCN1.stats.stat6, demand, Attributes file, S03SIM-EA-FSCN-01:STAT6:NDAttributesFile - -# Statistics -# % gui, FSCN1.stats.stat6, groupHeading, Statistics -# % gui, FSCN1.stats.stat6, enum, Compute Statistics, S03SIM-EA-FSCN-01:STAT6:ComputeStatistics -# % gui, FSCN1.stats.stat6, statusbits, Compute Statistics, S03SIM-EA-FSCN-01:STAT6:ComputeStatistics_RBV -# % gui, FSCN1.stats.stat6, demand, Background Width, S03SIM-EA-FSCN-01:STAT6:BgdWidth -# % gui, FSCN1.stats.stat6, readback, Background Width, S03SIM-EA-FSCN-01:STAT6:BgdWidth_RBV -# % gui, FSCN1.stats.stat6, readback, Minimum Value, S03SIM-EA-FSCN-01:STAT6:MinValue_RBV -# % gui, FSCN1.stats.stat6, readback, Minimum X, S03SIM-EA-FSCN-01:STAT6:MinX_RBV -# % gui, FSCN1.stats.stat6, readback, Minimum Y, S03SIM-EA-FSCN-01:STAT6:MinY_RBV -# % gui, FSCN1.stats.stat6, readback, Maximum Value, S03SIM-EA-FSCN-01:STAT6:MaxValue_RBV -# % gui, FSCN1.stats.stat6, readback, Maximum X, S03SIM-EA-FSCN-01:STAT6:MaxX_RBV -# % gui, FSCN1.stats.stat6, readback, Maximum Y, S03SIM-EA-FSCN-01:STAT6:MaxY_RBV -# % gui, FSCN1.stats.stat6, readback, Mean Value, S03SIM-EA-FSCN-01:STAT6:MeanValue_RBV -# % gui, FSCN1.stats.stat6, readback, Total, S03SIM-EA-FSCN-01:STAT6:Total_RBV -# % gui, FSCN1.stats.stat6, readback, Sigma, S03SIM-EA-FSCN-01:STAT6:Sigma_RBV -# % gui, FSCN1.stats.stat6, readback, Net, S03SIM-EA-FSCN-01:STAT6:Net_RBV -# Centroid -# % gui, FSCN1.stats.stat6, groupHeading, Centroid -# % gui, FSCN1.stats.stat6, enum, Compute Centroid, S03SIM-EA-FSCN-01:STAT6:ComputeCentroid -# % gui, FSCN1.stats.stat6, statusbits, Compute Centroid, S03SIM-EA-FSCN-01:STAT6:ComputeCentroid_RBV -# % gui, FSCN1.stats.stat6, demand, Threshold, S03SIM-EA-FSCN-01:STAT6:CentroidThreshold -# % gui, FSCN1.stats.stat6, readback, Threshold, S03SIM-EA-FSCN-01:STAT6:CentroidThreshold_RBV -# % gui, FSCN1.stats.stat6, readback, X, S03SIM-EA-FSCN-01:STAT6:CentroidX_RBV -# % gui, FSCN1.stats.stat6, readback, Sigma X, S03SIM-EA-FSCN-01:STAT6:SigmaX_RBV -# % gui, FSCN1.stats.stat6, readback, Y, S03SIM-EA-FSCN-01:STAT6:CentroidY_RBV -# % gui, FSCN1.stats.stat6, readback, Sigma Y, S03SIM-EA-FSCN-01:STAT6:SigmaY_RBV -# % gui, FSCN1.stats.stat6, readback, Sigma XY, S03SIM-EA-FSCN-01:STAT6:SigmaXY_RBV -# Histogram -# % gui, FSCN1.stats.stat6, groupHeading, Histogram -# % gui, FSCN1.stats.stat6, enum, Compute Histogram, S03SIM-EA-FSCN-01:STAT6:ComputeHistogram -# % gui, FSCN1.stats.stat6, statusbits, Compute Histogram, S03SIM-EA-FSCN-01:STAT6:ComputeHistogram_RBV -# % gui, FSCN1.stats.stat6, demand, Histogram Size, S03SIM-EA-FSCN-01:STAT6:HistSize -# % gui, FSCN1.stats.stat6, readback, Histogram Size, S03SIM-EA-FSCN-01:STAT6:HistSize_RBV -# % gui, FSCN1.stats.stat6, demand, Histogram Min, S03SIM-EA-FSCN-01:STAT6:HistMin -# % gui, FSCN1.stats.stat6, readback, Histogram Min, S03SIM-EA-FSCN-01:STAT6:HistMin_RBV -# % gui, FSCN1.stats.stat6, demand, Histogram Max, S03SIM-EA-FSCN-01:STAT6:HistMax -# % gui, FSCN1.stats.stat6, readback, Histogram Max, S03SIM-EA-FSCN-01:STAT6:HistMax_RBV -# % gui, FSCN1.stats.stat6, readback, Histogram Entropy, S03SIM-EA-FSCN-01:STAT6:HistEntropy_RBV -# Profiles -# % gui, FSCN1.stats.stat6, groupHeading, Profiles -# % gui, FSCN1.stats.stat6, enum, Compute Profiles, S03SIM-EA-FSCN-01:STAT6:ComputeProfiles -# % gui, FSCN1.stats.stat6, statusbits, Compute Profiles, S03SIM-EA-FSCN-01:STAT6:ComputeProfiles_RBV -# % gui, FSCN1.stats.stat6, demand, Cursor X, S03SIM-EA-FSCN-01:STAT6:CursorX -# % gui, FSCN1.stats.stat6, readback, Cursor X, S03SIM-EA-FSCN-01:STAT6:CursorX_RBV -# % gui, FSCN1.stats.stat6, demand, Cursor Y, S03SIM-EA-FSCN-01:STAT6:CursorY -# % gui, FSCN1.stats.stat6, readback, Cursor Y, S03SIM-EA-FSCN-01:STAT6:CursorY_RBV -# % gui, FSCN1.stats.stat6, readback, Size X, S03SIM-EA-FSCN-01:STAT6:ProfileSizeX_RBV -# % gui, FSCN1.stats.stat6, readback, Size Y, S03SIM-EA-FSCN-01:STAT6:ProfileSizeY_RBV -# Time series -# % gui, FSCN1.stats.stat6, groupHeading, Time Series -# % gui, FSCN1.stats.stat6, enum, Time Control, S03SIM-EA-FSCN-01:STAT6:TS:TSAcquire -# % gui, FSCN1.stats.stat6, statusbits, Acquiring, S03SIM-EA-FSCN-01:STAT6:TS:TSAcquiring -# % gui, FSCN1.stats.stat6, readback, Current Point, S03SIM-EA-FSCN-01:STAT6:TS:TSCurrentPoint -# % gui, FSCN1.stats.stat6, demand, Number of Points, S03SIM-EA-FSCN-01:STAT6:TS:TSNumPoints -# % gui, FSCN1.stats.stat6, enum, Update, S03SIM-EA-FSCN-01:STAT6:TS:TSRead.SCAN -# Memory -# % gui, FSCN1.stats.stat6, groupHeading, Memory -# % gui, FSCN1.stats.stat6, readback, Max memory, S03SIM-EA-FSCN-01:STAT6:PoolMaxMem -# % gui, FSCN1.stats.stat6, readback, Max buffers, S03SIM-EA-FSCN-01:STAT6:PoolMaxBuffers -# % gui, FSCN1.stats.stat6, readback, Used memory, S03SIM-EA-FSCN-01:STAT6:PoolUsedMem -# % gui, FSCN1.stats.stat6, readback, Allocated buffers, S03SIM-EA-FSCN-01:STAT6:PoolAllocBuffers -# % gui, FSCN1.stats.stat6, readback, Free buffers, S03SIM-EA-FSCN-01:STAT6:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT6:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT6:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT6:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT6:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT6:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT6:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT6:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT6:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:STAT6:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT6:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT6:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT6:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:STAT6:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT6:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT6:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:STAT6:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:STAT6:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-01:STAT6:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:STAT6:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:STAT6:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:STAT6:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-01:STAT6:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-01:STAT6:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:STAT6:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:STAT6:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:STAT6:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:STAT6:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-01:STAT6:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-01:STAT6:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:STAT6:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT6:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:STAT6:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:STAT6:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT6:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT6:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-01:STAT6:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-01:STAT6:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-01:STAT6:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT6:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:STAT6:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-01:STAT6:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:STAT6:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-01:STAT6:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)NDARRAY_PORT") - field(VAL, "FSCN1.rois.roi1") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:STAT6:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT6:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT6:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT6:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:STAT6:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT6:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT6:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:STAT6:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-01:STAT6:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:STAT6:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-01:STAT6:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT6:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT6:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT6:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-01:STAT6:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT6:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT6:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:STAT6:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT6:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:STAT6:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:STAT6:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT6:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:STAT6:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:STAT6:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT6:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:STAT6:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:STAT6:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:STAT6:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT6:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:STAT6:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-01:STAT6:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT6:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:STAT6:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:STAT6:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:STAT6:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT6:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT6:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:STAT6:AsynIO") -{ - field(PORT, "FSCN1.stats.stat6") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records contain the basic statistics # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT6:ComputeStatistics") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)COMPUTE_STATISTICS") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT6:ComputeStatistics_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)COMPUTE_STATISTICS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT6:BgdWidth") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)BGD_WIDTH") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:BgdWidth_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)BGD_WIDTH") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:MinValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)MIN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:MinValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)MIN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:MaxValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)MAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:MaxValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)MAX_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:MeanValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)MEAN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:MeanValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)MEAN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:SigmaValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)SIGMA_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:Sigma_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)SIGMA_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:Total") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:Total_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:Net") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)NET") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:Net_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)NET") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:MinX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)MIN_X") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:MinX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)MIN_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:MinY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)MIN_Y") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:MinY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)MIN_Y") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:MaxX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)MAX_X") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:MaxX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)MAX_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:MaxY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)MAX_Y") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:MaxY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)MAX_Y") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether centroid statistics are computed # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT6:ComputeCentroid") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)COMPUTE_CENTROID") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT6:ComputeCentroid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)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, "S03SIM-EA-FSCN-01:STAT6:CentroidThreshold") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)CENTROID_THRESHOLD") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:CentroidThreshold_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)CENTROID_THRESHOLD") - field(VAL, "0") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:CentroidTotal") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)CENTROID_TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:CentroidTotal_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)CENTROID_TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:CentroidX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)CENTROIDX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:CentroidX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)CENTROIDX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:CentroidY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)CENTROIDY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:CentroidY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)CENTROIDY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:SigmaX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)SIGMAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:SigmaX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)SIGMAX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:SigmaY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)SIGMAY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:SigmaY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)SIGMAY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:SigmaXY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)SIGMAXY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:SigmaXY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)SIGMAXY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:SkewX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)SKEWX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:SkewX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)SKEWX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:SkewY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)SKEWY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:SkewY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)SKEWY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:KurtosisX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)KURTOSISX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:KurtosisX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)KURTOSISX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:KurtosisY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)KURTOSISY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:KurtosisY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)KURTOSISY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:Eccentricity") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)ECCENTRICITY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:Eccentricity_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)ECCENTRICITY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:Orientation") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)ORIENTATION_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:Orientation_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)ORIENTATION_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control time series # -################################################################### -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSMinValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,0,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSMinX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,1,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSMinY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,2,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSMaxValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,3,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSMaxX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,4,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSMaxY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,5,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSMeanValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,6,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSSigma") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,7,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,8,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSNet") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,9,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSCentroidTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,10,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSCentroidX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,11,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSCentroidY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,12,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSSigmaX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,13,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSSigmaY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,14,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSSigmaXY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,15,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSSkewX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,16,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSSkewY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,17,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSKurtosisX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,18,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSKurtosisY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,19,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSEccentricity") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,20,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSOrientation") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,21,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:TSTimestamp") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6_TS,22,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control profiles # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT6:ComputeProfiles") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)COMPUTE_PROFILES") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT6:ComputeProfiles_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)COMPUTE_PROFILES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ProfileSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)PROFILE_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:ProfileSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)PROFILE_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT6:CursorX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)CURSOR_X") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:CursorX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)CURSOR_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT6:CursorY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)CURSOR_Y") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:CursorY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)CURSOR_Y") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:CursorVal") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)CURSOR_VAL") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:ProfileAverageX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)PROFILE_AVERAGE_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:ProfileAverageY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)PROFILE_AVERAGE_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:ProfileThresholdX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)PROFILE_THRESHOLD_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:ProfileThresholdY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)PROFILE_THRESHOLD_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:ProfileCentroidX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)PROFILE_CENTROID_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:ProfileCentroidY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)PROFILE_CENTROID_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:ProfileCursorX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)PROFILE_CURSOR_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:ProfileCursorY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)PROFILE_CURSOR_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These are used to define the histogram # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:STAT6:ComputeHistogram") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)COMPUTE_HISTOGRAM") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:STAT6:ComputeHistogram_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)COMPUTE_HISTOGRAM") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT6:HistSize") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)HIST_SIZE") - field(VAL, "256") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:HistSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)HIST_SIZE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:HistMin") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)HIST_MIN") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:HistMin_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)HIST_MIN") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:HistMax") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)HIST_MAX") - field(VAL, "255") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:HistMax_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)HIST_MAX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT6:HistBelow") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)HIST_BELOW") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:HistBelow_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)HIST_BELOW") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:STAT6:HistAbove") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)HIST_ABOVE") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:HistAbove_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)HIST_ABOVE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:STAT6:HistEntropy") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.stats.stat6,0,1)HIST_ENTROPY") -} - -record(ai, "S03SIM-EA-FSCN-01:STAT6:HistEntropy_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)HIST_ENTROPY") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:Histogram_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)HIST_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:STAT6:HistogramX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN1.stats.stat6,0,1)HIST_X_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - 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, "S03SIM-EA-FSCN-01:STAT6:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:ProfileSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:STAT6:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:STAT6:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:STAT6:CursorX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:STAT6:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-01:STAT6:ProfileSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:STAT6:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:STAT6:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:STAT6:CursorY.HOPR NPP") -} - -################################################################### -# These records reset the statistics # -################################################################### -record(sseq, "S03SIM-EA-FSCN-01:STAT6:Reset") -{ - field(LNK1, "S03SIM-EA-FSCN-01:STAT6:MinValue PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:STAT6:MaxValue PP MS") - field(LNK3, "S03SIM-EA-FSCN-01:STAT6:MeanValue PP MS") - field(LNK4, "S03SIM-EA-FSCN-01:STAT6:SigmaValue PP MS") - field(LNK5, "S03SIM-EA-FSCN-01:STAT6:Total PP MS") - field(LNK6, "S03SIM-EA-FSCN-01:STAT6:Net PP MS") - field(LNK7, "S03SIM-EA-FSCN-01:STAT6:MinX PP MS") - field(LNK8, "S03SIM-EA-FSCN-01:STAT6:MinY PP MS") - field(LNK9, "S03SIM-EA-FSCN-01:STAT6:MaxX PP MS") - field(LNKA, "S03SIM-EA-FSCN-01:STAT6:MaxY PP MS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Reset1") -} - -record(sseq, "S03SIM-EA-FSCN-01:STAT6:Reset1") -{ - field(LNK1, "S03SIM-EA-FSCN-01:STAT6:CentroidX PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:STAT6:CentroidY PP MS") - field(LNK3, "S03SIM-EA-FSCN-01:STAT6:SigmaX PP MS") - field(LNK4, "S03SIM-EA-FSCN-01:STAT6:SigmaY PP MS") - field(LNK5, "S03SIM-EA-FSCN-01:STAT6:SigmaXY PP MS") - field(LNK6, "S03SIM-EA-FSCN-01:STAT6:CentroidTotal PP MS") - field(LNK7, "S03SIM-EA-FSCN-01:STAT6:SkewX PP MS") - field(LNK8, "S03SIM-EA-FSCN-01:STAT6:SkewY PP MS") - field(LNK9, "S03SIM-EA-FSCN-01:STAT6:KurtosisX PP MS") - field(LNKA, "S03SIM-EA-FSCN-01:STAT6:KurtosisY PP MS") - field(FLNK, "S03SIM-EA-FSCN-01:STAT6:Reset2") -} - -record(sseq, "S03SIM-EA-FSCN-01:STAT6:Reset2") -{ - field(LNK1, "S03SIM-EA-FSCN-01:STAT6:Eccentricity PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:STAT6:Orientation PP MS") - field(LNK3, "S03SIM-EA-FSCN-01:STAT6:HistBelow PP MS") - field(LNK4, "S03SIM-EA-FSCN-01:STAT6:HistAbove PP MS") - field(LNK5, "S03SIM-EA-FSCN-01:STAT6:HistEntropy PP MS") -} - -#=================================================================# -# Template file: NDStats.template - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, NCHANS, Number of channels -# % macro, XSIZE, x size -# % macro, YSIZE, y size -# % macro, HIST_SIZE, hist size -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Timeout -# % macro, TS_PORT, TS port - -# This associates the template with an edm screen -# % gui, FSCN2.stat, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-02,R=:STAT: - -# This associates a BOY screen with the template -# % gui, FSCN2.stat, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-02, R=:STAT:, DESC=Statistics -# % gui, FSCN2.stat, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:STAT:, DESC=Statistics -# % gui, FSCN2.stat, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-02, R=:STAT:, DESC=Statistics - - -# % gui, FSCN2.stat, groupHeading, Info -# % gui, FSCN2.stat, readback, Port name, S03SIM-EA-FSCN-02:STAT:PortName_RBV -# % gui, FSCN2.stat, readback, Plugin type, S03SIM-EA-FSCN-02:STAT:PluginType_RBV -# Input -# % gui, FSCN2.stat, demandString, Input, S03SIM-EA-FSCN-02:STAT:NDArrayPort -# % gui, FSCN2.stat, readback, Input, S03SIM-EA-FSCN-02:STAT:NDArrayPort_RBV - -# % gui, FSCN2.stat, groupHeading, Callback -# % gui, FSCN2.stat, enum, Callbacks, S03SIM-EA-FSCN-02:STAT:EnableCallbacks -# % gui, FSCN2.stat, statusbits, Callbacks, S03SIM-EA-FSCN-02:STAT:EnableCallbacks_RBV -# % gui, FSCN2.stat, demand, Min Callback Time, S03SIM-EA-FSCN-02:STAT:MinCallbackTime -# % gui, FSCN2.stat, readback, Min Callback Time, S03SIM-EA-FSCN-02:STAT:MinCallbackTime_RBV -# % gui, FSCN2.stat, enum, Block Callbacks, S03SIM-EA-FSCN-02:STAT:BlockingCallbacks -# % gui, FSCN2.stat, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:STAT:BlockingCallbacks_RBV - -# % gui, FSCN2.stat, groupHeading, Counters -# % gui, FSCN2.stat, demand, Array Counter, S03SIM-EA-FSCN-02:STAT:ArrayCounter -# % gui, FSCN2.stat, readback, Array Counter, S03SIM-EA-FSCN-02:STAT:ArrayCounter_RBV -# % gui, FSCN2.stat, readback, Array Rate (fps), S03SIM-EA-FSCN-02:STAT:ArrayRate_RBV -# % gui, FSCN2.stat, readback, Queue Use, S03SIM-EA-FSCN-02:STAT:QueueUse -# % gui, FSCN2.stat, readback, Queue Size, S03SIM-EA-FSCN-02:STAT:QueueSize -# % gui, FSCN2.stat, demand, Dropped Arrays, S03SIM-EA-FSCN-02:STAT:DroppedArrays -# % gui, FSCN2.stat, readback, Dropped Arrays, S03SIM-EA-FSCN-02:STAT:DroppedArrays_RBV - -# % gui, FSCN2.stat, groupHeading, Array Settings -# % gui, FSCN2.stat, readback, Num Dimensions, S03SIM-EA-FSCN-02:STAT:NDimensions_RBV -# % gui, FSCN2.stat, readback, Dim 0 Size, S03SIM-EA-FSCN-02:STAT:ArraySize0_RBV -# % gui, FSCN2.stat, readback, Dim 1 Size, S03SIM-EA-FSCN-02:STAT:ArraySize1_RBV -# % gui, FSCN2.stat, readback, Dim 2 Size, S03SIM-EA-FSCN-02:STAT:ArraySize2_RBV -# % gui, FSCN2.stat, readback, Input Data Type, S03SIM-EA-FSCN-02:STAT:DataType_RBV -# % gui, FSCN2.stat, readback, Colour Mode, S03SIM-EA-FSCN-02:STAT:ColorMode_RBV -# % gui, FSCN2.stat, readback, Bayer Pattern, S03SIM-EA-FSCN-02:STAT:BayerPattern_RBV -# % gui, FSCN2.stat, readback, Unique id, S03SIM-EA-FSCN-02:STAT:UniqueId_RBV -# % gui, FSCN2.stat, readback, Timestamp, S03SIM-EA-FSCN-02:STAT:TimeStamp_RBV - -# Output -# % gui, FSCN2.stat, groupHeading, Output -# % gui, FSCN2.stat, demand, Name, S03SIM-EA-FSCN-02:STAT:Name -# % gui, FSCN2.stat, enum, Out data type, S03SIM-EA-FSCN-02:STAT:DataTypeOut -# % gui, FSCN2.stat, readback, Out data type, S03SIM-EA-FSCN-02:STAT:DataTypeOut_RBV -# % gui, FSCN2.stat, demand, Attributes file, S03SIM-EA-FSCN-02:STAT:NDAttributesFile - -# Statistics -# % gui, FSCN2.stat, groupHeading, Statistics -# % gui, FSCN2.stat, enum, Compute Statistics, S03SIM-EA-FSCN-02:STAT:ComputeStatistics -# % gui, FSCN2.stat, statusbits, Compute Statistics, S03SIM-EA-FSCN-02:STAT:ComputeStatistics_RBV -# % gui, FSCN2.stat, demand, Background Width, S03SIM-EA-FSCN-02:STAT:BgdWidth -# % gui, FSCN2.stat, readback, Background Width, S03SIM-EA-FSCN-02:STAT:BgdWidth_RBV -# % gui, FSCN2.stat, readback, Minimum Value, S03SIM-EA-FSCN-02:STAT:MinValue_RBV -# % gui, FSCN2.stat, readback, Minimum X, S03SIM-EA-FSCN-02:STAT:MinX_RBV -# % gui, FSCN2.stat, readback, Minimum Y, S03SIM-EA-FSCN-02:STAT:MinY_RBV -# % gui, FSCN2.stat, readback, Maximum Value, S03SIM-EA-FSCN-02:STAT:MaxValue_RBV -# % gui, FSCN2.stat, readback, Maximum X, S03SIM-EA-FSCN-02:STAT:MaxX_RBV -# % gui, FSCN2.stat, readback, Maximum Y, S03SIM-EA-FSCN-02:STAT:MaxY_RBV -# % gui, FSCN2.stat, readback, Mean Value, S03SIM-EA-FSCN-02:STAT:MeanValue_RBV -# % gui, FSCN2.stat, readback, Total, S03SIM-EA-FSCN-02:STAT:Total_RBV -# % gui, FSCN2.stat, readback, Sigma, S03SIM-EA-FSCN-02:STAT:Sigma_RBV -# % gui, FSCN2.stat, readback, Net, S03SIM-EA-FSCN-02:STAT:Net_RBV -# Centroid -# % gui, FSCN2.stat, groupHeading, Centroid -# % gui, FSCN2.stat, enum, Compute Centroid, S03SIM-EA-FSCN-02:STAT:ComputeCentroid -# % gui, FSCN2.stat, statusbits, Compute Centroid, S03SIM-EA-FSCN-02:STAT:ComputeCentroid_RBV -# % gui, FSCN2.stat, demand, Threshold, S03SIM-EA-FSCN-02:STAT:CentroidThreshold -# % gui, FSCN2.stat, readback, Threshold, S03SIM-EA-FSCN-02:STAT:CentroidThreshold_RBV -# % gui, FSCN2.stat, readback, X, S03SIM-EA-FSCN-02:STAT:CentroidX_RBV -# % gui, FSCN2.stat, readback, Sigma X, S03SIM-EA-FSCN-02:STAT:SigmaX_RBV -# % gui, FSCN2.stat, readback, Y, S03SIM-EA-FSCN-02:STAT:CentroidY_RBV -# % gui, FSCN2.stat, readback, Sigma Y, S03SIM-EA-FSCN-02:STAT:SigmaY_RBV -# % gui, FSCN2.stat, readback, Sigma XY, S03SIM-EA-FSCN-02:STAT:SigmaXY_RBV -# Histogram -# % gui, FSCN2.stat, groupHeading, Histogram -# % gui, FSCN2.stat, enum, Compute Histogram, S03SIM-EA-FSCN-02:STAT:ComputeHistogram -# % gui, FSCN2.stat, statusbits, Compute Histogram, S03SIM-EA-FSCN-02:STAT:ComputeHistogram_RBV -# % gui, FSCN2.stat, demand, Histogram Size, S03SIM-EA-FSCN-02:STAT:HistSize -# % gui, FSCN2.stat, readback, Histogram Size, S03SIM-EA-FSCN-02:STAT:HistSize_RBV -# % gui, FSCN2.stat, demand, Histogram Min, S03SIM-EA-FSCN-02:STAT:HistMin -# % gui, FSCN2.stat, readback, Histogram Min, S03SIM-EA-FSCN-02:STAT:HistMin_RBV -# % gui, FSCN2.stat, demand, Histogram Max, S03SIM-EA-FSCN-02:STAT:HistMax -# % gui, FSCN2.stat, readback, Histogram Max, S03SIM-EA-FSCN-02:STAT:HistMax_RBV -# % gui, FSCN2.stat, readback, Histogram Entropy, S03SIM-EA-FSCN-02:STAT:HistEntropy_RBV -# Profiles -# % gui, FSCN2.stat, groupHeading, Profiles -# % gui, FSCN2.stat, enum, Compute Profiles, S03SIM-EA-FSCN-02:STAT:ComputeProfiles -# % gui, FSCN2.stat, statusbits, Compute Profiles, S03SIM-EA-FSCN-02:STAT:ComputeProfiles_RBV -# % gui, FSCN2.stat, demand, Cursor X, S03SIM-EA-FSCN-02:STAT:CursorX -# % gui, FSCN2.stat, readback, Cursor X, S03SIM-EA-FSCN-02:STAT:CursorX_RBV -# % gui, FSCN2.stat, demand, Cursor Y, S03SIM-EA-FSCN-02:STAT:CursorY -# % gui, FSCN2.stat, readback, Cursor Y, S03SIM-EA-FSCN-02:STAT:CursorY_RBV -# % gui, FSCN2.stat, readback, Size X, S03SIM-EA-FSCN-02:STAT:ProfileSizeX_RBV -# % gui, FSCN2.stat, readback, Size Y, S03SIM-EA-FSCN-02:STAT:ProfileSizeY_RBV -# Time series -# % gui, FSCN2.stat, groupHeading, Time Series -# % gui, FSCN2.stat, enum, Time Control, S03SIM-EA-FSCN-02:STAT:TS:TSAcquire -# % gui, FSCN2.stat, statusbits, Acquiring, S03SIM-EA-FSCN-02:STAT:TS:TSAcquiring -# % gui, FSCN2.stat, readback, Current Point, S03SIM-EA-FSCN-02:STAT:TS:TSCurrentPoint -# % gui, FSCN2.stat, demand, Number of Points, S03SIM-EA-FSCN-02:STAT:TS:TSNumPoints -# % gui, FSCN2.stat, enum, Update, S03SIM-EA-FSCN-02:STAT:TS:TSRead.SCAN -# Memory -# % gui, FSCN2.stat, groupHeading, Memory -# % gui, FSCN2.stat, readback, Max memory, S03SIM-EA-FSCN-02:STAT:PoolMaxMem -# % gui, FSCN2.stat, readback, Max buffers, S03SIM-EA-FSCN-02:STAT:PoolMaxBuffers -# % gui, FSCN2.stat, readback, Used memory, S03SIM-EA-FSCN-02:STAT:PoolUsedMem -# % gui, FSCN2.stat, readback, Allocated buffers, S03SIM-EA-FSCN-02:STAT:PoolAllocBuffers -# % gui, FSCN2.stat, readback, Free buffers, S03SIM-EA-FSCN-02:STAT:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stat,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stat,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stat,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stat,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stat,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stat,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stat,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stat,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:STAT:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:STAT:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:STAT:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:STAT:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-02:STAT:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:STAT:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:STAT:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN2.stat,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN2.stat,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:STAT:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-02:STAT:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stat,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:STAT:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:STAT:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:STAT:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:STAT:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-02:STAT:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-02:STAT:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:STAT:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:STAT:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:STAT:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:STAT:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.stat,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:STAT:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.stat,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-02:STAT:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-02:STAT:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-02:STAT:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:STAT:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-02:STAT:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stat,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-02:STAT:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.stat,0,1)NDARRAY_PORT") - field(VAL, "FSCN2.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stat,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:STAT:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:STAT:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-02:STAT:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-02:STAT:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-02:STAT:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:STAT:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:STAT:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:STAT:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:STAT:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:STAT:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:STAT:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:STAT:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:STAT:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:STAT:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-02:STAT:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:STAT:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:STAT:AsynIO") -{ - field(PORT, "FSCN2.stat") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records contain the basic statistics # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT:ComputeStatistics") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)COMPUTE_STATISTICS") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT:ComputeStatistics_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)COMPUTE_STATISTICS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT:BgdWidth") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)BGD_WIDTH") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:BgdWidth_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)BGD_WIDTH") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:MinValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)MIN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:MinValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)MIN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:MaxValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)MAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:MaxValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)MAX_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:MeanValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)MEAN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:MeanValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)MEAN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:SigmaValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)SIGMA_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:Sigma_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)SIGMA_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:Total") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:Total_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:Net") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)NET") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:Net_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)NET") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:MinX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)MIN_X") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:MinX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)MIN_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:MinY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)MIN_Y") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:MinY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)MIN_Y") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:MaxX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)MAX_X") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:MaxX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)MAX_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:MaxY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)MAX_Y") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:MaxY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)MAX_Y") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether centroid statistics are computed # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT:ComputeCentroid") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)COMPUTE_CENTROID") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT:ComputeCentroid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)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, "S03SIM-EA-FSCN-02:STAT:CentroidThreshold") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)CENTROID_THRESHOLD") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:CentroidThreshold_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)CENTROID_THRESHOLD") - field(VAL, "0") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:CentroidTotal") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)CENTROID_TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:CentroidTotal_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)CENTROID_TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:CentroidX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)CENTROIDX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:CentroidX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)CENTROIDX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:CentroidY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)CENTROIDY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:CentroidY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)CENTROIDY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:SigmaX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)SIGMAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:SigmaX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)SIGMAX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:SigmaY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)SIGMAY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:SigmaY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)SIGMAY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:SigmaXY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)SIGMAXY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:SigmaXY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)SIGMAXY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:SkewX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)SKEWX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:SkewX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)SKEWX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:SkewY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)SKEWY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:SkewY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)SKEWY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:KurtosisX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)KURTOSISX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:KurtosisX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)KURTOSISX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:KurtosisY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)KURTOSISY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:KurtosisY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)KURTOSISY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:Eccentricity") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)ECCENTRICITY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:Eccentricity_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)ECCENTRICITY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:Orientation") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)ORIENTATION_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:Orientation_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)ORIENTATION_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control time series # -################################################################### -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSMinValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,0,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSMinX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,1,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSMinY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,2,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSMaxValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,3,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSMaxX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,4,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSMaxY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,5,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSMeanValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,6,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSSigma") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,7,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,8,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSNet") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,9,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSCentroidTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,10,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSCentroidX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,11,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSCentroidY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,12,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSSigmaX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,13,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSSigmaY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,14,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSSigmaXY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,15,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSSkewX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,16,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSSkewY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,17,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSKurtosisX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,18,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSKurtosisY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,19,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSEccentricity") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,20,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSOrientation") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,21,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:TSTimestamp") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat_TS,22,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control profiles # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT:ComputeProfiles") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)COMPUTE_PROFILES") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT:ComputeProfiles_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)COMPUTE_PROFILES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ProfileSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)PROFILE_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:ProfileSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)PROFILE_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT:CursorX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)CURSOR_X") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:CursorX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)CURSOR_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT:CursorY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)CURSOR_Y") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:CursorY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)CURSOR_Y") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:CursorVal") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)CURSOR_VAL") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:ProfileAverageX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat,0,1)PROFILE_AVERAGE_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:ProfileAverageY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat,0,1)PROFILE_AVERAGE_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:ProfileThresholdX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat,0,1)PROFILE_THRESHOLD_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:ProfileThresholdY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat,0,1)PROFILE_THRESHOLD_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:ProfileCentroidX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat,0,1)PROFILE_CENTROID_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:ProfileCentroidY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat,0,1)PROFILE_CENTROID_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:ProfileCursorX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat,0,1)PROFILE_CURSOR_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:ProfileCursorY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat,0,1)PROFILE_CURSOR_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These are used to define the histogram # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT:ComputeHistogram") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)COMPUTE_HISTOGRAM") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT:ComputeHistogram_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)COMPUTE_HISTOGRAM") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT:HistSize") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)HIST_SIZE") - field(VAL, "256") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:HistSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)HIST_SIZE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:HistMin") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)HIST_MIN") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:HistMin_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)HIST_MIN") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:HistMax") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)HIST_MAX") - field(VAL, "255") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:HistMax_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)HIST_MAX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT:HistBelow") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)HIST_BELOW") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:HistBelow_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)HIST_BELOW") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT:HistAbove") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stat,0,1)HIST_ABOVE") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:HistAbove_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stat,0,1)HIST_ABOVE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT:HistEntropy") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stat,0,1)HIST_ENTROPY") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT:HistEntropy_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stat,0,1)HIST_ENTROPY") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:Histogram_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat,0,1)HIST_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT:HistogramX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stat,0,1)HIST_X_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - 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, "S03SIM-EA-FSCN-02:STAT:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:ProfileSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:STAT:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:STAT:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:STAT:CursorX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT:ProfileSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:STAT:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:STAT:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:STAT:CursorY.HOPR NPP") -} - -################################################################### -# These records reset the statistics # -################################################################### -record(sseq, "S03SIM-EA-FSCN-02:STAT:Reset") -{ - field(LNK1, "S03SIM-EA-FSCN-02:STAT:MinValue PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:STAT:MaxValue PP MS") - field(LNK3, "S03SIM-EA-FSCN-02:STAT:MeanValue PP MS") - field(LNK4, "S03SIM-EA-FSCN-02:STAT:SigmaValue PP MS") - field(LNK5, "S03SIM-EA-FSCN-02:STAT:Total PP MS") - field(LNK6, "S03SIM-EA-FSCN-02:STAT:Net PP MS") - field(LNK7, "S03SIM-EA-FSCN-02:STAT:MinX PP MS") - field(LNK8, "S03SIM-EA-FSCN-02:STAT:MinY PP MS") - field(LNK9, "S03SIM-EA-FSCN-02:STAT:MaxX PP MS") - field(LNKA, "S03SIM-EA-FSCN-02:STAT:MaxY PP MS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Reset1") -} - -record(sseq, "S03SIM-EA-FSCN-02:STAT:Reset1") -{ - field(LNK1, "S03SIM-EA-FSCN-02:STAT:CentroidX PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:STAT:CentroidY PP MS") - field(LNK3, "S03SIM-EA-FSCN-02:STAT:SigmaX PP MS") - field(LNK4, "S03SIM-EA-FSCN-02:STAT:SigmaY PP MS") - field(LNK5, "S03SIM-EA-FSCN-02:STAT:SigmaXY PP MS") - field(LNK6, "S03SIM-EA-FSCN-02:STAT:CentroidTotal PP MS") - field(LNK7, "S03SIM-EA-FSCN-02:STAT:SkewX PP MS") - field(LNK8, "S03SIM-EA-FSCN-02:STAT:SkewY PP MS") - field(LNK9, "S03SIM-EA-FSCN-02:STAT:KurtosisX PP MS") - field(LNKA, "S03SIM-EA-FSCN-02:STAT:KurtosisY PP MS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT:Reset2") -} - -record(sseq, "S03SIM-EA-FSCN-02:STAT:Reset2") -{ - field(LNK1, "S03SIM-EA-FSCN-02:STAT:Eccentricity PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:STAT:Orientation PP MS") - field(LNK3, "S03SIM-EA-FSCN-02:STAT:HistBelow PP MS") - field(LNK4, "S03SIM-EA-FSCN-02:STAT:HistAbove PP MS") - field(LNK5, "S03SIM-EA-FSCN-02:STAT:HistEntropy PP MS") -} - -#=================================================================# -# Template file: NDStats.template - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, NCHANS, Number of channels -# % macro, XSIZE, x size -# % macro, YSIZE, y size -# % macro, HIST_SIZE, hist size -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Timeout -# % macro, TS_PORT, TS port - -# This associates the template with an edm screen -# % gui, FSCN2.stats.stat1, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-02,R=:STAT1: - -# This associates a BOY screen with the template -# % gui, FSCN2.stats.stat1, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-02, R=:STAT1:, DESC=Statistics -# % gui, FSCN2.stats.stat1, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:STAT1:, DESC=Statistics -# % gui, FSCN2.stats.stat1, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-02, R=:STAT1:, DESC=Statistics - - -# % gui, FSCN2.stats.stat1, groupHeading, Info -# % gui, FSCN2.stats.stat1, readback, Port name, S03SIM-EA-FSCN-02:STAT1:PortName_RBV -# % gui, FSCN2.stats.stat1, readback, Plugin type, S03SIM-EA-FSCN-02:STAT1:PluginType_RBV -# Input -# % gui, FSCN2.stats.stat1, demandString, Input, S03SIM-EA-FSCN-02:STAT1:NDArrayPort -# % gui, FSCN2.stats.stat1, readback, Input, S03SIM-EA-FSCN-02:STAT1:NDArrayPort_RBV - -# % gui, FSCN2.stats.stat1, groupHeading, Callback -# % gui, FSCN2.stats.stat1, enum, Callbacks, S03SIM-EA-FSCN-02:STAT1:EnableCallbacks -# % gui, FSCN2.stats.stat1, statusbits, Callbacks, S03SIM-EA-FSCN-02:STAT1:EnableCallbacks_RBV -# % gui, FSCN2.stats.stat1, demand, Min Callback Time, S03SIM-EA-FSCN-02:STAT1:MinCallbackTime -# % gui, FSCN2.stats.stat1, readback, Min Callback Time, S03SIM-EA-FSCN-02:STAT1:MinCallbackTime_RBV -# % gui, FSCN2.stats.stat1, enum, Block Callbacks, S03SIM-EA-FSCN-02:STAT1:BlockingCallbacks -# % gui, FSCN2.stats.stat1, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:STAT1:BlockingCallbacks_RBV - -# % gui, FSCN2.stats.stat1, groupHeading, Counters -# % gui, FSCN2.stats.stat1, demand, Array Counter, S03SIM-EA-FSCN-02:STAT1:ArrayCounter -# % gui, FSCN2.stats.stat1, readback, Array Counter, S03SIM-EA-FSCN-02:STAT1:ArrayCounter_RBV -# % gui, FSCN2.stats.stat1, readback, Array Rate (fps), S03SIM-EA-FSCN-02:STAT1:ArrayRate_RBV -# % gui, FSCN2.stats.stat1, readback, Queue Use, S03SIM-EA-FSCN-02:STAT1:QueueUse -# % gui, FSCN2.stats.stat1, readback, Queue Size, S03SIM-EA-FSCN-02:STAT1:QueueSize -# % gui, FSCN2.stats.stat1, demand, Dropped Arrays, S03SIM-EA-FSCN-02:STAT1:DroppedArrays -# % gui, FSCN2.stats.stat1, readback, Dropped Arrays, S03SIM-EA-FSCN-02:STAT1:DroppedArrays_RBV - -# % gui, FSCN2.stats.stat1, groupHeading, Array Settings -# % gui, FSCN2.stats.stat1, readback, Num Dimensions, S03SIM-EA-FSCN-02:STAT1:NDimensions_RBV -# % gui, FSCN2.stats.stat1, readback, Dim 0 Size, S03SIM-EA-FSCN-02:STAT1:ArraySize0_RBV -# % gui, FSCN2.stats.stat1, readback, Dim 1 Size, S03SIM-EA-FSCN-02:STAT1:ArraySize1_RBV -# % gui, FSCN2.stats.stat1, readback, Dim 2 Size, S03SIM-EA-FSCN-02:STAT1:ArraySize2_RBV -# % gui, FSCN2.stats.stat1, readback, Input Data Type, S03SIM-EA-FSCN-02:STAT1:DataType_RBV -# % gui, FSCN2.stats.stat1, readback, Colour Mode, S03SIM-EA-FSCN-02:STAT1:ColorMode_RBV -# % gui, FSCN2.stats.stat1, readback, Bayer Pattern, S03SIM-EA-FSCN-02:STAT1:BayerPattern_RBV -# % gui, FSCN2.stats.stat1, readback, Unique id, S03SIM-EA-FSCN-02:STAT1:UniqueId_RBV -# % gui, FSCN2.stats.stat1, readback, Timestamp, S03SIM-EA-FSCN-02:STAT1:TimeStamp_RBV - -# Output -# % gui, FSCN2.stats.stat1, groupHeading, Output -# % gui, FSCN2.stats.stat1, demand, Name, S03SIM-EA-FSCN-02:STAT1:Name -# % gui, FSCN2.stats.stat1, enum, Out data type, S03SIM-EA-FSCN-02:STAT1:DataTypeOut -# % gui, FSCN2.stats.stat1, readback, Out data type, S03SIM-EA-FSCN-02:STAT1:DataTypeOut_RBV -# % gui, FSCN2.stats.stat1, demand, Attributes file, S03SIM-EA-FSCN-02:STAT1:NDAttributesFile - -# Statistics -# % gui, FSCN2.stats.stat1, groupHeading, Statistics -# % gui, FSCN2.stats.stat1, enum, Compute Statistics, S03SIM-EA-FSCN-02:STAT1:ComputeStatistics -# % gui, FSCN2.stats.stat1, statusbits, Compute Statistics, S03SIM-EA-FSCN-02:STAT1:ComputeStatistics_RBV -# % gui, FSCN2.stats.stat1, demand, Background Width, S03SIM-EA-FSCN-02:STAT1:BgdWidth -# % gui, FSCN2.stats.stat1, readback, Background Width, S03SIM-EA-FSCN-02:STAT1:BgdWidth_RBV -# % gui, FSCN2.stats.stat1, readback, Minimum Value, S03SIM-EA-FSCN-02:STAT1:MinValue_RBV -# % gui, FSCN2.stats.stat1, readback, Minimum X, S03SIM-EA-FSCN-02:STAT1:MinX_RBV -# % gui, FSCN2.stats.stat1, readback, Minimum Y, S03SIM-EA-FSCN-02:STAT1:MinY_RBV -# % gui, FSCN2.stats.stat1, readback, Maximum Value, S03SIM-EA-FSCN-02:STAT1:MaxValue_RBV -# % gui, FSCN2.stats.stat1, readback, Maximum X, S03SIM-EA-FSCN-02:STAT1:MaxX_RBV -# % gui, FSCN2.stats.stat1, readback, Maximum Y, S03SIM-EA-FSCN-02:STAT1:MaxY_RBV -# % gui, FSCN2.stats.stat1, readback, Mean Value, S03SIM-EA-FSCN-02:STAT1:MeanValue_RBV -# % gui, FSCN2.stats.stat1, readback, Total, S03SIM-EA-FSCN-02:STAT1:Total_RBV -# % gui, FSCN2.stats.stat1, readback, Sigma, S03SIM-EA-FSCN-02:STAT1:Sigma_RBV -# % gui, FSCN2.stats.stat1, readback, Net, S03SIM-EA-FSCN-02:STAT1:Net_RBV -# Centroid -# % gui, FSCN2.stats.stat1, groupHeading, Centroid -# % gui, FSCN2.stats.stat1, enum, Compute Centroid, S03SIM-EA-FSCN-02:STAT1:ComputeCentroid -# % gui, FSCN2.stats.stat1, statusbits, Compute Centroid, S03SIM-EA-FSCN-02:STAT1:ComputeCentroid_RBV -# % gui, FSCN2.stats.stat1, demand, Threshold, S03SIM-EA-FSCN-02:STAT1:CentroidThreshold -# % gui, FSCN2.stats.stat1, readback, Threshold, S03SIM-EA-FSCN-02:STAT1:CentroidThreshold_RBV -# % gui, FSCN2.stats.stat1, readback, X, S03SIM-EA-FSCN-02:STAT1:CentroidX_RBV -# % gui, FSCN2.stats.stat1, readback, Sigma X, S03SIM-EA-FSCN-02:STAT1:SigmaX_RBV -# % gui, FSCN2.stats.stat1, readback, Y, S03SIM-EA-FSCN-02:STAT1:CentroidY_RBV -# % gui, FSCN2.stats.stat1, readback, Sigma Y, S03SIM-EA-FSCN-02:STAT1:SigmaY_RBV -# % gui, FSCN2.stats.stat1, readback, Sigma XY, S03SIM-EA-FSCN-02:STAT1:SigmaXY_RBV -# Histogram -# % gui, FSCN2.stats.stat1, groupHeading, Histogram -# % gui, FSCN2.stats.stat1, enum, Compute Histogram, S03SIM-EA-FSCN-02:STAT1:ComputeHistogram -# % gui, FSCN2.stats.stat1, statusbits, Compute Histogram, S03SIM-EA-FSCN-02:STAT1:ComputeHistogram_RBV -# % gui, FSCN2.stats.stat1, demand, Histogram Size, S03SIM-EA-FSCN-02:STAT1:HistSize -# % gui, FSCN2.stats.stat1, readback, Histogram Size, S03SIM-EA-FSCN-02:STAT1:HistSize_RBV -# % gui, FSCN2.stats.stat1, demand, Histogram Min, S03SIM-EA-FSCN-02:STAT1:HistMin -# % gui, FSCN2.stats.stat1, readback, Histogram Min, S03SIM-EA-FSCN-02:STAT1:HistMin_RBV -# % gui, FSCN2.stats.stat1, demand, Histogram Max, S03SIM-EA-FSCN-02:STAT1:HistMax -# % gui, FSCN2.stats.stat1, readback, Histogram Max, S03SIM-EA-FSCN-02:STAT1:HistMax_RBV -# % gui, FSCN2.stats.stat1, readback, Histogram Entropy, S03SIM-EA-FSCN-02:STAT1:HistEntropy_RBV -# Profiles -# % gui, FSCN2.stats.stat1, groupHeading, Profiles -# % gui, FSCN2.stats.stat1, enum, Compute Profiles, S03SIM-EA-FSCN-02:STAT1:ComputeProfiles -# % gui, FSCN2.stats.stat1, statusbits, Compute Profiles, S03SIM-EA-FSCN-02:STAT1:ComputeProfiles_RBV -# % gui, FSCN2.stats.stat1, demand, Cursor X, S03SIM-EA-FSCN-02:STAT1:CursorX -# % gui, FSCN2.stats.stat1, readback, Cursor X, S03SIM-EA-FSCN-02:STAT1:CursorX_RBV -# % gui, FSCN2.stats.stat1, demand, Cursor Y, S03SIM-EA-FSCN-02:STAT1:CursorY -# % gui, FSCN2.stats.stat1, readback, Cursor Y, S03SIM-EA-FSCN-02:STAT1:CursorY_RBV -# % gui, FSCN2.stats.stat1, readback, Size X, S03SIM-EA-FSCN-02:STAT1:ProfileSizeX_RBV -# % gui, FSCN2.stats.stat1, readback, Size Y, S03SIM-EA-FSCN-02:STAT1:ProfileSizeY_RBV -# Time series -# % gui, FSCN2.stats.stat1, groupHeading, Time Series -# % gui, FSCN2.stats.stat1, enum, Time Control, S03SIM-EA-FSCN-02:STAT1:TS:TSAcquire -# % gui, FSCN2.stats.stat1, statusbits, Acquiring, S03SIM-EA-FSCN-02:STAT1:TS:TSAcquiring -# % gui, FSCN2.stats.stat1, readback, Current Point, S03SIM-EA-FSCN-02:STAT1:TS:TSCurrentPoint -# % gui, FSCN2.stats.stat1, demand, Number of Points, S03SIM-EA-FSCN-02:STAT1:TS:TSNumPoints -# % gui, FSCN2.stats.stat1, enum, Update, S03SIM-EA-FSCN-02:STAT1:TS:TSRead.SCAN -# Memory -# % gui, FSCN2.stats.stat1, groupHeading, Memory -# % gui, FSCN2.stats.stat1, readback, Max memory, S03SIM-EA-FSCN-02:STAT1:PoolMaxMem -# % gui, FSCN2.stats.stat1, readback, Max buffers, S03SIM-EA-FSCN-02:STAT1:PoolMaxBuffers -# % gui, FSCN2.stats.stat1, readback, Used memory, S03SIM-EA-FSCN-02:STAT1:PoolUsedMem -# % gui, FSCN2.stats.stat1, readback, Allocated buffers, S03SIM-EA-FSCN-02:STAT1:PoolAllocBuffers -# % gui, FSCN2.stats.stat1, readback, Free buffers, S03SIM-EA-FSCN-02:STAT1:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT1:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT1:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT1:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT1:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT1:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT1:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT1:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT1:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:STAT1:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT1:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT1:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT1:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:STAT1:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT1:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT1:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:STAT1:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:STAT1:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-02:STAT1:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:STAT1:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:STAT1:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT1:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:STAT1:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-02:STAT1:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:STAT1:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:STAT1:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:STAT1:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:STAT1:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-02:STAT1:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-02:STAT1:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:STAT1:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT1:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:STAT1:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:STAT1:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT1:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT1:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-02:STAT1:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-02:STAT1:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-02:STAT1:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT1:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:STAT1:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-02:STAT1:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT1:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-02:STAT1:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)NDARRAY_PORT") - field(VAL, "FSCN2.rois.roi1") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT1:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT1:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT1:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT1:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:STAT1:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT1:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT1:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:STAT1:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-02:STAT1:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT1:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-02:STAT1:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT1:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT1:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT1:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-02:STAT1:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT1:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT1:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:STAT1:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT1:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:STAT1:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:STAT1:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT1:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:STAT1:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:STAT1:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT1:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:STAT1:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:STAT1:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:STAT1:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT1:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:STAT1:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-02:STAT1:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT1:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT1:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:STAT1:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT1:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT1:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT1:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:STAT1:AsynIO") -{ - field(PORT, "FSCN2.stats.stat1") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records contain the basic statistics # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT1:ComputeStatistics") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)COMPUTE_STATISTICS") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT1:ComputeStatistics_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)COMPUTE_STATISTICS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT1:BgdWidth") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)BGD_WIDTH") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:BgdWidth_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)BGD_WIDTH") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:MinValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)MIN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:MinValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)MIN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:MaxValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)MAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:MaxValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)MAX_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:MeanValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)MEAN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:MeanValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)MEAN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:SigmaValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)SIGMA_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:Sigma_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)SIGMA_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:Total") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:Total_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:Net") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)NET") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:Net_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)NET") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:MinX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)MIN_X") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:MinX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)MIN_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:MinY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)MIN_Y") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:MinY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)MIN_Y") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:MaxX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)MAX_X") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:MaxX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)MAX_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:MaxY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)MAX_Y") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:MaxY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)MAX_Y") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether centroid statistics are computed # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT1:ComputeCentroid") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)COMPUTE_CENTROID") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT1:ComputeCentroid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)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, "S03SIM-EA-FSCN-02:STAT1:CentroidThreshold") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)CENTROID_THRESHOLD") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:CentroidThreshold_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)CENTROID_THRESHOLD") - field(VAL, "0") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:CentroidTotal") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)CENTROID_TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:CentroidTotal_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)CENTROID_TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:CentroidX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)CENTROIDX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:CentroidX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)CENTROIDX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:CentroidY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)CENTROIDY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:CentroidY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)CENTROIDY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:SigmaX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)SIGMAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:SigmaX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)SIGMAX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:SigmaY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)SIGMAY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:SigmaY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)SIGMAY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:SigmaXY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)SIGMAXY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:SigmaXY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)SIGMAXY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:SkewX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)SKEWX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:SkewX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)SKEWX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:SkewY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)SKEWY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:SkewY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)SKEWY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:KurtosisX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)KURTOSISX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:KurtosisX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)KURTOSISX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:KurtosisY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)KURTOSISY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:KurtosisY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)KURTOSISY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:Eccentricity") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)ECCENTRICITY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:Eccentricity_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)ECCENTRICITY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:Orientation") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)ORIENTATION_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:Orientation_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)ORIENTATION_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control time series # -################################################################### -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSMinValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,0,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSMinX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,1,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSMinY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,2,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSMaxValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,3,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSMaxX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,4,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSMaxY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,5,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSMeanValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,6,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSSigma") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,7,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,8,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSNet") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,9,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSCentroidTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,10,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSCentroidX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,11,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSCentroidY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,12,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSSigmaX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,13,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSSigmaY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,14,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSSigmaXY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,15,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSSkewX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,16,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSSkewY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,17,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSKurtosisX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,18,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSKurtosisY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,19,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSEccentricity") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,20,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSOrientation") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,21,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:TSTimestamp") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1_TS,22,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control profiles # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT1:ComputeProfiles") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)COMPUTE_PROFILES") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT1:ComputeProfiles_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)COMPUTE_PROFILES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ProfileSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)PROFILE_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:ProfileSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)PROFILE_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT1:CursorX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)CURSOR_X") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:CursorX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)CURSOR_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT1:CursorY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)CURSOR_Y") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:CursorY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)CURSOR_Y") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:CursorVal") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)CURSOR_VAL") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:ProfileAverageX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)PROFILE_AVERAGE_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:ProfileAverageY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)PROFILE_AVERAGE_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:ProfileThresholdX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)PROFILE_THRESHOLD_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:ProfileThresholdY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)PROFILE_THRESHOLD_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:ProfileCentroidX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)PROFILE_CENTROID_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:ProfileCentroidY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)PROFILE_CENTROID_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:ProfileCursorX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)PROFILE_CURSOR_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:ProfileCursorY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)PROFILE_CURSOR_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These are used to define the histogram # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT1:ComputeHistogram") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)COMPUTE_HISTOGRAM") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT1:ComputeHistogram_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)COMPUTE_HISTOGRAM") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT1:HistSize") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)HIST_SIZE") - field(VAL, "256") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:HistSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)HIST_SIZE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:HistMin") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)HIST_MIN") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:HistMin_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)HIST_MIN") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:HistMax") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)HIST_MAX") - field(VAL, "255") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:HistMax_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)HIST_MAX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT1:HistBelow") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)HIST_BELOW") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:HistBelow_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)HIST_BELOW") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT1:HistAbove") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)HIST_ABOVE") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:HistAbove_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)HIST_ABOVE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT1:HistEntropy") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat1,0,1)HIST_ENTROPY") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT1:HistEntropy_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)HIST_ENTROPY") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:Histogram_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)HIST_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT1:HistogramX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat1,0,1)HIST_X_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - 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, "S03SIM-EA-FSCN-02:STAT1:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:ProfileSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:STAT1:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:STAT1:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:STAT1:CursorX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT1:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT1:ProfileSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:STAT1:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:STAT1:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:STAT1:CursorY.HOPR NPP") -} - -################################################################### -# These records reset the statistics # -################################################################### -record(sseq, "S03SIM-EA-FSCN-02:STAT1:Reset") -{ - field(LNK1, "S03SIM-EA-FSCN-02:STAT1:MinValue PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:STAT1:MaxValue PP MS") - field(LNK3, "S03SIM-EA-FSCN-02:STAT1:MeanValue PP MS") - field(LNK4, "S03SIM-EA-FSCN-02:STAT1:SigmaValue PP MS") - field(LNK5, "S03SIM-EA-FSCN-02:STAT1:Total PP MS") - field(LNK6, "S03SIM-EA-FSCN-02:STAT1:Net PP MS") - field(LNK7, "S03SIM-EA-FSCN-02:STAT1:MinX PP MS") - field(LNK8, "S03SIM-EA-FSCN-02:STAT1:MinY PP MS") - field(LNK9, "S03SIM-EA-FSCN-02:STAT1:MaxX PP MS") - field(LNKA, "S03SIM-EA-FSCN-02:STAT1:MaxY PP MS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Reset1") -} - -record(sseq, "S03SIM-EA-FSCN-02:STAT1:Reset1") -{ - field(LNK1, "S03SIM-EA-FSCN-02:STAT1:CentroidX PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:STAT1:CentroidY PP MS") - field(LNK3, "S03SIM-EA-FSCN-02:STAT1:SigmaX PP MS") - field(LNK4, "S03SIM-EA-FSCN-02:STAT1:SigmaY PP MS") - field(LNK5, "S03SIM-EA-FSCN-02:STAT1:SigmaXY PP MS") - field(LNK6, "S03SIM-EA-FSCN-02:STAT1:CentroidTotal PP MS") - field(LNK7, "S03SIM-EA-FSCN-02:STAT1:SkewX PP MS") - field(LNK8, "S03SIM-EA-FSCN-02:STAT1:SkewY PP MS") - field(LNK9, "S03SIM-EA-FSCN-02:STAT1:KurtosisX PP MS") - field(LNKA, "S03SIM-EA-FSCN-02:STAT1:KurtosisY PP MS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT1:Reset2") -} - -record(sseq, "S03SIM-EA-FSCN-02:STAT1:Reset2") -{ - field(LNK1, "S03SIM-EA-FSCN-02:STAT1:Eccentricity PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:STAT1:Orientation PP MS") - field(LNK3, "S03SIM-EA-FSCN-02:STAT1:HistBelow PP MS") - field(LNK4, "S03SIM-EA-FSCN-02:STAT1:HistAbove PP MS") - field(LNK5, "S03SIM-EA-FSCN-02:STAT1:HistEntropy PP MS") -} - -#=================================================================# -# Template file: NDStats.template - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, NCHANS, Number of channels -# % macro, XSIZE, x size -# % macro, YSIZE, y size -# % macro, HIST_SIZE, hist size -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Timeout -# % macro, TS_PORT, TS port - -# This associates the template with an edm screen -# % gui, FSCN2.stats.stat2, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-02,R=:STAT2: - -# This associates a BOY screen with the template -# % gui, FSCN2.stats.stat2, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-02, R=:STAT2:, DESC=Statistics -# % gui, FSCN2.stats.stat2, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:STAT2:, DESC=Statistics -# % gui, FSCN2.stats.stat2, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-02, R=:STAT2:, DESC=Statistics - - -# % gui, FSCN2.stats.stat2, groupHeading, Info -# % gui, FSCN2.stats.stat2, readback, Port name, S03SIM-EA-FSCN-02:STAT2:PortName_RBV -# % gui, FSCN2.stats.stat2, readback, Plugin type, S03SIM-EA-FSCN-02:STAT2:PluginType_RBV -# Input -# % gui, FSCN2.stats.stat2, demandString, Input, S03SIM-EA-FSCN-02:STAT2:NDArrayPort -# % gui, FSCN2.stats.stat2, readback, Input, S03SIM-EA-FSCN-02:STAT2:NDArrayPort_RBV - -# % gui, FSCN2.stats.stat2, groupHeading, Callback -# % gui, FSCN2.stats.stat2, enum, Callbacks, S03SIM-EA-FSCN-02:STAT2:EnableCallbacks -# % gui, FSCN2.stats.stat2, statusbits, Callbacks, S03SIM-EA-FSCN-02:STAT2:EnableCallbacks_RBV -# % gui, FSCN2.stats.stat2, demand, Min Callback Time, S03SIM-EA-FSCN-02:STAT2:MinCallbackTime -# % gui, FSCN2.stats.stat2, readback, Min Callback Time, S03SIM-EA-FSCN-02:STAT2:MinCallbackTime_RBV -# % gui, FSCN2.stats.stat2, enum, Block Callbacks, S03SIM-EA-FSCN-02:STAT2:BlockingCallbacks -# % gui, FSCN2.stats.stat2, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:STAT2:BlockingCallbacks_RBV - -# % gui, FSCN2.stats.stat2, groupHeading, Counters -# % gui, FSCN2.stats.stat2, demand, Array Counter, S03SIM-EA-FSCN-02:STAT2:ArrayCounter -# % gui, FSCN2.stats.stat2, readback, Array Counter, S03SIM-EA-FSCN-02:STAT2:ArrayCounter_RBV -# % gui, FSCN2.stats.stat2, readback, Array Rate (fps), S03SIM-EA-FSCN-02:STAT2:ArrayRate_RBV -# % gui, FSCN2.stats.stat2, readback, Queue Use, S03SIM-EA-FSCN-02:STAT2:QueueUse -# % gui, FSCN2.stats.stat2, readback, Queue Size, S03SIM-EA-FSCN-02:STAT2:QueueSize -# % gui, FSCN2.stats.stat2, demand, Dropped Arrays, S03SIM-EA-FSCN-02:STAT2:DroppedArrays -# % gui, FSCN2.stats.stat2, readback, Dropped Arrays, S03SIM-EA-FSCN-02:STAT2:DroppedArrays_RBV - -# % gui, FSCN2.stats.stat2, groupHeading, Array Settings -# % gui, FSCN2.stats.stat2, readback, Num Dimensions, S03SIM-EA-FSCN-02:STAT2:NDimensions_RBV -# % gui, FSCN2.stats.stat2, readback, Dim 0 Size, S03SIM-EA-FSCN-02:STAT2:ArraySize0_RBV -# % gui, FSCN2.stats.stat2, readback, Dim 1 Size, S03SIM-EA-FSCN-02:STAT2:ArraySize1_RBV -# % gui, FSCN2.stats.stat2, readback, Dim 2 Size, S03SIM-EA-FSCN-02:STAT2:ArraySize2_RBV -# % gui, FSCN2.stats.stat2, readback, Input Data Type, S03SIM-EA-FSCN-02:STAT2:DataType_RBV -# % gui, FSCN2.stats.stat2, readback, Colour Mode, S03SIM-EA-FSCN-02:STAT2:ColorMode_RBV -# % gui, FSCN2.stats.stat2, readback, Bayer Pattern, S03SIM-EA-FSCN-02:STAT2:BayerPattern_RBV -# % gui, FSCN2.stats.stat2, readback, Unique id, S03SIM-EA-FSCN-02:STAT2:UniqueId_RBV -# % gui, FSCN2.stats.stat2, readback, Timestamp, S03SIM-EA-FSCN-02:STAT2:TimeStamp_RBV - -# Output -# % gui, FSCN2.stats.stat2, groupHeading, Output -# % gui, FSCN2.stats.stat2, demand, Name, S03SIM-EA-FSCN-02:STAT2:Name -# % gui, FSCN2.stats.stat2, enum, Out data type, S03SIM-EA-FSCN-02:STAT2:DataTypeOut -# % gui, FSCN2.stats.stat2, readback, Out data type, S03SIM-EA-FSCN-02:STAT2:DataTypeOut_RBV -# % gui, FSCN2.stats.stat2, demand, Attributes file, S03SIM-EA-FSCN-02:STAT2:NDAttributesFile - -# Statistics -# % gui, FSCN2.stats.stat2, groupHeading, Statistics -# % gui, FSCN2.stats.stat2, enum, Compute Statistics, S03SIM-EA-FSCN-02:STAT2:ComputeStatistics -# % gui, FSCN2.stats.stat2, statusbits, Compute Statistics, S03SIM-EA-FSCN-02:STAT2:ComputeStatistics_RBV -# % gui, FSCN2.stats.stat2, demand, Background Width, S03SIM-EA-FSCN-02:STAT2:BgdWidth -# % gui, FSCN2.stats.stat2, readback, Background Width, S03SIM-EA-FSCN-02:STAT2:BgdWidth_RBV -# % gui, FSCN2.stats.stat2, readback, Minimum Value, S03SIM-EA-FSCN-02:STAT2:MinValue_RBV -# % gui, FSCN2.stats.stat2, readback, Minimum X, S03SIM-EA-FSCN-02:STAT2:MinX_RBV -# % gui, FSCN2.stats.stat2, readback, Minimum Y, S03SIM-EA-FSCN-02:STAT2:MinY_RBV -# % gui, FSCN2.stats.stat2, readback, Maximum Value, S03SIM-EA-FSCN-02:STAT2:MaxValue_RBV -# % gui, FSCN2.stats.stat2, readback, Maximum X, S03SIM-EA-FSCN-02:STAT2:MaxX_RBV -# % gui, FSCN2.stats.stat2, readback, Maximum Y, S03SIM-EA-FSCN-02:STAT2:MaxY_RBV -# % gui, FSCN2.stats.stat2, readback, Mean Value, S03SIM-EA-FSCN-02:STAT2:MeanValue_RBV -# % gui, FSCN2.stats.stat2, readback, Total, S03SIM-EA-FSCN-02:STAT2:Total_RBV -# % gui, FSCN2.stats.stat2, readback, Sigma, S03SIM-EA-FSCN-02:STAT2:Sigma_RBV -# % gui, FSCN2.stats.stat2, readback, Net, S03SIM-EA-FSCN-02:STAT2:Net_RBV -# Centroid -# % gui, FSCN2.stats.stat2, groupHeading, Centroid -# % gui, FSCN2.stats.stat2, enum, Compute Centroid, S03SIM-EA-FSCN-02:STAT2:ComputeCentroid -# % gui, FSCN2.stats.stat2, statusbits, Compute Centroid, S03SIM-EA-FSCN-02:STAT2:ComputeCentroid_RBV -# % gui, FSCN2.stats.stat2, demand, Threshold, S03SIM-EA-FSCN-02:STAT2:CentroidThreshold -# % gui, FSCN2.stats.stat2, readback, Threshold, S03SIM-EA-FSCN-02:STAT2:CentroidThreshold_RBV -# % gui, FSCN2.stats.stat2, readback, X, S03SIM-EA-FSCN-02:STAT2:CentroidX_RBV -# % gui, FSCN2.stats.stat2, readback, Sigma X, S03SIM-EA-FSCN-02:STAT2:SigmaX_RBV -# % gui, FSCN2.stats.stat2, readback, Y, S03SIM-EA-FSCN-02:STAT2:CentroidY_RBV -# % gui, FSCN2.stats.stat2, readback, Sigma Y, S03SIM-EA-FSCN-02:STAT2:SigmaY_RBV -# % gui, FSCN2.stats.stat2, readback, Sigma XY, S03SIM-EA-FSCN-02:STAT2:SigmaXY_RBV -# Histogram -# % gui, FSCN2.stats.stat2, groupHeading, Histogram -# % gui, FSCN2.stats.stat2, enum, Compute Histogram, S03SIM-EA-FSCN-02:STAT2:ComputeHistogram -# % gui, FSCN2.stats.stat2, statusbits, Compute Histogram, S03SIM-EA-FSCN-02:STAT2:ComputeHistogram_RBV -# % gui, FSCN2.stats.stat2, demand, Histogram Size, S03SIM-EA-FSCN-02:STAT2:HistSize -# % gui, FSCN2.stats.stat2, readback, Histogram Size, S03SIM-EA-FSCN-02:STAT2:HistSize_RBV -# % gui, FSCN2.stats.stat2, demand, Histogram Min, S03SIM-EA-FSCN-02:STAT2:HistMin -# % gui, FSCN2.stats.stat2, readback, Histogram Min, S03SIM-EA-FSCN-02:STAT2:HistMin_RBV -# % gui, FSCN2.stats.stat2, demand, Histogram Max, S03SIM-EA-FSCN-02:STAT2:HistMax -# % gui, FSCN2.stats.stat2, readback, Histogram Max, S03SIM-EA-FSCN-02:STAT2:HistMax_RBV -# % gui, FSCN2.stats.stat2, readback, Histogram Entropy, S03SIM-EA-FSCN-02:STAT2:HistEntropy_RBV -# Profiles -# % gui, FSCN2.stats.stat2, groupHeading, Profiles -# % gui, FSCN2.stats.stat2, enum, Compute Profiles, S03SIM-EA-FSCN-02:STAT2:ComputeProfiles -# % gui, FSCN2.stats.stat2, statusbits, Compute Profiles, S03SIM-EA-FSCN-02:STAT2:ComputeProfiles_RBV -# % gui, FSCN2.stats.stat2, demand, Cursor X, S03SIM-EA-FSCN-02:STAT2:CursorX -# % gui, FSCN2.stats.stat2, readback, Cursor X, S03SIM-EA-FSCN-02:STAT2:CursorX_RBV -# % gui, FSCN2.stats.stat2, demand, Cursor Y, S03SIM-EA-FSCN-02:STAT2:CursorY -# % gui, FSCN2.stats.stat2, readback, Cursor Y, S03SIM-EA-FSCN-02:STAT2:CursorY_RBV -# % gui, FSCN2.stats.stat2, readback, Size X, S03SIM-EA-FSCN-02:STAT2:ProfileSizeX_RBV -# % gui, FSCN2.stats.stat2, readback, Size Y, S03SIM-EA-FSCN-02:STAT2:ProfileSizeY_RBV -# Time series -# % gui, FSCN2.stats.stat2, groupHeading, Time Series -# % gui, FSCN2.stats.stat2, enum, Time Control, S03SIM-EA-FSCN-02:STAT2:TS:TSAcquire -# % gui, FSCN2.stats.stat2, statusbits, Acquiring, S03SIM-EA-FSCN-02:STAT2:TS:TSAcquiring -# % gui, FSCN2.stats.stat2, readback, Current Point, S03SIM-EA-FSCN-02:STAT2:TS:TSCurrentPoint -# % gui, FSCN2.stats.stat2, demand, Number of Points, S03SIM-EA-FSCN-02:STAT2:TS:TSNumPoints -# % gui, FSCN2.stats.stat2, enum, Update, S03SIM-EA-FSCN-02:STAT2:TS:TSRead.SCAN -# Memory -# % gui, FSCN2.stats.stat2, groupHeading, Memory -# % gui, FSCN2.stats.stat2, readback, Max memory, S03SIM-EA-FSCN-02:STAT2:PoolMaxMem -# % gui, FSCN2.stats.stat2, readback, Max buffers, S03SIM-EA-FSCN-02:STAT2:PoolMaxBuffers -# % gui, FSCN2.stats.stat2, readback, Used memory, S03SIM-EA-FSCN-02:STAT2:PoolUsedMem -# % gui, FSCN2.stats.stat2, readback, Allocated buffers, S03SIM-EA-FSCN-02:STAT2:PoolAllocBuffers -# % gui, FSCN2.stats.stat2, readback, Free buffers, S03SIM-EA-FSCN-02:STAT2:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT2:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT2:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT2:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT2:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT2:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT2:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT2:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT2:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:STAT2:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT2:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT2:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT2:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:STAT2:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT2:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT2:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:STAT2:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:STAT2:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-02:STAT2:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:STAT2:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:STAT2:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT2:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:STAT2:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-02:STAT2:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:STAT2:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:STAT2:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:STAT2:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:STAT2:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-02:STAT2:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-02:STAT2:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:STAT2:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT2:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:STAT2:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:STAT2:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT2:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT2:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-02:STAT2:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-02:STAT2:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-02:STAT2:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT2:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:STAT2:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-02:STAT2:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT2:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-02:STAT2:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)NDARRAY_PORT") - field(VAL, "FSCN2.rois.roi1") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT2:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT2:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT2:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT2:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:STAT2:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT2:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT2:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:STAT2:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-02:STAT2:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT2:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-02:STAT2:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT2:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT2:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT2:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-02:STAT2:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT2:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT2:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:STAT2:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT2:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:STAT2:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:STAT2:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT2:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:STAT2:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:STAT2:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT2:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:STAT2:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:STAT2:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:STAT2:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT2:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:STAT2:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-02:STAT2:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT2:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT2:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:STAT2:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT2:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT2:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT2:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:STAT2:AsynIO") -{ - field(PORT, "FSCN2.stats.stat2") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records contain the basic statistics # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT2:ComputeStatistics") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)COMPUTE_STATISTICS") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT2:ComputeStatistics_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)COMPUTE_STATISTICS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT2:BgdWidth") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)BGD_WIDTH") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:BgdWidth_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)BGD_WIDTH") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:MinValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)MIN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:MinValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)MIN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:MaxValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)MAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:MaxValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)MAX_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:MeanValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)MEAN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:MeanValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)MEAN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:SigmaValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)SIGMA_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:Sigma_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)SIGMA_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:Total") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:Total_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:Net") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)NET") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:Net_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)NET") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:MinX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)MIN_X") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:MinX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)MIN_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:MinY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)MIN_Y") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:MinY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)MIN_Y") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:MaxX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)MAX_X") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:MaxX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)MAX_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:MaxY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)MAX_Y") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:MaxY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)MAX_Y") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether centroid statistics are computed # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT2:ComputeCentroid") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)COMPUTE_CENTROID") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT2:ComputeCentroid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)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, "S03SIM-EA-FSCN-02:STAT2:CentroidThreshold") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)CENTROID_THRESHOLD") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:CentroidThreshold_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)CENTROID_THRESHOLD") - field(VAL, "0") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:CentroidTotal") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)CENTROID_TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:CentroidTotal_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)CENTROID_TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:CentroidX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)CENTROIDX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:CentroidX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)CENTROIDX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:CentroidY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)CENTROIDY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:CentroidY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)CENTROIDY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:SigmaX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)SIGMAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:SigmaX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)SIGMAX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:SigmaY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)SIGMAY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:SigmaY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)SIGMAY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:SigmaXY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)SIGMAXY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:SigmaXY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)SIGMAXY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:SkewX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)SKEWX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:SkewX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)SKEWX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:SkewY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)SKEWY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:SkewY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)SKEWY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:KurtosisX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)KURTOSISX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:KurtosisX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)KURTOSISX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:KurtosisY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)KURTOSISY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:KurtosisY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)KURTOSISY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:Eccentricity") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)ECCENTRICITY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:Eccentricity_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)ECCENTRICITY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:Orientation") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)ORIENTATION_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:Orientation_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)ORIENTATION_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control time series # -################################################################### -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSMinValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,0,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSMinX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,1,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSMinY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,2,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSMaxValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,3,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSMaxX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,4,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSMaxY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,5,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSMeanValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,6,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSSigma") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,7,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,8,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSNet") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,9,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSCentroidTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,10,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSCentroidX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,11,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSCentroidY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,12,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSSigmaX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,13,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSSigmaY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,14,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSSigmaXY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,15,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSSkewX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,16,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSSkewY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,17,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSKurtosisX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,18,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSKurtosisY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,19,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSEccentricity") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,20,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSOrientation") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,21,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:TSTimestamp") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2_TS,22,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control profiles # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT2:ComputeProfiles") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)COMPUTE_PROFILES") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT2:ComputeProfiles_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)COMPUTE_PROFILES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ProfileSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)PROFILE_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:ProfileSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)PROFILE_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT2:CursorX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)CURSOR_X") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:CursorX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)CURSOR_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT2:CursorY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)CURSOR_Y") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:CursorY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)CURSOR_Y") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:CursorVal") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)CURSOR_VAL") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:ProfileAverageX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)PROFILE_AVERAGE_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:ProfileAverageY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)PROFILE_AVERAGE_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:ProfileThresholdX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)PROFILE_THRESHOLD_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:ProfileThresholdY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)PROFILE_THRESHOLD_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:ProfileCentroidX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)PROFILE_CENTROID_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:ProfileCentroidY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)PROFILE_CENTROID_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:ProfileCursorX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)PROFILE_CURSOR_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:ProfileCursorY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)PROFILE_CURSOR_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These are used to define the histogram # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT2:ComputeHistogram") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)COMPUTE_HISTOGRAM") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT2:ComputeHistogram_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)COMPUTE_HISTOGRAM") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT2:HistSize") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)HIST_SIZE") - field(VAL, "256") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:HistSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)HIST_SIZE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:HistMin") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)HIST_MIN") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:HistMin_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)HIST_MIN") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:HistMax") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)HIST_MAX") - field(VAL, "255") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:HistMax_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)HIST_MAX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT2:HistBelow") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)HIST_BELOW") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:HistBelow_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)HIST_BELOW") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT2:HistAbove") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)HIST_ABOVE") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:HistAbove_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)HIST_ABOVE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT2:HistEntropy") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat2,0,1)HIST_ENTROPY") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT2:HistEntropy_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)HIST_ENTROPY") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:Histogram_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)HIST_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT2:HistogramX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat2,0,1)HIST_X_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - 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, "S03SIM-EA-FSCN-02:STAT2:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:ProfileSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:STAT2:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:STAT2:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:STAT2:CursorX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT2:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT2:ProfileSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:STAT2:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:STAT2:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:STAT2:CursorY.HOPR NPP") -} - -################################################################### -# These records reset the statistics # -################################################################### -record(sseq, "S03SIM-EA-FSCN-02:STAT2:Reset") -{ - field(LNK1, "S03SIM-EA-FSCN-02:STAT2:MinValue PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:STAT2:MaxValue PP MS") - field(LNK3, "S03SIM-EA-FSCN-02:STAT2:MeanValue PP MS") - field(LNK4, "S03SIM-EA-FSCN-02:STAT2:SigmaValue PP MS") - field(LNK5, "S03SIM-EA-FSCN-02:STAT2:Total PP MS") - field(LNK6, "S03SIM-EA-FSCN-02:STAT2:Net PP MS") - field(LNK7, "S03SIM-EA-FSCN-02:STAT2:MinX PP MS") - field(LNK8, "S03SIM-EA-FSCN-02:STAT2:MinY PP MS") - field(LNK9, "S03SIM-EA-FSCN-02:STAT2:MaxX PP MS") - field(LNKA, "S03SIM-EA-FSCN-02:STAT2:MaxY PP MS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Reset1") -} - -record(sseq, "S03SIM-EA-FSCN-02:STAT2:Reset1") -{ - field(LNK1, "S03SIM-EA-FSCN-02:STAT2:CentroidX PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:STAT2:CentroidY PP MS") - field(LNK3, "S03SIM-EA-FSCN-02:STAT2:SigmaX PP MS") - field(LNK4, "S03SIM-EA-FSCN-02:STAT2:SigmaY PP MS") - field(LNK5, "S03SIM-EA-FSCN-02:STAT2:SigmaXY PP MS") - field(LNK6, "S03SIM-EA-FSCN-02:STAT2:CentroidTotal PP MS") - field(LNK7, "S03SIM-EA-FSCN-02:STAT2:SkewX PP MS") - field(LNK8, "S03SIM-EA-FSCN-02:STAT2:SkewY PP MS") - field(LNK9, "S03SIM-EA-FSCN-02:STAT2:KurtosisX PP MS") - field(LNKA, "S03SIM-EA-FSCN-02:STAT2:KurtosisY PP MS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT2:Reset2") -} - -record(sseq, "S03SIM-EA-FSCN-02:STAT2:Reset2") -{ - field(LNK1, "S03SIM-EA-FSCN-02:STAT2:Eccentricity PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:STAT2:Orientation PP MS") - field(LNK3, "S03SIM-EA-FSCN-02:STAT2:HistBelow PP MS") - field(LNK4, "S03SIM-EA-FSCN-02:STAT2:HistAbove PP MS") - field(LNK5, "S03SIM-EA-FSCN-02:STAT2:HistEntropy PP MS") -} - -#=================================================================# -# Template file: NDStats.template - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, NCHANS, Number of channels -# % macro, XSIZE, x size -# % macro, YSIZE, y size -# % macro, HIST_SIZE, hist size -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Timeout -# % macro, TS_PORT, TS port - -# This associates the template with an edm screen -# % gui, FSCN2.stats.stat3, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-02,R=:STAT3: - -# This associates a BOY screen with the template -# % gui, FSCN2.stats.stat3, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-02, R=:STAT3:, DESC=Statistics -# % gui, FSCN2.stats.stat3, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:STAT3:, DESC=Statistics -# % gui, FSCN2.stats.stat3, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-02, R=:STAT3:, DESC=Statistics - - -# % gui, FSCN2.stats.stat3, groupHeading, Info -# % gui, FSCN2.stats.stat3, readback, Port name, S03SIM-EA-FSCN-02:STAT3:PortName_RBV -# % gui, FSCN2.stats.stat3, readback, Plugin type, S03SIM-EA-FSCN-02:STAT3:PluginType_RBV -# Input -# % gui, FSCN2.stats.stat3, demandString, Input, S03SIM-EA-FSCN-02:STAT3:NDArrayPort -# % gui, FSCN2.stats.stat3, readback, Input, S03SIM-EA-FSCN-02:STAT3:NDArrayPort_RBV - -# % gui, FSCN2.stats.stat3, groupHeading, Callback -# % gui, FSCN2.stats.stat3, enum, Callbacks, S03SIM-EA-FSCN-02:STAT3:EnableCallbacks -# % gui, FSCN2.stats.stat3, statusbits, Callbacks, S03SIM-EA-FSCN-02:STAT3:EnableCallbacks_RBV -# % gui, FSCN2.stats.stat3, demand, Min Callback Time, S03SIM-EA-FSCN-02:STAT3:MinCallbackTime -# % gui, FSCN2.stats.stat3, readback, Min Callback Time, S03SIM-EA-FSCN-02:STAT3:MinCallbackTime_RBV -# % gui, FSCN2.stats.stat3, enum, Block Callbacks, S03SIM-EA-FSCN-02:STAT3:BlockingCallbacks -# % gui, FSCN2.stats.stat3, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:STAT3:BlockingCallbacks_RBV - -# % gui, FSCN2.stats.stat3, groupHeading, Counters -# % gui, FSCN2.stats.stat3, demand, Array Counter, S03SIM-EA-FSCN-02:STAT3:ArrayCounter -# % gui, FSCN2.stats.stat3, readback, Array Counter, S03SIM-EA-FSCN-02:STAT3:ArrayCounter_RBV -# % gui, FSCN2.stats.stat3, readback, Array Rate (fps), S03SIM-EA-FSCN-02:STAT3:ArrayRate_RBV -# % gui, FSCN2.stats.stat3, readback, Queue Use, S03SIM-EA-FSCN-02:STAT3:QueueUse -# % gui, FSCN2.stats.stat3, readback, Queue Size, S03SIM-EA-FSCN-02:STAT3:QueueSize -# % gui, FSCN2.stats.stat3, demand, Dropped Arrays, S03SIM-EA-FSCN-02:STAT3:DroppedArrays -# % gui, FSCN2.stats.stat3, readback, Dropped Arrays, S03SIM-EA-FSCN-02:STAT3:DroppedArrays_RBV - -# % gui, FSCN2.stats.stat3, groupHeading, Array Settings -# % gui, FSCN2.stats.stat3, readback, Num Dimensions, S03SIM-EA-FSCN-02:STAT3:NDimensions_RBV -# % gui, FSCN2.stats.stat3, readback, Dim 0 Size, S03SIM-EA-FSCN-02:STAT3:ArraySize0_RBV -# % gui, FSCN2.stats.stat3, readback, Dim 1 Size, S03SIM-EA-FSCN-02:STAT3:ArraySize1_RBV -# % gui, FSCN2.stats.stat3, readback, Dim 2 Size, S03SIM-EA-FSCN-02:STAT3:ArraySize2_RBV -# % gui, FSCN2.stats.stat3, readback, Input Data Type, S03SIM-EA-FSCN-02:STAT3:DataType_RBV -# % gui, FSCN2.stats.stat3, readback, Colour Mode, S03SIM-EA-FSCN-02:STAT3:ColorMode_RBV -# % gui, FSCN2.stats.stat3, readback, Bayer Pattern, S03SIM-EA-FSCN-02:STAT3:BayerPattern_RBV -# % gui, FSCN2.stats.stat3, readback, Unique id, S03SIM-EA-FSCN-02:STAT3:UniqueId_RBV -# % gui, FSCN2.stats.stat3, readback, Timestamp, S03SIM-EA-FSCN-02:STAT3:TimeStamp_RBV - -# Output -# % gui, FSCN2.stats.stat3, groupHeading, Output -# % gui, FSCN2.stats.stat3, demand, Name, S03SIM-EA-FSCN-02:STAT3:Name -# % gui, FSCN2.stats.stat3, enum, Out data type, S03SIM-EA-FSCN-02:STAT3:DataTypeOut -# % gui, FSCN2.stats.stat3, readback, Out data type, S03SIM-EA-FSCN-02:STAT3:DataTypeOut_RBV -# % gui, FSCN2.stats.stat3, demand, Attributes file, S03SIM-EA-FSCN-02:STAT3:NDAttributesFile - -# Statistics -# % gui, FSCN2.stats.stat3, groupHeading, Statistics -# % gui, FSCN2.stats.stat3, enum, Compute Statistics, S03SIM-EA-FSCN-02:STAT3:ComputeStatistics -# % gui, FSCN2.stats.stat3, statusbits, Compute Statistics, S03SIM-EA-FSCN-02:STAT3:ComputeStatistics_RBV -# % gui, FSCN2.stats.stat3, demand, Background Width, S03SIM-EA-FSCN-02:STAT3:BgdWidth -# % gui, FSCN2.stats.stat3, readback, Background Width, S03SIM-EA-FSCN-02:STAT3:BgdWidth_RBV -# % gui, FSCN2.stats.stat3, readback, Minimum Value, S03SIM-EA-FSCN-02:STAT3:MinValue_RBV -# % gui, FSCN2.stats.stat3, readback, Minimum X, S03SIM-EA-FSCN-02:STAT3:MinX_RBV -# % gui, FSCN2.stats.stat3, readback, Minimum Y, S03SIM-EA-FSCN-02:STAT3:MinY_RBV -# % gui, FSCN2.stats.stat3, readback, Maximum Value, S03SIM-EA-FSCN-02:STAT3:MaxValue_RBV -# % gui, FSCN2.stats.stat3, readback, Maximum X, S03SIM-EA-FSCN-02:STAT3:MaxX_RBV -# % gui, FSCN2.stats.stat3, readback, Maximum Y, S03SIM-EA-FSCN-02:STAT3:MaxY_RBV -# % gui, FSCN2.stats.stat3, readback, Mean Value, S03SIM-EA-FSCN-02:STAT3:MeanValue_RBV -# % gui, FSCN2.stats.stat3, readback, Total, S03SIM-EA-FSCN-02:STAT3:Total_RBV -# % gui, FSCN2.stats.stat3, readback, Sigma, S03SIM-EA-FSCN-02:STAT3:Sigma_RBV -# % gui, FSCN2.stats.stat3, readback, Net, S03SIM-EA-FSCN-02:STAT3:Net_RBV -# Centroid -# % gui, FSCN2.stats.stat3, groupHeading, Centroid -# % gui, FSCN2.stats.stat3, enum, Compute Centroid, S03SIM-EA-FSCN-02:STAT3:ComputeCentroid -# % gui, FSCN2.stats.stat3, statusbits, Compute Centroid, S03SIM-EA-FSCN-02:STAT3:ComputeCentroid_RBV -# % gui, FSCN2.stats.stat3, demand, Threshold, S03SIM-EA-FSCN-02:STAT3:CentroidThreshold -# % gui, FSCN2.stats.stat3, readback, Threshold, S03SIM-EA-FSCN-02:STAT3:CentroidThreshold_RBV -# % gui, FSCN2.stats.stat3, readback, X, S03SIM-EA-FSCN-02:STAT3:CentroidX_RBV -# % gui, FSCN2.stats.stat3, readback, Sigma X, S03SIM-EA-FSCN-02:STAT3:SigmaX_RBV -# % gui, FSCN2.stats.stat3, readback, Y, S03SIM-EA-FSCN-02:STAT3:CentroidY_RBV -# % gui, FSCN2.stats.stat3, readback, Sigma Y, S03SIM-EA-FSCN-02:STAT3:SigmaY_RBV -# % gui, FSCN2.stats.stat3, readback, Sigma XY, S03SIM-EA-FSCN-02:STAT3:SigmaXY_RBV -# Histogram -# % gui, FSCN2.stats.stat3, groupHeading, Histogram -# % gui, FSCN2.stats.stat3, enum, Compute Histogram, S03SIM-EA-FSCN-02:STAT3:ComputeHistogram -# % gui, FSCN2.stats.stat3, statusbits, Compute Histogram, S03SIM-EA-FSCN-02:STAT3:ComputeHistogram_RBV -# % gui, FSCN2.stats.stat3, demand, Histogram Size, S03SIM-EA-FSCN-02:STAT3:HistSize -# % gui, FSCN2.stats.stat3, readback, Histogram Size, S03SIM-EA-FSCN-02:STAT3:HistSize_RBV -# % gui, FSCN2.stats.stat3, demand, Histogram Min, S03SIM-EA-FSCN-02:STAT3:HistMin -# % gui, FSCN2.stats.stat3, readback, Histogram Min, S03SIM-EA-FSCN-02:STAT3:HistMin_RBV -# % gui, FSCN2.stats.stat3, demand, Histogram Max, S03SIM-EA-FSCN-02:STAT3:HistMax -# % gui, FSCN2.stats.stat3, readback, Histogram Max, S03SIM-EA-FSCN-02:STAT3:HistMax_RBV -# % gui, FSCN2.stats.stat3, readback, Histogram Entropy, S03SIM-EA-FSCN-02:STAT3:HistEntropy_RBV -# Profiles -# % gui, FSCN2.stats.stat3, groupHeading, Profiles -# % gui, FSCN2.stats.stat3, enum, Compute Profiles, S03SIM-EA-FSCN-02:STAT3:ComputeProfiles -# % gui, FSCN2.stats.stat3, statusbits, Compute Profiles, S03SIM-EA-FSCN-02:STAT3:ComputeProfiles_RBV -# % gui, FSCN2.stats.stat3, demand, Cursor X, S03SIM-EA-FSCN-02:STAT3:CursorX -# % gui, FSCN2.stats.stat3, readback, Cursor X, S03SIM-EA-FSCN-02:STAT3:CursorX_RBV -# % gui, FSCN2.stats.stat3, demand, Cursor Y, S03SIM-EA-FSCN-02:STAT3:CursorY -# % gui, FSCN2.stats.stat3, readback, Cursor Y, S03SIM-EA-FSCN-02:STAT3:CursorY_RBV -# % gui, FSCN2.stats.stat3, readback, Size X, S03SIM-EA-FSCN-02:STAT3:ProfileSizeX_RBV -# % gui, FSCN2.stats.stat3, readback, Size Y, S03SIM-EA-FSCN-02:STAT3:ProfileSizeY_RBV -# Time series -# % gui, FSCN2.stats.stat3, groupHeading, Time Series -# % gui, FSCN2.stats.stat3, enum, Time Control, S03SIM-EA-FSCN-02:STAT3:TS:TSAcquire -# % gui, FSCN2.stats.stat3, statusbits, Acquiring, S03SIM-EA-FSCN-02:STAT3:TS:TSAcquiring -# % gui, FSCN2.stats.stat3, readback, Current Point, S03SIM-EA-FSCN-02:STAT3:TS:TSCurrentPoint -# % gui, FSCN2.stats.stat3, demand, Number of Points, S03SIM-EA-FSCN-02:STAT3:TS:TSNumPoints -# % gui, FSCN2.stats.stat3, enum, Update, S03SIM-EA-FSCN-02:STAT3:TS:TSRead.SCAN -# Memory -# % gui, FSCN2.stats.stat3, groupHeading, Memory -# % gui, FSCN2.stats.stat3, readback, Max memory, S03SIM-EA-FSCN-02:STAT3:PoolMaxMem -# % gui, FSCN2.stats.stat3, readback, Max buffers, S03SIM-EA-FSCN-02:STAT3:PoolMaxBuffers -# % gui, FSCN2.stats.stat3, readback, Used memory, S03SIM-EA-FSCN-02:STAT3:PoolUsedMem -# % gui, FSCN2.stats.stat3, readback, Allocated buffers, S03SIM-EA-FSCN-02:STAT3:PoolAllocBuffers -# % gui, FSCN2.stats.stat3, readback, Free buffers, S03SIM-EA-FSCN-02:STAT3:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT3:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT3:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT3:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT3:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT3:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT3:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT3:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT3:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:STAT3:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT3:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT3:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT3:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:STAT3:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT3:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT3:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:STAT3:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:STAT3:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-02:STAT3:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:STAT3:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:STAT3:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT3:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:STAT3:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-02:STAT3:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:STAT3:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:STAT3:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:STAT3:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:STAT3:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-02:STAT3:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-02:STAT3:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:STAT3:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT3:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:STAT3:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:STAT3:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT3:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT3:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-02:STAT3:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-02:STAT3:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-02:STAT3:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT3:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:STAT3:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-02:STAT3:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT3:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-02:STAT3:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)NDARRAY_PORT") - field(VAL, "FSCN2.rois.roi1") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT3:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT3:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT3:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT3:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:STAT3:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT3:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT3:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:STAT3:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-02:STAT3:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT3:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-02:STAT3:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT3:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT3:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT3:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-02:STAT3:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT3:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT3:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:STAT3:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT3:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:STAT3:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:STAT3:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT3:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:STAT3:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:STAT3:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT3:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:STAT3:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:STAT3:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:STAT3:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT3:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:STAT3:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-02:STAT3:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT3:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT3:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:STAT3:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT3:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT3:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT3:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:STAT3:AsynIO") -{ - field(PORT, "FSCN2.stats.stat3") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records contain the basic statistics # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT3:ComputeStatistics") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)COMPUTE_STATISTICS") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT3:ComputeStatistics_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)COMPUTE_STATISTICS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT3:BgdWidth") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)BGD_WIDTH") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:BgdWidth_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)BGD_WIDTH") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:MinValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)MIN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:MinValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)MIN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:MaxValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)MAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:MaxValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)MAX_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:MeanValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)MEAN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:MeanValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)MEAN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:SigmaValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)SIGMA_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:Sigma_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)SIGMA_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:Total") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:Total_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:Net") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)NET") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:Net_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)NET") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:MinX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)MIN_X") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:MinX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)MIN_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:MinY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)MIN_Y") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:MinY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)MIN_Y") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:MaxX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)MAX_X") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:MaxX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)MAX_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:MaxY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)MAX_Y") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:MaxY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)MAX_Y") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether centroid statistics are computed # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT3:ComputeCentroid") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)COMPUTE_CENTROID") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT3:ComputeCentroid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)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, "S03SIM-EA-FSCN-02:STAT3:CentroidThreshold") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)CENTROID_THRESHOLD") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:CentroidThreshold_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)CENTROID_THRESHOLD") - field(VAL, "0") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:CentroidTotal") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)CENTROID_TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:CentroidTotal_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)CENTROID_TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:CentroidX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)CENTROIDX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:CentroidX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)CENTROIDX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:CentroidY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)CENTROIDY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:CentroidY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)CENTROIDY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:SigmaX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)SIGMAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:SigmaX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)SIGMAX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:SigmaY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)SIGMAY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:SigmaY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)SIGMAY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:SigmaXY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)SIGMAXY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:SigmaXY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)SIGMAXY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:SkewX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)SKEWX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:SkewX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)SKEWX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:SkewY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)SKEWY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:SkewY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)SKEWY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:KurtosisX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)KURTOSISX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:KurtosisX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)KURTOSISX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:KurtosisY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)KURTOSISY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:KurtosisY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)KURTOSISY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:Eccentricity") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)ECCENTRICITY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:Eccentricity_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)ECCENTRICITY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:Orientation") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)ORIENTATION_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:Orientation_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)ORIENTATION_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control time series # -################################################################### -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSMinValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,0,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSMinX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,1,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSMinY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,2,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSMaxValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,3,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSMaxX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,4,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSMaxY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,5,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSMeanValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,6,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSSigma") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,7,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,8,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSNet") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,9,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSCentroidTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,10,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSCentroidX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,11,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSCentroidY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,12,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSSigmaX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,13,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSSigmaY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,14,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSSigmaXY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,15,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSSkewX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,16,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSSkewY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,17,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSKurtosisX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,18,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSKurtosisY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,19,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSEccentricity") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,20,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSOrientation") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,21,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:TSTimestamp") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3_TS,22,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control profiles # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT3:ComputeProfiles") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)COMPUTE_PROFILES") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT3:ComputeProfiles_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)COMPUTE_PROFILES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ProfileSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)PROFILE_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:ProfileSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)PROFILE_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT3:CursorX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)CURSOR_X") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:CursorX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)CURSOR_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT3:CursorY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)CURSOR_Y") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:CursorY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)CURSOR_Y") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:CursorVal") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)CURSOR_VAL") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:ProfileAverageX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)PROFILE_AVERAGE_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:ProfileAverageY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)PROFILE_AVERAGE_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:ProfileThresholdX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)PROFILE_THRESHOLD_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:ProfileThresholdY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)PROFILE_THRESHOLD_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:ProfileCentroidX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)PROFILE_CENTROID_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:ProfileCentroidY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)PROFILE_CENTROID_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:ProfileCursorX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)PROFILE_CURSOR_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:ProfileCursorY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)PROFILE_CURSOR_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These are used to define the histogram # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT3:ComputeHistogram") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)COMPUTE_HISTOGRAM") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT3:ComputeHistogram_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)COMPUTE_HISTOGRAM") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT3:HistSize") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)HIST_SIZE") - field(VAL, "256") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:HistSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)HIST_SIZE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:HistMin") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)HIST_MIN") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:HistMin_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)HIST_MIN") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:HistMax") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)HIST_MAX") - field(VAL, "255") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:HistMax_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)HIST_MAX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT3:HistBelow") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)HIST_BELOW") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:HistBelow_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)HIST_BELOW") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT3:HistAbove") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)HIST_ABOVE") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:HistAbove_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)HIST_ABOVE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT3:HistEntropy") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat3,0,1)HIST_ENTROPY") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT3:HistEntropy_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)HIST_ENTROPY") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:Histogram_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)HIST_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT3:HistogramX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat3,0,1)HIST_X_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - 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, "S03SIM-EA-FSCN-02:STAT3:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:ProfileSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:STAT3:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:STAT3:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:STAT3:CursorX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT3:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT3:ProfileSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:STAT3:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:STAT3:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:STAT3:CursorY.HOPR NPP") -} - -################################################################### -# These records reset the statistics # -################################################################### -record(sseq, "S03SIM-EA-FSCN-02:STAT3:Reset") -{ - field(LNK1, "S03SIM-EA-FSCN-02:STAT3:MinValue PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:STAT3:MaxValue PP MS") - field(LNK3, "S03SIM-EA-FSCN-02:STAT3:MeanValue PP MS") - field(LNK4, "S03SIM-EA-FSCN-02:STAT3:SigmaValue PP MS") - field(LNK5, "S03SIM-EA-FSCN-02:STAT3:Total PP MS") - field(LNK6, "S03SIM-EA-FSCN-02:STAT3:Net PP MS") - field(LNK7, "S03SIM-EA-FSCN-02:STAT3:MinX PP MS") - field(LNK8, "S03SIM-EA-FSCN-02:STAT3:MinY PP MS") - field(LNK9, "S03SIM-EA-FSCN-02:STAT3:MaxX PP MS") - field(LNKA, "S03SIM-EA-FSCN-02:STAT3:MaxY PP MS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Reset1") -} - -record(sseq, "S03SIM-EA-FSCN-02:STAT3:Reset1") -{ - field(LNK1, "S03SIM-EA-FSCN-02:STAT3:CentroidX PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:STAT3:CentroidY PP MS") - field(LNK3, "S03SIM-EA-FSCN-02:STAT3:SigmaX PP MS") - field(LNK4, "S03SIM-EA-FSCN-02:STAT3:SigmaY PP MS") - field(LNK5, "S03SIM-EA-FSCN-02:STAT3:SigmaXY PP MS") - field(LNK6, "S03SIM-EA-FSCN-02:STAT3:CentroidTotal PP MS") - field(LNK7, "S03SIM-EA-FSCN-02:STAT3:SkewX PP MS") - field(LNK8, "S03SIM-EA-FSCN-02:STAT3:SkewY PP MS") - field(LNK9, "S03SIM-EA-FSCN-02:STAT3:KurtosisX PP MS") - field(LNKA, "S03SIM-EA-FSCN-02:STAT3:KurtosisY PP MS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT3:Reset2") -} - -record(sseq, "S03SIM-EA-FSCN-02:STAT3:Reset2") -{ - field(LNK1, "S03SIM-EA-FSCN-02:STAT3:Eccentricity PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:STAT3:Orientation PP MS") - field(LNK3, "S03SIM-EA-FSCN-02:STAT3:HistBelow PP MS") - field(LNK4, "S03SIM-EA-FSCN-02:STAT3:HistAbove PP MS") - field(LNK5, "S03SIM-EA-FSCN-02:STAT3:HistEntropy PP MS") -} - -#=================================================================# -# Template file: NDStats.template - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, NCHANS, Number of channels -# % macro, XSIZE, x size -# % macro, YSIZE, y size -# % macro, HIST_SIZE, hist size -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Timeout -# % macro, TS_PORT, TS port - -# This associates the template with an edm screen -# % gui, FSCN2.stats.stat4, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-02,R=:STAT4: - -# This associates a BOY screen with the template -# % gui, FSCN2.stats.stat4, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-02, R=:STAT4:, DESC=Statistics -# % gui, FSCN2.stats.stat4, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:STAT4:, DESC=Statistics -# % gui, FSCN2.stats.stat4, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-02, R=:STAT4:, DESC=Statistics - - -# % gui, FSCN2.stats.stat4, groupHeading, Info -# % gui, FSCN2.stats.stat4, readback, Port name, S03SIM-EA-FSCN-02:STAT4:PortName_RBV -# % gui, FSCN2.stats.stat4, readback, Plugin type, S03SIM-EA-FSCN-02:STAT4:PluginType_RBV -# Input -# % gui, FSCN2.stats.stat4, demandString, Input, S03SIM-EA-FSCN-02:STAT4:NDArrayPort -# % gui, FSCN2.stats.stat4, readback, Input, S03SIM-EA-FSCN-02:STAT4:NDArrayPort_RBV - -# % gui, FSCN2.stats.stat4, groupHeading, Callback -# % gui, FSCN2.stats.stat4, enum, Callbacks, S03SIM-EA-FSCN-02:STAT4:EnableCallbacks -# % gui, FSCN2.stats.stat4, statusbits, Callbacks, S03SIM-EA-FSCN-02:STAT4:EnableCallbacks_RBV -# % gui, FSCN2.stats.stat4, demand, Min Callback Time, S03SIM-EA-FSCN-02:STAT4:MinCallbackTime -# % gui, FSCN2.stats.stat4, readback, Min Callback Time, S03SIM-EA-FSCN-02:STAT4:MinCallbackTime_RBV -# % gui, FSCN2.stats.stat4, enum, Block Callbacks, S03SIM-EA-FSCN-02:STAT4:BlockingCallbacks -# % gui, FSCN2.stats.stat4, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:STAT4:BlockingCallbacks_RBV - -# % gui, FSCN2.stats.stat4, groupHeading, Counters -# % gui, FSCN2.stats.stat4, demand, Array Counter, S03SIM-EA-FSCN-02:STAT4:ArrayCounter -# % gui, FSCN2.stats.stat4, readback, Array Counter, S03SIM-EA-FSCN-02:STAT4:ArrayCounter_RBV -# % gui, FSCN2.stats.stat4, readback, Array Rate (fps), S03SIM-EA-FSCN-02:STAT4:ArrayRate_RBV -# % gui, FSCN2.stats.stat4, readback, Queue Use, S03SIM-EA-FSCN-02:STAT4:QueueUse -# % gui, FSCN2.stats.stat4, readback, Queue Size, S03SIM-EA-FSCN-02:STAT4:QueueSize -# % gui, FSCN2.stats.stat4, demand, Dropped Arrays, S03SIM-EA-FSCN-02:STAT4:DroppedArrays -# % gui, FSCN2.stats.stat4, readback, Dropped Arrays, S03SIM-EA-FSCN-02:STAT4:DroppedArrays_RBV - -# % gui, FSCN2.stats.stat4, groupHeading, Array Settings -# % gui, FSCN2.stats.stat4, readback, Num Dimensions, S03SIM-EA-FSCN-02:STAT4:NDimensions_RBV -# % gui, FSCN2.stats.stat4, readback, Dim 0 Size, S03SIM-EA-FSCN-02:STAT4:ArraySize0_RBV -# % gui, FSCN2.stats.stat4, readback, Dim 1 Size, S03SIM-EA-FSCN-02:STAT4:ArraySize1_RBV -# % gui, FSCN2.stats.stat4, readback, Dim 2 Size, S03SIM-EA-FSCN-02:STAT4:ArraySize2_RBV -# % gui, FSCN2.stats.stat4, readback, Input Data Type, S03SIM-EA-FSCN-02:STAT4:DataType_RBV -# % gui, FSCN2.stats.stat4, readback, Colour Mode, S03SIM-EA-FSCN-02:STAT4:ColorMode_RBV -# % gui, FSCN2.stats.stat4, readback, Bayer Pattern, S03SIM-EA-FSCN-02:STAT4:BayerPattern_RBV -# % gui, FSCN2.stats.stat4, readback, Unique id, S03SIM-EA-FSCN-02:STAT4:UniqueId_RBV -# % gui, FSCN2.stats.stat4, readback, Timestamp, S03SIM-EA-FSCN-02:STAT4:TimeStamp_RBV - -# Output -# % gui, FSCN2.stats.stat4, groupHeading, Output -# % gui, FSCN2.stats.stat4, demand, Name, S03SIM-EA-FSCN-02:STAT4:Name -# % gui, FSCN2.stats.stat4, enum, Out data type, S03SIM-EA-FSCN-02:STAT4:DataTypeOut -# % gui, FSCN2.stats.stat4, readback, Out data type, S03SIM-EA-FSCN-02:STAT4:DataTypeOut_RBV -# % gui, FSCN2.stats.stat4, demand, Attributes file, S03SIM-EA-FSCN-02:STAT4:NDAttributesFile - -# Statistics -# % gui, FSCN2.stats.stat4, groupHeading, Statistics -# % gui, FSCN2.stats.stat4, enum, Compute Statistics, S03SIM-EA-FSCN-02:STAT4:ComputeStatistics -# % gui, FSCN2.stats.stat4, statusbits, Compute Statistics, S03SIM-EA-FSCN-02:STAT4:ComputeStatistics_RBV -# % gui, FSCN2.stats.stat4, demand, Background Width, S03SIM-EA-FSCN-02:STAT4:BgdWidth -# % gui, FSCN2.stats.stat4, readback, Background Width, S03SIM-EA-FSCN-02:STAT4:BgdWidth_RBV -# % gui, FSCN2.stats.stat4, readback, Minimum Value, S03SIM-EA-FSCN-02:STAT4:MinValue_RBV -# % gui, FSCN2.stats.stat4, readback, Minimum X, S03SIM-EA-FSCN-02:STAT4:MinX_RBV -# % gui, FSCN2.stats.stat4, readback, Minimum Y, S03SIM-EA-FSCN-02:STAT4:MinY_RBV -# % gui, FSCN2.stats.stat4, readback, Maximum Value, S03SIM-EA-FSCN-02:STAT4:MaxValue_RBV -# % gui, FSCN2.stats.stat4, readback, Maximum X, S03SIM-EA-FSCN-02:STAT4:MaxX_RBV -# % gui, FSCN2.stats.stat4, readback, Maximum Y, S03SIM-EA-FSCN-02:STAT4:MaxY_RBV -# % gui, FSCN2.stats.stat4, readback, Mean Value, S03SIM-EA-FSCN-02:STAT4:MeanValue_RBV -# % gui, FSCN2.stats.stat4, readback, Total, S03SIM-EA-FSCN-02:STAT4:Total_RBV -# % gui, FSCN2.stats.stat4, readback, Sigma, S03SIM-EA-FSCN-02:STAT4:Sigma_RBV -# % gui, FSCN2.stats.stat4, readback, Net, S03SIM-EA-FSCN-02:STAT4:Net_RBV -# Centroid -# % gui, FSCN2.stats.stat4, groupHeading, Centroid -# % gui, FSCN2.stats.stat4, enum, Compute Centroid, S03SIM-EA-FSCN-02:STAT4:ComputeCentroid -# % gui, FSCN2.stats.stat4, statusbits, Compute Centroid, S03SIM-EA-FSCN-02:STAT4:ComputeCentroid_RBV -# % gui, FSCN2.stats.stat4, demand, Threshold, S03SIM-EA-FSCN-02:STAT4:CentroidThreshold -# % gui, FSCN2.stats.stat4, readback, Threshold, S03SIM-EA-FSCN-02:STAT4:CentroidThreshold_RBV -# % gui, FSCN2.stats.stat4, readback, X, S03SIM-EA-FSCN-02:STAT4:CentroidX_RBV -# % gui, FSCN2.stats.stat4, readback, Sigma X, S03SIM-EA-FSCN-02:STAT4:SigmaX_RBV -# % gui, FSCN2.stats.stat4, readback, Y, S03SIM-EA-FSCN-02:STAT4:CentroidY_RBV -# % gui, FSCN2.stats.stat4, readback, Sigma Y, S03SIM-EA-FSCN-02:STAT4:SigmaY_RBV -# % gui, FSCN2.stats.stat4, readback, Sigma XY, S03SIM-EA-FSCN-02:STAT4:SigmaXY_RBV -# Histogram -# % gui, FSCN2.stats.stat4, groupHeading, Histogram -# % gui, FSCN2.stats.stat4, enum, Compute Histogram, S03SIM-EA-FSCN-02:STAT4:ComputeHistogram -# % gui, FSCN2.stats.stat4, statusbits, Compute Histogram, S03SIM-EA-FSCN-02:STAT4:ComputeHistogram_RBV -# % gui, FSCN2.stats.stat4, demand, Histogram Size, S03SIM-EA-FSCN-02:STAT4:HistSize -# % gui, FSCN2.stats.stat4, readback, Histogram Size, S03SIM-EA-FSCN-02:STAT4:HistSize_RBV -# % gui, FSCN2.stats.stat4, demand, Histogram Min, S03SIM-EA-FSCN-02:STAT4:HistMin -# % gui, FSCN2.stats.stat4, readback, Histogram Min, S03SIM-EA-FSCN-02:STAT4:HistMin_RBV -# % gui, FSCN2.stats.stat4, demand, Histogram Max, S03SIM-EA-FSCN-02:STAT4:HistMax -# % gui, FSCN2.stats.stat4, readback, Histogram Max, S03SIM-EA-FSCN-02:STAT4:HistMax_RBV -# % gui, FSCN2.stats.stat4, readback, Histogram Entropy, S03SIM-EA-FSCN-02:STAT4:HistEntropy_RBV -# Profiles -# % gui, FSCN2.stats.stat4, groupHeading, Profiles -# % gui, FSCN2.stats.stat4, enum, Compute Profiles, S03SIM-EA-FSCN-02:STAT4:ComputeProfiles -# % gui, FSCN2.stats.stat4, statusbits, Compute Profiles, S03SIM-EA-FSCN-02:STAT4:ComputeProfiles_RBV -# % gui, FSCN2.stats.stat4, demand, Cursor X, S03SIM-EA-FSCN-02:STAT4:CursorX -# % gui, FSCN2.stats.stat4, readback, Cursor X, S03SIM-EA-FSCN-02:STAT4:CursorX_RBV -# % gui, FSCN2.stats.stat4, demand, Cursor Y, S03SIM-EA-FSCN-02:STAT4:CursorY -# % gui, FSCN2.stats.stat4, readback, Cursor Y, S03SIM-EA-FSCN-02:STAT4:CursorY_RBV -# % gui, FSCN2.stats.stat4, readback, Size X, S03SIM-EA-FSCN-02:STAT4:ProfileSizeX_RBV -# % gui, FSCN2.stats.stat4, readback, Size Y, S03SIM-EA-FSCN-02:STAT4:ProfileSizeY_RBV -# Time series -# % gui, FSCN2.stats.stat4, groupHeading, Time Series -# % gui, FSCN2.stats.stat4, enum, Time Control, S03SIM-EA-FSCN-02:STAT4:TS:TSAcquire -# % gui, FSCN2.stats.stat4, statusbits, Acquiring, S03SIM-EA-FSCN-02:STAT4:TS:TSAcquiring -# % gui, FSCN2.stats.stat4, readback, Current Point, S03SIM-EA-FSCN-02:STAT4:TS:TSCurrentPoint -# % gui, FSCN2.stats.stat4, demand, Number of Points, S03SIM-EA-FSCN-02:STAT4:TS:TSNumPoints -# % gui, FSCN2.stats.stat4, enum, Update, S03SIM-EA-FSCN-02:STAT4:TS:TSRead.SCAN -# Memory -# % gui, FSCN2.stats.stat4, groupHeading, Memory -# % gui, FSCN2.stats.stat4, readback, Max memory, S03SIM-EA-FSCN-02:STAT4:PoolMaxMem -# % gui, FSCN2.stats.stat4, readback, Max buffers, S03SIM-EA-FSCN-02:STAT4:PoolMaxBuffers -# % gui, FSCN2.stats.stat4, readback, Used memory, S03SIM-EA-FSCN-02:STAT4:PoolUsedMem -# % gui, FSCN2.stats.stat4, readback, Allocated buffers, S03SIM-EA-FSCN-02:STAT4:PoolAllocBuffers -# % gui, FSCN2.stats.stat4, readback, Free buffers, S03SIM-EA-FSCN-02:STAT4:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT4:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT4:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT4:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT4:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT4:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT4:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT4:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT4:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:STAT4:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT4:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT4:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT4:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:STAT4:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT4:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT4:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:STAT4:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:STAT4:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-02:STAT4:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:STAT4:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:STAT4:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT4:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:STAT4:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-02:STAT4:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:STAT4:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:STAT4:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:STAT4:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:STAT4:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-02:STAT4:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-02:STAT4:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:STAT4:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT4:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:STAT4:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:STAT4:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT4:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT4:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-02:STAT4:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-02:STAT4:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-02:STAT4:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT4:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:STAT4:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-02:STAT4:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT4:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-02:STAT4:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)NDARRAY_PORT") - field(VAL, "FSCN2.rois.roi1") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT4:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT4:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT4:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT4:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:STAT4:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT4:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT4:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:STAT4:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-02:STAT4:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT4:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-02:STAT4:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT4:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT4:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT4:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-02:STAT4:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT4:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT4:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:STAT4:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT4:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:STAT4:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:STAT4:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT4:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:STAT4:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:STAT4:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT4:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:STAT4:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:STAT4:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:STAT4:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT4:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:STAT4:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-02:STAT4:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT4:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT4:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:STAT4:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT4:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT4:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT4:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:STAT4:AsynIO") -{ - field(PORT, "FSCN2.stats.stat4") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records contain the basic statistics # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT4:ComputeStatistics") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)COMPUTE_STATISTICS") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT4:ComputeStatistics_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)COMPUTE_STATISTICS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT4:BgdWidth") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)BGD_WIDTH") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:BgdWidth_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)BGD_WIDTH") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:MinValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)MIN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:MinValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)MIN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:MaxValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)MAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:MaxValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)MAX_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:MeanValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)MEAN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:MeanValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)MEAN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:SigmaValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)SIGMA_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:Sigma_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)SIGMA_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:Total") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:Total_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:Net") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)NET") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:Net_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)NET") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:MinX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)MIN_X") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:MinX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)MIN_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:MinY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)MIN_Y") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:MinY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)MIN_Y") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:MaxX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)MAX_X") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:MaxX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)MAX_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:MaxY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)MAX_Y") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:MaxY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)MAX_Y") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether centroid statistics are computed # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT4:ComputeCentroid") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)COMPUTE_CENTROID") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT4:ComputeCentroid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)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, "S03SIM-EA-FSCN-02:STAT4:CentroidThreshold") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)CENTROID_THRESHOLD") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:CentroidThreshold_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)CENTROID_THRESHOLD") - field(VAL, "0") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:CentroidTotal") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)CENTROID_TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:CentroidTotal_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)CENTROID_TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:CentroidX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)CENTROIDX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:CentroidX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)CENTROIDX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:CentroidY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)CENTROIDY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:CentroidY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)CENTROIDY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:SigmaX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)SIGMAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:SigmaX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)SIGMAX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:SigmaY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)SIGMAY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:SigmaY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)SIGMAY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:SigmaXY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)SIGMAXY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:SigmaXY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)SIGMAXY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:SkewX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)SKEWX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:SkewX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)SKEWX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:SkewY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)SKEWY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:SkewY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)SKEWY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:KurtosisX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)KURTOSISX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:KurtosisX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)KURTOSISX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:KurtosisY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)KURTOSISY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:KurtosisY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)KURTOSISY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:Eccentricity") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)ECCENTRICITY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:Eccentricity_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)ECCENTRICITY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:Orientation") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)ORIENTATION_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:Orientation_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)ORIENTATION_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control time series # -################################################################### -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSMinValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,0,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSMinX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,1,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSMinY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,2,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSMaxValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,3,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSMaxX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,4,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSMaxY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,5,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSMeanValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,6,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSSigma") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,7,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,8,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSNet") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,9,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSCentroidTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,10,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSCentroidX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,11,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSCentroidY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,12,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSSigmaX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,13,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSSigmaY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,14,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSSigmaXY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,15,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSSkewX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,16,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSSkewY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,17,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSKurtosisX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,18,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSKurtosisY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,19,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSEccentricity") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,20,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSOrientation") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,21,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:TSTimestamp") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4_TS,22,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control profiles # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT4:ComputeProfiles") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)COMPUTE_PROFILES") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT4:ComputeProfiles_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)COMPUTE_PROFILES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ProfileSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)PROFILE_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:ProfileSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)PROFILE_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT4:CursorX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)CURSOR_X") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:CursorX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)CURSOR_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT4:CursorY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)CURSOR_Y") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:CursorY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)CURSOR_Y") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:CursorVal") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)CURSOR_VAL") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:ProfileAverageX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)PROFILE_AVERAGE_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:ProfileAverageY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)PROFILE_AVERAGE_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:ProfileThresholdX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)PROFILE_THRESHOLD_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:ProfileThresholdY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)PROFILE_THRESHOLD_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:ProfileCentroidX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)PROFILE_CENTROID_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:ProfileCentroidY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)PROFILE_CENTROID_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:ProfileCursorX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)PROFILE_CURSOR_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:ProfileCursorY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)PROFILE_CURSOR_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These are used to define the histogram # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT4:ComputeHistogram") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)COMPUTE_HISTOGRAM") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT4:ComputeHistogram_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)COMPUTE_HISTOGRAM") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT4:HistSize") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)HIST_SIZE") - field(VAL, "256") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:HistSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)HIST_SIZE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:HistMin") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)HIST_MIN") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:HistMin_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)HIST_MIN") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:HistMax") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)HIST_MAX") - field(VAL, "255") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:HistMax_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)HIST_MAX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT4:HistBelow") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)HIST_BELOW") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:HistBelow_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)HIST_BELOW") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT4:HistAbove") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)HIST_ABOVE") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:HistAbove_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)HIST_ABOVE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT4:HistEntropy") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat4,0,1)HIST_ENTROPY") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT4:HistEntropy_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)HIST_ENTROPY") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:Histogram_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)HIST_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT4:HistogramX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat4,0,1)HIST_X_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - 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, "S03SIM-EA-FSCN-02:STAT4:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:ProfileSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:STAT4:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:STAT4:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:STAT4:CursorX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT4:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT4:ProfileSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:STAT4:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:STAT4:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:STAT4:CursorY.HOPR NPP") -} - -################################################################### -# These records reset the statistics # -################################################################### -record(sseq, "S03SIM-EA-FSCN-02:STAT4:Reset") -{ - field(LNK1, "S03SIM-EA-FSCN-02:STAT4:MinValue PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:STAT4:MaxValue PP MS") - field(LNK3, "S03SIM-EA-FSCN-02:STAT4:MeanValue PP MS") - field(LNK4, "S03SIM-EA-FSCN-02:STAT4:SigmaValue PP MS") - field(LNK5, "S03SIM-EA-FSCN-02:STAT4:Total PP MS") - field(LNK6, "S03SIM-EA-FSCN-02:STAT4:Net PP MS") - field(LNK7, "S03SIM-EA-FSCN-02:STAT4:MinX PP MS") - field(LNK8, "S03SIM-EA-FSCN-02:STAT4:MinY PP MS") - field(LNK9, "S03SIM-EA-FSCN-02:STAT4:MaxX PP MS") - field(LNKA, "S03SIM-EA-FSCN-02:STAT4:MaxY PP MS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Reset1") -} - -record(sseq, "S03SIM-EA-FSCN-02:STAT4:Reset1") -{ - field(LNK1, "S03SIM-EA-FSCN-02:STAT4:CentroidX PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:STAT4:CentroidY PP MS") - field(LNK3, "S03SIM-EA-FSCN-02:STAT4:SigmaX PP MS") - field(LNK4, "S03SIM-EA-FSCN-02:STAT4:SigmaY PP MS") - field(LNK5, "S03SIM-EA-FSCN-02:STAT4:SigmaXY PP MS") - field(LNK6, "S03SIM-EA-FSCN-02:STAT4:CentroidTotal PP MS") - field(LNK7, "S03SIM-EA-FSCN-02:STAT4:SkewX PP MS") - field(LNK8, "S03SIM-EA-FSCN-02:STAT4:SkewY PP MS") - field(LNK9, "S03SIM-EA-FSCN-02:STAT4:KurtosisX PP MS") - field(LNKA, "S03SIM-EA-FSCN-02:STAT4:KurtosisY PP MS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT4:Reset2") -} - -record(sseq, "S03SIM-EA-FSCN-02:STAT4:Reset2") -{ - field(LNK1, "S03SIM-EA-FSCN-02:STAT4:Eccentricity PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:STAT4:Orientation PP MS") - field(LNK3, "S03SIM-EA-FSCN-02:STAT4:HistBelow PP MS") - field(LNK4, "S03SIM-EA-FSCN-02:STAT4:HistAbove PP MS") - field(LNK5, "S03SIM-EA-FSCN-02:STAT4:HistEntropy PP MS") -} - -#=================================================================# -# Template file: NDStats.template - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, NCHANS, Number of channels -# % macro, XSIZE, x size -# % macro, YSIZE, y size -# % macro, HIST_SIZE, hist size -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Timeout -# % macro, TS_PORT, TS port - -# This associates the template with an edm screen -# % gui, FSCN2.stats.stat5, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-02,R=:STAT5: - -# This associates a BOY screen with the template -# % gui, FSCN2.stats.stat5, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-02, R=:STAT5:, DESC=Statistics -# % gui, FSCN2.stats.stat5, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:STAT5:, DESC=Statistics -# % gui, FSCN2.stats.stat5, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-02, R=:STAT5:, DESC=Statistics - - -# % gui, FSCN2.stats.stat5, groupHeading, Info -# % gui, FSCN2.stats.stat5, readback, Port name, S03SIM-EA-FSCN-02:STAT5:PortName_RBV -# % gui, FSCN2.stats.stat5, readback, Plugin type, S03SIM-EA-FSCN-02:STAT5:PluginType_RBV -# Input -# % gui, FSCN2.stats.stat5, demandString, Input, S03SIM-EA-FSCN-02:STAT5:NDArrayPort -# % gui, FSCN2.stats.stat5, readback, Input, S03SIM-EA-FSCN-02:STAT5:NDArrayPort_RBV - -# % gui, FSCN2.stats.stat5, groupHeading, Callback -# % gui, FSCN2.stats.stat5, enum, Callbacks, S03SIM-EA-FSCN-02:STAT5:EnableCallbacks -# % gui, FSCN2.stats.stat5, statusbits, Callbacks, S03SIM-EA-FSCN-02:STAT5:EnableCallbacks_RBV -# % gui, FSCN2.stats.stat5, demand, Min Callback Time, S03SIM-EA-FSCN-02:STAT5:MinCallbackTime -# % gui, FSCN2.stats.stat5, readback, Min Callback Time, S03SIM-EA-FSCN-02:STAT5:MinCallbackTime_RBV -# % gui, FSCN2.stats.stat5, enum, Block Callbacks, S03SIM-EA-FSCN-02:STAT5:BlockingCallbacks -# % gui, FSCN2.stats.stat5, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:STAT5:BlockingCallbacks_RBV - -# % gui, FSCN2.stats.stat5, groupHeading, Counters -# % gui, FSCN2.stats.stat5, demand, Array Counter, S03SIM-EA-FSCN-02:STAT5:ArrayCounter -# % gui, FSCN2.stats.stat5, readback, Array Counter, S03SIM-EA-FSCN-02:STAT5:ArrayCounter_RBV -# % gui, FSCN2.stats.stat5, readback, Array Rate (fps), S03SIM-EA-FSCN-02:STAT5:ArrayRate_RBV -# % gui, FSCN2.stats.stat5, readback, Queue Use, S03SIM-EA-FSCN-02:STAT5:QueueUse -# % gui, FSCN2.stats.stat5, readback, Queue Size, S03SIM-EA-FSCN-02:STAT5:QueueSize -# % gui, FSCN2.stats.stat5, demand, Dropped Arrays, S03SIM-EA-FSCN-02:STAT5:DroppedArrays -# % gui, FSCN2.stats.stat5, readback, Dropped Arrays, S03SIM-EA-FSCN-02:STAT5:DroppedArrays_RBV - -# % gui, FSCN2.stats.stat5, groupHeading, Array Settings -# % gui, FSCN2.stats.stat5, readback, Num Dimensions, S03SIM-EA-FSCN-02:STAT5:NDimensions_RBV -# % gui, FSCN2.stats.stat5, readback, Dim 0 Size, S03SIM-EA-FSCN-02:STAT5:ArraySize0_RBV -# % gui, FSCN2.stats.stat5, readback, Dim 1 Size, S03SIM-EA-FSCN-02:STAT5:ArraySize1_RBV -# % gui, FSCN2.stats.stat5, readback, Dim 2 Size, S03SIM-EA-FSCN-02:STAT5:ArraySize2_RBV -# % gui, FSCN2.stats.stat5, readback, Input Data Type, S03SIM-EA-FSCN-02:STAT5:DataType_RBV -# % gui, FSCN2.stats.stat5, readback, Colour Mode, S03SIM-EA-FSCN-02:STAT5:ColorMode_RBV -# % gui, FSCN2.stats.stat5, readback, Bayer Pattern, S03SIM-EA-FSCN-02:STAT5:BayerPattern_RBV -# % gui, FSCN2.stats.stat5, readback, Unique id, S03SIM-EA-FSCN-02:STAT5:UniqueId_RBV -# % gui, FSCN2.stats.stat5, readback, Timestamp, S03SIM-EA-FSCN-02:STAT5:TimeStamp_RBV - -# Output -# % gui, FSCN2.stats.stat5, groupHeading, Output -# % gui, FSCN2.stats.stat5, demand, Name, S03SIM-EA-FSCN-02:STAT5:Name -# % gui, FSCN2.stats.stat5, enum, Out data type, S03SIM-EA-FSCN-02:STAT5:DataTypeOut -# % gui, FSCN2.stats.stat5, readback, Out data type, S03SIM-EA-FSCN-02:STAT5:DataTypeOut_RBV -# % gui, FSCN2.stats.stat5, demand, Attributes file, S03SIM-EA-FSCN-02:STAT5:NDAttributesFile - -# Statistics -# % gui, FSCN2.stats.stat5, groupHeading, Statistics -# % gui, FSCN2.stats.stat5, enum, Compute Statistics, S03SIM-EA-FSCN-02:STAT5:ComputeStatistics -# % gui, FSCN2.stats.stat5, statusbits, Compute Statistics, S03SIM-EA-FSCN-02:STAT5:ComputeStatistics_RBV -# % gui, FSCN2.stats.stat5, demand, Background Width, S03SIM-EA-FSCN-02:STAT5:BgdWidth -# % gui, FSCN2.stats.stat5, readback, Background Width, S03SIM-EA-FSCN-02:STAT5:BgdWidth_RBV -# % gui, FSCN2.stats.stat5, readback, Minimum Value, S03SIM-EA-FSCN-02:STAT5:MinValue_RBV -# % gui, FSCN2.stats.stat5, readback, Minimum X, S03SIM-EA-FSCN-02:STAT5:MinX_RBV -# % gui, FSCN2.stats.stat5, readback, Minimum Y, S03SIM-EA-FSCN-02:STAT5:MinY_RBV -# % gui, FSCN2.stats.stat5, readback, Maximum Value, S03SIM-EA-FSCN-02:STAT5:MaxValue_RBV -# % gui, FSCN2.stats.stat5, readback, Maximum X, S03SIM-EA-FSCN-02:STAT5:MaxX_RBV -# % gui, FSCN2.stats.stat5, readback, Maximum Y, S03SIM-EA-FSCN-02:STAT5:MaxY_RBV -# % gui, FSCN2.stats.stat5, readback, Mean Value, S03SIM-EA-FSCN-02:STAT5:MeanValue_RBV -# % gui, FSCN2.stats.stat5, readback, Total, S03SIM-EA-FSCN-02:STAT5:Total_RBV -# % gui, FSCN2.stats.stat5, readback, Sigma, S03SIM-EA-FSCN-02:STAT5:Sigma_RBV -# % gui, FSCN2.stats.stat5, readback, Net, S03SIM-EA-FSCN-02:STAT5:Net_RBV -# Centroid -# % gui, FSCN2.stats.stat5, groupHeading, Centroid -# % gui, FSCN2.stats.stat5, enum, Compute Centroid, S03SIM-EA-FSCN-02:STAT5:ComputeCentroid -# % gui, FSCN2.stats.stat5, statusbits, Compute Centroid, S03SIM-EA-FSCN-02:STAT5:ComputeCentroid_RBV -# % gui, FSCN2.stats.stat5, demand, Threshold, S03SIM-EA-FSCN-02:STAT5:CentroidThreshold -# % gui, FSCN2.stats.stat5, readback, Threshold, S03SIM-EA-FSCN-02:STAT5:CentroidThreshold_RBV -# % gui, FSCN2.stats.stat5, readback, X, S03SIM-EA-FSCN-02:STAT5:CentroidX_RBV -# % gui, FSCN2.stats.stat5, readback, Sigma X, S03SIM-EA-FSCN-02:STAT5:SigmaX_RBV -# % gui, FSCN2.stats.stat5, readback, Y, S03SIM-EA-FSCN-02:STAT5:CentroidY_RBV -# % gui, FSCN2.stats.stat5, readback, Sigma Y, S03SIM-EA-FSCN-02:STAT5:SigmaY_RBV -# % gui, FSCN2.stats.stat5, readback, Sigma XY, S03SIM-EA-FSCN-02:STAT5:SigmaXY_RBV -# Histogram -# % gui, FSCN2.stats.stat5, groupHeading, Histogram -# % gui, FSCN2.stats.stat5, enum, Compute Histogram, S03SIM-EA-FSCN-02:STAT5:ComputeHistogram -# % gui, FSCN2.stats.stat5, statusbits, Compute Histogram, S03SIM-EA-FSCN-02:STAT5:ComputeHistogram_RBV -# % gui, FSCN2.stats.stat5, demand, Histogram Size, S03SIM-EA-FSCN-02:STAT5:HistSize -# % gui, FSCN2.stats.stat5, readback, Histogram Size, S03SIM-EA-FSCN-02:STAT5:HistSize_RBV -# % gui, FSCN2.stats.stat5, demand, Histogram Min, S03SIM-EA-FSCN-02:STAT5:HistMin -# % gui, FSCN2.stats.stat5, readback, Histogram Min, S03SIM-EA-FSCN-02:STAT5:HistMin_RBV -# % gui, FSCN2.stats.stat5, demand, Histogram Max, S03SIM-EA-FSCN-02:STAT5:HistMax -# % gui, FSCN2.stats.stat5, readback, Histogram Max, S03SIM-EA-FSCN-02:STAT5:HistMax_RBV -# % gui, FSCN2.stats.stat5, readback, Histogram Entropy, S03SIM-EA-FSCN-02:STAT5:HistEntropy_RBV -# Profiles -# % gui, FSCN2.stats.stat5, groupHeading, Profiles -# % gui, FSCN2.stats.stat5, enum, Compute Profiles, S03SIM-EA-FSCN-02:STAT5:ComputeProfiles -# % gui, FSCN2.stats.stat5, statusbits, Compute Profiles, S03SIM-EA-FSCN-02:STAT5:ComputeProfiles_RBV -# % gui, FSCN2.stats.stat5, demand, Cursor X, S03SIM-EA-FSCN-02:STAT5:CursorX -# % gui, FSCN2.stats.stat5, readback, Cursor X, S03SIM-EA-FSCN-02:STAT5:CursorX_RBV -# % gui, FSCN2.stats.stat5, demand, Cursor Y, S03SIM-EA-FSCN-02:STAT5:CursorY -# % gui, FSCN2.stats.stat5, readback, Cursor Y, S03SIM-EA-FSCN-02:STAT5:CursorY_RBV -# % gui, FSCN2.stats.stat5, readback, Size X, S03SIM-EA-FSCN-02:STAT5:ProfileSizeX_RBV -# % gui, FSCN2.stats.stat5, readback, Size Y, S03SIM-EA-FSCN-02:STAT5:ProfileSizeY_RBV -# Time series -# % gui, FSCN2.stats.stat5, groupHeading, Time Series -# % gui, FSCN2.stats.stat5, enum, Time Control, S03SIM-EA-FSCN-02:STAT5:TS:TSAcquire -# % gui, FSCN2.stats.stat5, statusbits, Acquiring, S03SIM-EA-FSCN-02:STAT5:TS:TSAcquiring -# % gui, FSCN2.stats.stat5, readback, Current Point, S03SIM-EA-FSCN-02:STAT5:TS:TSCurrentPoint -# % gui, FSCN2.stats.stat5, demand, Number of Points, S03SIM-EA-FSCN-02:STAT5:TS:TSNumPoints -# % gui, FSCN2.stats.stat5, enum, Update, S03SIM-EA-FSCN-02:STAT5:TS:TSRead.SCAN -# Memory -# % gui, FSCN2.stats.stat5, groupHeading, Memory -# % gui, FSCN2.stats.stat5, readback, Max memory, S03SIM-EA-FSCN-02:STAT5:PoolMaxMem -# % gui, FSCN2.stats.stat5, readback, Max buffers, S03SIM-EA-FSCN-02:STAT5:PoolMaxBuffers -# % gui, FSCN2.stats.stat5, readback, Used memory, S03SIM-EA-FSCN-02:STAT5:PoolUsedMem -# % gui, FSCN2.stats.stat5, readback, Allocated buffers, S03SIM-EA-FSCN-02:STAT5:PoolAllocBuffers -# % gui, FSCN2.stats.stat5, readback, Free buffers, S03SIM-EA-FSCN-02:STAT5:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT5:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT5:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT5:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT5:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT5:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT5:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT5:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT5:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:STAT5:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT5:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT5:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT5:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:STAT5:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT5:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT5:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:STAT5:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:STAT5:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-02:STAT5:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:STAT5:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:STAT5:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT5:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:STAT5:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-02:STAT5:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:STAT5:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:STAT5:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:STAT5:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:STAT5:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-02:STAT5:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-02:STAT5:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:STAT5:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT5:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:STAT5:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:STAT5:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT5:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT5:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-02:STAT5:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-02:STAT5:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-02:STAT5:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT5:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:STAT5:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-02:STAT5:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT5:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-02:STAT5:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)NDARRAY_PORT") - field(VAL, "FSCN2.rois.roi1") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT5:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT5:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT5:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT5:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:STAT5:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT5:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT5:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:STAT5:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-02:STAT5:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT5:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-02:STAT5:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT5:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT5:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT5:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-02:STAT5:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT5:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT5:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:STAT5:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT5:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:STAT5:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:STAT5:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT5:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:STAT5:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:STAT5:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT5:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:STAT5:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:STAT5:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:STAT5:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT5:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:STAT5:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-02:STAT5:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT5:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT5:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:STAT5:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT5:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT5:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT5:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:STAT5:AsynIO") -{ - field(PORT, "FSCN2.stats.stat5") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records contain the basic statistics # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT5:ComputeStatistics") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)COMPUTE_STATISTICS") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT5:ComputeStatistics_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)COMPUTE_STATISTICS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT5:BgdWidth") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)BGD_WIDTH") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:BgdWidth_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)BGD_WIDTH") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:MinValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)MIN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:MinValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)MIN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:MaxValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)MAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:MaxValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)MAX_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:MeanValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)MEAN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:MeanValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)MEAN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:SigmaValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)SIGMA_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:Sigma_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)SIGMA_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:Total") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:Total_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:Net") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)NET") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:Net_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)NET") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:MinX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)MIN_X") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:MinX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)MIN_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:MinY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)MIN_Y") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:MinY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)MIN_Y") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:MaxX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)MAX_X") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:MaxX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)MAX_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:MaxY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)MAX_Y") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:MaxY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)MAX_Y") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether centroid statistics are computed # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT5:ComputeCentroid") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)COMPUTE_CENTROID") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT5:ComputeCentroid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)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, "S03SIM-EA-FSCN-02:STAT5:CentroidThreshold") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)CENTROID_THRESHOLD") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:CentroidThreshold_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)CENTROID_THRESHOLD") - field(VAL, "0") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:CentroidTotal") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)CENTROID_TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:CentroidTotal_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)CENTROID_TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:CentroidX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)CENTROIDX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:CentroidX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)CENTROIDX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:CentroidY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)CENTROIDY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:CentroidY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)CENTROIDY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:SigmaX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)SIGMAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:SigmaX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)SIGMAX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:SigmaY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)SIGMAY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:SigmaY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)SIGMAY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:SigmaXY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)SIGMAXY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:SigmaXY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)SIGMAXY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:SkewX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)SKEWX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:SkewX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)SKEWX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:SkewY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)SKEWY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:SkewY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)SKEWY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:KurtosisX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)KURTOSISX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:KurtosisX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)KURTOSISX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:KurtosisY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)KURTOSISY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:KurtosisY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)KURTOSISY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:Eccentricity") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)ECCENTRICITY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:Eccentricity_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)ECCENTRICITY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:Orientation") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)ORIENTATION_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:Orientation_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)ORIENTATION_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control time series # -################################################################### -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSMinValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,0,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSMinX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,1,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSMinY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,2,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSMaxValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,3,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSMaxX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,4,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSMaxY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,5,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSMeanValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,6,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSSigma") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,7,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,8,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSNet") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,9,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSCentroidTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,10,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSCentroidX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,11,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSCentroidY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,12,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSSigmaX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,13,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSSigmaY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,14,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSSigmaXY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,15,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSSkewX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,16,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSSkewY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,17,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSKurtosisX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,18,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSKurtosisY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,19,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSEccentricity") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,20,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSOrientation") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,21,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:TSTimestamp") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5_TS,22,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control profiles # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT5:ComputeProfiles") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)COMPUTE_PROFILES") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT5:ComputeProfiles_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)COMPUTE_PROFILES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ProfileSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)PROFILE_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:ProfileSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)PROFILE_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT5:CursorX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)CURSOR_X") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:CursorX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)CURSOR_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT5:CursorY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)CURSOR_Y") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:CursorY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)CURSOR_Y") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:CursorVal") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)CURSOR_VAL") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:ProfileAverageX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)PROFILE_AVERAGE_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:ProfileAverageY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)PROFILE_AVERAGE_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:ProfileThresholdX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)PROFILE_THRESHOLD_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:ProfileThresholdY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)PROFILE_THRESHOLD_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:ProfileCentroidX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)PROFILE_CENTROID_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:ProfileCentroidY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)PROFILE_CENTROID_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:ProfileCursorX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)PROFILE_CURSOR_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:ProfileCursorY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)PROFILE_CURSOR_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These are used to define the histogram # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT5:ComputeHistogram") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)COMPUTE_HISTOGRAM") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT5:ComputeHistogram_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)COMPUTE_HISTOGRAM") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT5:HistSize") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)HIST_SIZE") - field(VAL, "256") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:HistSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)HIST_SIZE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:HistMin") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)HIST_MIN") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:HistMin_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)HIST_MIN") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:HistMax") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)HIST_MAX") - field(VAL, "255") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:HistMax_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)HIST_MAX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT5:HistBelow") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)HIST_BELOW") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:HistBelow_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)HIST_BELOW") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT5:HistAbove") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)HIST_ABOVE") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:HistAbove_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)HIST_ABOVE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT5:HistEntropy") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat5,0,1)HIST_ENTROPY") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT5:HistEntropy_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)HIST_ENTROPY") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:Histogram_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)HIST_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT5:HistogramX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat5,0,1)HIST_X_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - 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, "S03SIM-EA-FSCN-02:STAT5:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:ProfileSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:STAT5:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:STAT5:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:STAT5:CursorX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT5:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT5:ProfileSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:STAT5:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:STAT5:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:STAT5:CursorY.HOPR NPP") -} - -################################################################### -# These records reset the statistics # -################################################################### -record(sseq, "S03SIM-EA-FSCN-02:STAT5:Reset") -{ - field(LNK1, "S03SIM-EA-FSCN-02:STAT5:MinValue PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:STAT5:MaxValue PP MS") - field(LNK3, "S03SIM-EA-FSCN-02:STAT5:MeanValue PP MS") - field(LNK4, "S03SIM-EA-FSCN-02:STAT5:SigmaValue PP MS") - field(LNK5, "S03SIM-EA-FSCN-02:STAT5:Total PP MS") - field(LNK6, "S03SIM-EA-FSCN-02:STAT5:Net PP MS") - field(LNK7, "S03SIM-EA-FSCN-02:STAT5:MinX PP MS") - field(LNK8, "S03SIM-EA-FSCN-02:STAT5:MinY PP MS") - field(LNK9, "S03SIM-EA-FSCN-02:STAT5:MaxX PP MS") - field(LNKA, "S03SIM-EA-FSCN-02:STAT5:MaxY PP MS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Reset1") -} - -record(sseq, "S03SIM-EA-FSCN-02:STAT5:Reset1") -{ - field(LNK1, "S03SIM-EA-FSCN-02:STAT5:CentroidX PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:STAT5:CentroidY PP MS") - field(LNK3, "S03SIM-EA-FSCN-02:STAT5:SigmaX PP MS") - field(LNK4, "S03SIM-EA-FSCN-02:STAT5:SigmaY PP MS") - field(LNK5, "S03SIM-EA-FSCN-02:STAT5:SigmaXY PP MS") - field(LNK6, "S03SIM-EA-FSCN-02:STAT5:CentroidTotal PP MS") - field(LNK7, "S03SIM-EA-FSCN-02:STAT5:SkewX PP MS") - field(LNK8, "S03SIM-EA-FSCN-02:STAT5:SkewY PP MS") - field(LNK9, "S03SIM-EA-FSCN-02:STAT5:KurtosisX PP MS") - field(LNKA, "S03SIM-EA-FSCN-02:STAT5:KurtosisY PP MS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT5:Reset2") -} - -record(sseq, "S03SIM-EA-FSCN-02:STAT5:Reset2") -{ - field(LNK1, "S03SIM-EA-FSCN-02:STAT5:Eccentricity PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:STAT5:Orientation PP MS") - field(LNK3, "S03SIM-EA-FSCN-02:STAT5:HistBelow PP MS") - field(LNK4, "S03SIM-EA-FSCN-02:STAT5:HistAbove PP MS") - field(LNK5, "S03SIM-EA-FSCN-02:STAT5:HistEntropy PP MS") -} - -#=================================================================# -# Template file: NDStats.template - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, NCHANS, Number of channels -# % macro, XSIZE, x size -# % macro, YSIZE, y size -# % macro, HIST_SIZE, hist size -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Timeout -# % macro, TS_PORT, TS port - -# This associates the template with an edm screen -# % gui, FSCN2.stats.stat6, edmtab, NDStats.edl, P=S03SIM-EA-FSCN-02,R=:STAT6: - -# This associates a BOY screen with the template -# % gui, FSCN2.stats.stat6, boydetail,ADApp_opi/dls/stats_detail.opi, P=S03SIM-EA-FSCN-02, R=:STAT6:, DESC=Statistics -# % gui, FSCN2.stats.stat6, boyembed, ADApp_opi/dls/stats_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:STAT6:, DESC=Statistics -# % gui, FSCN2.stats.stat6, boyembed, ADApp_opi/dls/stats_embed.opi, P=S03SIM-EA-FSCN-02, R=:STAT6:, DESC=Statistics - - -# % gui, FSCN2.stats.stat6, groupHeading, Info -# % gui, FSCN2.stats.stat6, readback, Port name, S03SIM-EA-FSCN-02:STAT6:PortName_RBV -# % gui, FSCN2.stats.stat6, readback, Plugin type, S03SIM-EA-FSCN-02:STAT6:PluginType_RBV -# Input -# % gui, FSCN2.stats.stat6, demandString, Input, S03SIM-EA-FSCN-02:STAT6:NDArrayPort -# % gui, FSCN2.stats.stat6, readback, Input, S03SIM-EA-FSCN-02:STAT6:NDArrayPort_RBV - -# % gui, FSCN2.stats.stat6, groupHeading, Callback -# % gui, FSCN2.stats.stat6, enum, Callbacks, S03SIM-EA-FSCN-02:STAT6:EnableCallbacks -# % gui, FSCN2.stats.stat6, statusbits, Callbacks, S03SIM-EA-FSCN-02:STAT6:EnableCallbacks_RBV -# % gui, FSCN2.stats.stat6, demand, Min Callback Time, S03SIM-EA-FSCN-02:STAT6:MinCallbackTime -# % gui, FSCN2.stats.stat6, readback, Min Callback Time, S03SIM-EA-FSCN-02:STAT6:MinCallbackTime_RBV -# % gui, FSCN2.stats.stat6, enum, Block Callbacks, S03SIM-EA-FSCN-02:STAT6:BlockingCallbacks -# % gui, FSCN2.stats.stat6, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:STAT6:BlockingCallbacks_RBV - -# % gui, FSCN2.stats.stat6, groupHeading, Counters -# % gui, FSCN2.stats.stat6, demand, Array Counter, S03SIM-EA-FSCN-02:STAT6:ArrayCounter -# % gui, FSCN2.stats.stat6, readback, Array Counter, S03SIM-EA-FSCN-02:STAT6:ArrayCounter_RBV -# % gui, FSCN2.stats.stat6, readback, Array Rate (fps), S03SIM-EA-FSCN-02:STAT6:ArrayRate_RBV -# % gui, FSCN2.stats.stat6, readback, Queue Use, S03SIM-EA-FSCN-02:STAT6:QueueUse -# % gui, FSCN2.stats.stat6, readback, Queue Size, S03SIM-EA-FSCN-02:STAT6:QueueSize -# % gui, FSCN2.stats.stat6, demand, Dropped Arrays, S03SIM-EA-FSCN-02:STAT6:DroppedArrays -# % gui, FSCN2.stats.stat6, readback, Dropped Arrays, S03SIM-EA-FSCN-02:STAT6:DroppedArrays_RBV - -# % gui, FSCN2.stats.stat6, groupHeading, Array Settings -# % gui, FSCN2.stats.stat6, readback, Num Dimensions, S03SIM-EA-FSCN-02:STAT6:NDimensions_RBV -# % gui, FSCN2.stats.stat6, readback, Dim 0 Size, S03SIM-EA-FSCN-02:STAT6:ArraySize0_RBV -# % gui, FSCN2.stats.stat6, readback, Dim 1 Size, S03SIM-EA-FSCN-02:STAT6:ArraySize1_RBV -# % gui, FSCN2.stats.stat6, readback, Dim 2 Size, S03SIM-EA-FSCN-02:STAT6:ArraySize2_RBV -# % gui, FSCN2.stats.stat6, readback, Input Data Type, S03SIM-EA-FSCN-02:STAT6:DataType_RBV -# % gui, FSCN2.stats.stat6, readback, Colour Mode, S03SIM-EA-FSCN-02:STAT6:ColorMode_RBV -# % gui, FSCN2.stats.stat6, readback, Bayer Pattern, S03SIM-EA-FSCN-02:STAT6:BayerPattern_RBV -# % gui, FSCN2.stats.stat6, readback, Unique id, S03SIM-EA-FSCN-02:STAT6:UniqueId_RBV -# % gui, FSCN2.stats.stat6, readback, Timestamp, S03SIM-EA-FSCN-02:STAT6:TimeStamp_RBV - -# Output -# % gui, FSCN2.stats.stat6, groupHeading, Output -# % gui, FSCN2.stats.stat6, demand, Name, S03SIM-EA-FSCN-02:STAT6:Name -# % gui, FSCN2.stats.stat6, enum, Out data type, S03SIM-EA-FSCN-02:STAT6:DataTypeOut -# % gui, FSCN2.stats.stat6, readback, Out data type, S03SIM-EA-FSCN-02:STAT6:DataTypeOut_RBV -# % gui, FSCN2.stats.stat6, demand, Attributes file, S03SIM-EA-FSCN-02:STAT6:NDAttributesFile - -# Statistics -# % gui, FSCN2.stats.stat6, groupHeading, Statistics -# % gui, FSCN2.stats.stat6, enum, Compute Statistics, S03SIM-EA-FSCN-02:STAT6:ComputeStatistics -# % gui, FSCN2.stats.stat6, statusbits, Compute Statistics, S03SIM-EA-FSCN-02:STAT6:ComputeStatistics_RBV -# % gui, FSCN2.stats.stat6, demand, Background Width, S03SIM-EA-FSCN-02:STAT6:BgdWidth -# % gui, FSCN2.stats.stat6, readback, Background Width, S03SIM-EA-FSCN-02:STAT6:BgdWidth_RBV -# % gui, FSCN2.stats.stat6, readback, Minimum Value, S03SIM-EA-FSCN-02:STAT6:MinValue_RBV -# % gui, FSCN2.stats.stat6, readback, Minimum X, S03SIM-EA-FSCN-02:STAT6:MinX_RBV -# % gui, FSCN2.stats.stat6, readback, Minimum Y, S03SIM-EA-FSCN-02:STAT6:MinY_RBV -# % gui, FSCN2.stats.stat6, readback, Maximum Value, S03SIM-EA-FSCN-02:STAT6:MaxValue_RBV -# % gui, FSCN2.stats.stat6, readback, Maximum X, S03SIM-EA-FSCN-02:STAT6:MaxX_RBV -# % gui, FSCN2.stats.stat6, readback, Maximum Y, S03SIM-EA-FSCN-02:STAT6:MaxY_RBV -# % gui, FSCN2.stats.stat6, readback, Mean Value, S03SIM-EA-FSCN-02:STAT6:MeanValue_RBV -# % gui, FSCN2.stats.stat6, readback, Total, S03SIM-EA-FSCN-02:STAT6:Total_RBV -# % gui, FSCN2.stats.stat6, readback, Sigma, S03SIM-EA-FSCN-02:STAT6:Sigma_RBV -# % gui, FSCN2.stats.stat6, readback, Net, S03SIM-EA-FSCN-02:STAT6:Net_RBV -# Centroid -# % gui, FSCN2.stats.stat6, groupHeading, Centroid -# % gui, FSCN2.stats.stat6, enum, Compute Centroid, S03SIM-EA-FSCN-02:STAT6:ComputeCentroid -# % gui, FSCN2.stats.stat6, statusbits, Compute Centroid, S03SIM-EA-FSCN-02:STAT6:ComputeCentroid_RBV -# % gui, FSCN2.stats.stat6, demand, Threshold, S03SIM-EA-FSCN-02:STAT6:CentroidThreshold -# % gui, FSCN2.stats.stat6, readback, Threshold, S03SIM-EA-FSCN-02:STAT6:CentroidThreshold_RBV -# % gui, FSCN2.stats.stat6, readback, X, S03SIM-EA-FSCN-02:STAT6:CentroidX_RBV -# % gui, FSCN2.stats.stat6, readback, Sigma X, S03SIM-EA-FSCN-02:STAT6:SigmaX_RBV -# % gui, FSCN2.stats.stat6, readback, Y, S03SIM-EA-FSCN-02:STAT6:CentroidY_RBV -# % gui, FSCN2.stats.stat6, readback, Sigma Y, S03SIM-EA-FSCN-02:STAT6:SigmaY_RBV -# % gui, FSCN2.stats.stat6, readback, Sigma XY, S03SIM-EA-FSCN-02:STAT6:SigmaXY_RBV -# Histogram -# % gui, FSCN2.stats.stat6, groupHeading, Histogram -# % gui, FSCN2.stats.stat6, enum, Compute Histogram, S03SIM-EA-FSCN-02:STAT6:ComputeHistogram -# % gui, FSCN2.stats.stat6, statusbits, Compute Histogram, S03SIM-EA-FSCN-02:STAT6:ComputeHistogram_RBV -# % gui, FSCN2.stats.stat6, demand, Histogram Size, S03SIM-EA-FSCN-02:STAT6:HistSize -# % gui, FSCN2.stats.stat6, readback, Histogram Size, S03SIM-EA-FSCN-02:STAT6:HistSize_RBV -# % gui, FSCN2.stats.stat6, demand, Histogram Min, S03SIM-EA-FSCN-02:STAT6:HistMin -# % gui, FSCN2.stats.stat6, readback, Histogram Min, S03SIM-EA-FSCN-02:STAT6:HistMin_RBV -# % gui, FSCN2.stats.stat6, demand, Histogram Max, S03SIM-EA-FSCN-02:STAT6:HistMax -# % gui, FSCN2.stats.stat6, readback, Histogram Max, S03SIM-EA-FSCN-02:STAT6:HistMax_RBV -# % gui, FSCN2.stats.stat6, readback, Histogram Entropy, S03SIM-EA-FSCN-02:STAT6:HistEntropy_RBV -# Profiles -# % gui, FSCN2.stats.stat6, groupHeading, Profiles -# % gui, FSCN2.stats.stat6, enum, Compute Profiles, S03SIM-EA-FSCN-02:STAT6:ComputeProfiles -# % gui, FSCN2.stats.stat6, statusbits, Compute Profiles, S03SIM-EA-FSCN-02:STAT6:ComputeProfiles_RBV -# % gui, FSCN2.stats.stat6, demand, Cursor X, S03SIM-EA-FSCN-02:STAT6:CursorX -# % gui, FSCN2.stats.stat6, readback, Cursor X, S03SIM-EA-FSCN-02:STAT6:CursorX_RBV -# % gui, FSCN2.stats.stat6, demand, Cursor Y, S03SIM-EA-FSCN-02:STAT6:CursorY -# % gui, FSCN2.stats.stat6, readback, Cursor Y, S03SIM-EA-FSCN-02:STAT6:CursorY_RBV -# % gui, FSCN2.stats.stat6, readback, Size X, S03SIM-EA-FSCN-02:STAT6:ProfileSizeX_RBV -# % gui, FSCN2.stats.stat6, readback, Size Y, S03SIM-EA-FSCN-02:STAT6:ProfileSizeY_RBV -# Time series -# % gui, FSCN2.stats.stat6, groupHeading, Time Series -# % gui, FSCN2.stats.stat6, enum, Time Control, S03SIM-EA-FSCN-02:STAT6:TS:TSAcquire -# % gui, FSCN2.stats.stat6, statusbits, Acquiring, S03SIM-EA-FSCN-02:STAT6:TS:TSAcquiring -# % gui, FSCN2.stats.stat6, readback, Current Point, S03SIM-EA-FSCN-02:STAT6:TS:TSCurrentPoint -# % gui, FSCN2.stats.stat6, demand, Number of Points, S03SIM-EA-FSCN-02:STAT6:TS:TSNumPoints -# % gui, FSCN2.stats.stat6, enum, Update, S03SIM-EA-FSCN-02:STAT6:TS:TSRead.SCAN -# Memory -# % gui, FSCN2.stats.stat6, groupHeading, Memory -# % gui, FSCN2.stats.stat6, readback, Max memory, S03SIM-EA-FSCN-02:STAT6:PoolMaxMem -# % gui, FSCN2.stats.stat6, readback, Max buffers, S03SIM-EA-FSCN-02:STAT6:PoolMaxBuffers -# % gui, FSCN2.stats.stat6, readback, Used memory, S03SIM-EA-FSCN-02:STAT6:PoolUsedMem -# % gui, FSCN2.stats.stat6, readback, Allocated buffers, S03SIM-EA-FSCN-02:STAT6:PoolAllocBuffers -# % gui, FSCN2.stats.stat6, readback, Free buffers, S03SIM-EA-FSCN-02:STAT6:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT6:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT6:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT6:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT6:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT6:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT6:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT6:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT6:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:STAT6:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT6:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT6:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT6:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:STAT6:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT6:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT6:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:STAT6:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:STAT6:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-02:STAT6:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:STAT6:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:STAT6:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:STAT6:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:STAT6:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-02:STAT6:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:STAT6:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:STAT6:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:STAT6:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:STAT6:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-02:STAT6:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-02:STAT6:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:STAT6:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT6:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:STAT6:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:STAT6:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT6:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT6:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-02:STAT6:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-02:STAT6:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-02:STAT6:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT6:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:STAT6:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-02:STAT6:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:STAT6:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-02:STAT6:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)NDARRAY_PORT") - field(VAL, "FSCN2.rois.roi1") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:STAT6:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT6:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT6:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT6:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:STAT6:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT6:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT6:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:STAT6:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-02:STAT6:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:STAT6:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-02:STAT6:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT6:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT6:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT6:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-02:STAT6:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT6:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT6:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:STAT6:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT6:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:STAT6:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:STAT6:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT6:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:STAT6:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:STAT6:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT6:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:STAT6:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:STAT6:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:STAT6:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT6:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:STAT6:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-02:STAT6:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT6:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:STAT6:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:STAT6:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:STAT6:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT6:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT6:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:STAT6:AsynIO") -{ - field(PORT, "FSCN2.stats.stat6") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records contain the basic statistics # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT6:ComputeStatistics") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)COMPUTE_STATISTICS") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT6:ComputeStatistics_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)COMPUTE_STATISTICS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT6:BgdWidth") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)BGD_WIDTH") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:BgdWidth_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)BGD_WIDTH") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:MinValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)MIN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:MinValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)MIN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:MaxValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)MAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:MaxValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)MAX_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:MeanValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)MEAN_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:MeanValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)MEAN_VALUE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:SigmaValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)SIGMA_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:Sigma_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)SIGMA_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:Total") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:Total_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:Net") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)NET") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:Net_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)NET") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:MinX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)MIN_X") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:MinX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)MIN_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:MinY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)MIN_Y") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:MinY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)MIN_Y") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:MaxX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)MAX_X") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:MaxX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)MAX_X") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:MaxY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)MAX_Y") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:MaxY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)MAX_Y") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether centroid statistics are computed # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT6:ComputeCentroid") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)COMPUTE_CENTROID") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT6:ComputeCentroid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)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, "S03SIM-EA-FSCN-02:STAT6:CentroidThreshold") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)CENTROID_THRESHOLD") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:CentroidThreshold_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)CENTROID_THRESHOLD") - field(VAL, "0") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:CentroidTotal") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)CENTROID_TOTAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:CentroidTotal_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)CENTROID_TOTAL") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:CentroidX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)CENTROIDX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:CentroidX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)CENTROIDX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:CentroidY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)CENTROIDY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:CentroidY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)CENTROIDY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:SigmaX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)SIGMAX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:SigmaX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)SIGMAX_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:SigmaY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)SIGMAY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:SigmaY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)SIGMAY_VALUE") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:SigmaXY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)SIGMAXY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:SigmaXY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)SIGMAXY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:SkewX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)SKEWX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:SkewX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)SKEWX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:SkewY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)SKEWY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:SkewY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)SKEWY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:KurtosisX") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)KURTOSISX_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:KurtosisX_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)KURTOSISX_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:KurtosisY") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)KURTOSISY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:KurtosisY_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)KURTOSISY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:Eccentricity") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)ECCENTRICITY_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:Eccentricity_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)ECCENTRICITY_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:Orientation") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)ORIENTATION_VALUE") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:Orientation_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)ORIENTATION_VALUE") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control time series # -################################################################### -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSMinValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,0,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSMinX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,1,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSMinY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,2,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSMaxValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,3,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSMaxX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,4,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSMaxY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,5,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSMeanValue") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,6,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSSigma") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,7,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,8,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSNet") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,9,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSCentroidTotal") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,10,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSCentroidX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,11,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSCentroidY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,12,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSSigmaX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,13,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSSigmaY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,14,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSSigmaXY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,15,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSSkewX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,16,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSSkewY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,17,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSKurtosisX") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,18,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSKurtosisY") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,19,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSEccentricity") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,20,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSOrientation") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,21,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:TSTimestamp") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6_TS,22,1)TS_TIME_SERIES") - field(NELM, "1024") - field(FTVL, "DOUBLE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control profiles # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT6:ComputeProfiles") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)COMPUTE_PROFILES") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT6:ComputeProfiles_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)COMPUTE_PROFILES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ProfileSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)PROFILE_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:ProfileSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)PROFILE_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT6:CursorX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)CURSOR_X") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:CursorX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)CURSOR_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT6:CursorY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)CURSOR_Y") - field(VAL, "256") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:ProcessPlugin") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:CursorY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)CURSOR_Y") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:CursorVal") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)CURSOR_VAL") - field(PREC, "1") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:ProfileAverageX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)PROFILE_AVERAGE_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:ProfileAverageY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)PROFILE_AVERAGE_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:ProfileThresholdX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)PROFILE_THRESHOLD_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:ProfileThresholdY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)PROFILE_THRESHOLD_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:ProfileCentroidX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)PROFILE_CENTROID_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:ProfileCentroidY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)PROFILE_CENTROID_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:ProfileCursorX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)PROFILE_CURSOR_X") - field(FTVL, "DOUBLE") - field(NELM, "1292") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:ProfileCursorY_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)PROFILE_CURSOR_Y") - field(FTVL, "DOUBLE") - field(NELM, "964") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These are used to define the histogram # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:STAT6:ComputeHistogram") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)COMPUTE_HISTOGRAM") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:STAT6:ComputeHistogram_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)COMPUTE_HISTOGRAM") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT6:HistSize") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)HIST_SIZE") - field(VAL, "256") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:HistSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)HIST_SIZE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:HistMin") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)HIST_MIN") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:HistMin_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)HIST_MIN") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:HistMax") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)HIST_MAX") - field(VAL, "255") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:HistMax_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)HIST_MAX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT6:HistBelow") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)HIST_BELOW") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:HistBelow_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)HIST_BELOW") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:STAT6:HistAbove") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)HIST_ABOVE") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:HistAbove_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)HIST_ABOVE") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:STAT6:HistEntropy") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.stats.stat6,0,1)HIST_ENTROPY") -} - -record(ai, "S03SIM-EA-FSCN-02:STAT6:HistEntropy_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)HIST_ENTROPY") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:Histogram_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)HIST_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:STAT6:HistogramX_RBV") -{ - field(DTYP, "asynFloat64ArrayIn") - field(INP, "@asyn(FSCN2.stats.stat6,0,1)HIST_X_ARRAY") - field(FTVL, "DOUBLE") - field(NELM, "256") - 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, "S03SIM-EA-FSCN-02:STAT6:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:ProfileSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:STAT6:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:STAT6:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:STAT6:CursorX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:STAT6:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-02:STAT6:ProfileSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:STAT6:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:STAT6:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:STAT6:CursorY.HOPR NPP") -} - -################################################################### -# These records reset the statistics # -################################################################### -record(sseq, "S03SIM-EA-FSCN-02:STAT6:Reset") -{ - field(LNK1, "S03SIM-EA-FSCN-02:STAT6:MinValue PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:STAT6:MaxValue PP MS") - field(LNK3, "S03SIM-EA-FSCN-02:STAT6:MeanValue PP MS") - field(LNK4, "S03SIM-EA-FSCN-02:STAT6:SigmaValue PP MS") - field(LNK5, "S03SIM-EA-FSCN-02:STAT6:Total PP MS") - field(LNK6, "S03SIM-EA-FSCN-02:STAT6:Net PP MS") - field(LNK7, "S03SIM-EA-FSCN-02:STAT6:MinX PP MS") - field(LNK8, "S03SIM-EA-FSCN-02:STAT6:MinY PP MS") - field(LNK9, "S03SIM-EA-FSCN-02:STAT6:MaxX PP MS") - field(LNKA, "S03SIM-EA-FSCN-02:STAT6:MaxY PP MS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Reset1") -} - -record(sseq, "S03SIM-EA-FSCN-02:STAT6:Reset1") -{ - field(LNK1, "S03SIM-EA-FSCN-02:STAT6:CentroidX PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:STAT6:CentroidY PP MS") - field(LNK3, "S03SIM-EA-FSCN-02:STAT6:SigmaX PP MS") - field(LNK4, "S03SIM-EA-FSCN-02:STAT6:SigmaY PP MS") - field(LNK5, "S03SIM-EA-FSCN-02:STAT6:SigmaXY PP MS") - field(LNK6, "S03SIM-EA-FSCN-02:STAT6:CentroidTotal PP MS") - field(LNK7, "S03SIM-EA-FSCN-02:STAT6:SkewX PP MS") - field(LNK8, "S03SIM-EA-FSCN-02:STAT6:SkewY PP MS") - field(LNK9, "S03SIM-EA-FSCN-02:STAT6:KurtosisX PP MS") - field(LNKA, "S03SIM-EA-FSCN-02:STAT6:KurtosisY PP MS") - field(FLNK, "S03SIM-EA-FSCN-02:STAT6:Reset2") -} - -record(sseq, "S03SIM-EA-FSCN-02:STAT6:Reset2") -{ - field(LNK1, "S03SIM-EA-FSCN-02:STAT6:Eccentricity PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:STAT6:Orientation PP MS") - field(LNK3, "S03SIM-EA-FSCN-02:STAT6:HistBelow PP MS") - field(LNK4, "S03SIM-EA-FSCN-02:STAT6:HistAbove PP MS") - field(LNK5, "S03SIM-EA-FSCN-02:STAT6:HistEntropy PP MS") -} - -#=================================================================# -# Template file: NDStdArrays.template -# Database for NDStdArrays asyn driver and standard asyn device support -# Mark Rivers -# April 14, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, TYPE, Asyn Type e.g. Int32 -# % macro, FTVL, Format, e.g. Int -# % macro, NELEMENTS, Number of elements - -# This associates the template with an edm screen -# % gui, OAV.arr, edmtab, NDStdArrays.edl, P=S03SIM-DI-OAV-01,R=:ARR: - -# This associates a BOY screen with the template -# % gui, OAV.arr, boydetail,ADApp_opi/dls/array_detail.opi, P=S03SIM-DI-OAV-01, R=:ARR:, DESC=Array -# % gui, OAV.arr, boyembed, ADApp_opi/dls/array_embed_box.opi, P=S03SIM-DI-OAV-01, R=:ARR:, DESC=Array -# % gui, OAV.arr, boyembed, ADApp_opi/dls/array_embed.opi, P=S03SIM-DI-OAV-01, R=:ARR:, DESC=Array - -# Info -# % gui, OAV.arr, groupHeading, Info -# % gui, OAV.arr, readback, Port name, S03SIM-DI-OAV-01:ARR:PortName_RBV -# % gui, OAV.arr, readback, Plugin type, S03SIM-DI-OAV-01:ARR:PluginType_RBV -# Input -# % gui, OAV.arr, demandString, Input, S03SIM-DI-OAV-01:ARR:NDArrayPort -# % gui, OAV.arr, readback, Input, S03SIM-DI-OAV-01:ARR:NDArrayPort_RBV - -# % gui, OAV.arr, groupHeading, Callback -# % gui, OAV.arr, enum, Callbacks, S03SIM-DI-OAV-01:ARR:EnableCallbacks -# % gui, OAV.arr, statusbits, Callbacks, S03SIM-DI-OAV-01:ARR:EnableCallbacks_RBV -# % gui, OAV.arr, demand, Min Callback Time, S03SIM-DI-OAV-01:ARR:MinCallbackTime -# % gui, OAV.arr, readback, Min Callback Time, S03SIM-DI-OAV-01:ARR:MinCallbackTime_RBV -# % gui, OAV.arr, enum, Block Callbacks, S03SIM-DI-OAV-01:ARR:BlockingCallbacks -# % gui, OAV.arr, statusbits, Block Callbacks, S03SIM-DI-OAV-01:ARR:BlockingCallbacks_RBV - -# % gui, OAV.arr, groupHeading, Counters -# % gui, OAV.arr, demand, Array Counter, S03SIM-DI-OAV-01:ARR:ArrayCounter -# % gui, OAV.arr, readback, Array Counter, S03SIM-DI-OAV-01:ARR:ArrayCounter_RBV -# % gui, OAV.arr, readback, Array Rate (fps), S03SIM-DI-OAV-01:ARR:ArrayRate_RBV -# % gui, OAV.arr, readback, Queue Use, S03SIM-DI-OAV-01:ARR:QueueUse -# % gui, OAV.arr, readback, Queue Size, S03SIM-DI-OAV-01:ARR:QueueSize -# % gui, OAV.arr, demand, Dropped Arrays, S03SIM-DI-OAV-01:ARR:DroppedArrays -# % gui, OAV.arr, readback, Dropped Arrays, S03SIM-DI-OAV-01:ARR:DroppedArrays_RBV - -# % gui, OAV.arr, groupHeading, Array Settings -# % gui, OAV.arr, readback, Num Dimensions, S03SIM-DI-OAV-01:ARR:NDimensions_RBV -# % gui, OAV.arr, readback, Dim 0 Size, S03SIM-DI-OAV-01:ARR:ArraySize0_RBV -# % gui, OAV.arr, readback, Dim 1 Size, S03SIM-DI-OAV-01:ARR:ArraySize1_RBV -# % gui, OAV.arr, readback, Dim 2 Size, S03SIM-DI-OAV-01:ARR:ArraySize2_RBV -# % gui, OAV.arr, readback, Input Data Type, S03SIM-DI-OAV-01:ARR:DataType_RBV -# % gui, OAV.arr, readback, Colour Mode, S03SIM-DI-OAV-01:ARR:ColorMode_RBV -# % gui, OAV.arr, readback, Bayer Pattern, S03SIM-DI-OAV-01:ARR:BayerPattern_RBV -# % gui, OAV.arr, readback, Unique id, S03SIM-DI-OAV-01:ARR:UniqueId_RBV -# % gui, OAV.arr, readback, Timestamp, S03SIM-DI-OAV-01:ARR:TimeStamp_RBV - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ARR:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.arr,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ARR:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.arr,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ARR:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.arr,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ARR:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.arr,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ARR:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.arr,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ARR:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.arr,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ARR:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.arr,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:ARR:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.arr,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:ARR:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.arr,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:ARR:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:ARR:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ARR:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:ARR:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:ARR:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:ARR:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:ARR:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ARR:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:ARR:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:ARR:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:ARR:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.arr,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:ARR:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.arr,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:ARR:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.arr,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ARR:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ARR:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ARR:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ARR:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ARR:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ARR:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ARR:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ARR:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ARR:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:ARR:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.arr,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:ARR:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ARR:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ARR:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ARR:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ARR:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ARR:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ARR:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ARR:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ARR:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:ARR:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:ARR:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:ARR:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:ARR:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:ARR:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:ARR:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.arr,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ARR:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.arr,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ARR:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:ARR:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.arr,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:ARR:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:ARR:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:ARR:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.arr,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:ARR:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.arr,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:ARR:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:ARR:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:ARR:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:ARR:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ARR:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.arr,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ARR:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:ARR:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.arr,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:ARR:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.arr,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:ARR:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-DI-OAV-01:ARR:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.arr,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-DI-OAV-01:ARR:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.arr,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:ARR:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:ARR:PoolFreeBuffers") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:ARR:PoolUsedBuffers") -} - -record(calc, "S03SIM-DI-OAV-01:ARR:PoolUsedBuffers") -{ - field(INPA, "S03SIM-DI-OAV-01:ARR:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:ARR:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-DI-OAV-01:ARR:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.arr,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:ARR:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.arr,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:ARR:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.arr,0,1)NDARRAY_PORT") - field(VAL, "OAV.roi") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:ARR:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.arr,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ARR:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.arr,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ARR:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.arr,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ARR:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ARR:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.arr,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ARR:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.arr,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ARR:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:ARR:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-DI-OAV-01:ARR:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-DI-OAV-01:ARR:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:ARR:MinCallbackTime PP") -} - -record(calc, "S03SIM-DI-OAV-01:ARR:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:ARR:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-DI-OAV-01:ARR:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.arr,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:ARR:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.arr,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:ARR:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.arr,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ARR:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.arr,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:ARR:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.arr,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:ARR:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-DI-OAV-01:ARR:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.arr,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ARR:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.arr,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:ARR:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ARR:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:ARR:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ARR:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:ARR:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:ARR:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:ARR:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ARR:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:ARR:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:ARR:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:ARR:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:ARR:QueueUse.HIHI") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:ARR:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:ARR:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:ARR:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-DI-OAV-01:ARR:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.arr,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:ARR:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.arr,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-DI-OAV-01:ARR:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:ARR:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.arr,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-DI-OAV-01:ARR:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.arr,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ARR:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.arr,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:ARR:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:ARR:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:ARR:SortSize") - field(OUT, "S03SIM-DI-OAV-01:ARR:SortFree.LOW") -} - -record(longout, "S03SIM-DI-OAV-01:ARR:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.arr,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:ARR:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.arr,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:ARR:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.arr,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:ARR:AsynIO") -{ - field(PORT, "OAV.arr") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# This record is the array waveform data # -################################################################### -record(waveform, "S03SIM-DI-OAV-01:ARR:ArrayData") -{ - field(DTYP, "asynInt8ArrayIn") - field(INP, "@asyn(OAV.arr,0,1)STD_ARRAY_DATA") - field(FTVL, "UCHAR") - field(NELM, "786432") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDStdArrays.template -# Database for NDStdArrays asyn driver and standard asyn device support -# Mark Rivers -# April 14, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, TYPE, Asyn Type e.g. Int32 -# % macro, FTVL, Format, e.g. Int -# % macro, NELEMENTS, Number of elements - -# This associates the template with an edm screen -# % gui, FSCN1.arr, edmtab, NDStdArrays.edl, P=S03SIM-EA-FSCN-01,R=:ARR: - -# This associates a BOY screen with the template -# % gui, FSCN1.arr, boydetail,ADApp_opi/dls/array_detail.opi, P=S03SIM-EA-FSCN-01, R=:ARR:, DESC=Array -# % gui, FSCN1.arr, boyembed, ADApp_opi/dls/array_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:ARR:, DESC=Array -# % gui, FSCN1.arr, boyembed, ADApp_opi/dls/array_embed.opi, P=S03SIM-EA-FSCN-01, R=:ARR:, DESC=Array - -# Info -# % gui, FSCN1.arr, groupHeading, Info -# % gui, FSCN1.arr, readback, Port name, S03SIM-EA-FSCN-01:ARR:PortName_RBV -# % gui, FSCN1.arr, readback, Plugin type, S03SIM-EA-FSCN-01:ARR:PluginType_RBV -# Input -# % gui, FSCN1.arr, demandString, Input, S03SIM-EA-FSCN-01:ARR:NDArrayPort -# % gui, FSCN1.arr, readback, Input, S03SIM-EA-FSCN-01:ARR:NDArrayPort_RBV - -# % gui, FSCN1.arr, groupHeading, Callback -# % gui, FSCN1.arr, enum, Callbacks, S03SIM-EA-FSCN-01:ARR:EnableCallbacks -# % gui, FSCN1.arr, statusbits, Callbacks, S03SIM-EA-FSCN-01:ARR:EnableCallbacks_RBV -# % gui, FSCN1.arr, demand, Min Callback Time, S03SIM-EA-FSCN-01:ARR:MinCallbackTime -# % gui, FSCN1.arr, readback, Min Callback Time, S03SIM-EA-FSCN-01:ARR:MinCallbackTime_RBV -# % gui, FSCN1.arr, enum, Block Callbacks, S03SIM-EA-FSCN-01:ARR:BlockingCallbacks -# % gui, FSCN1.arr, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:ARR:BlockingCallbacks_RBV - -# % gui, FSCN1.arr, groupHeading, Counters -# % gui, FSCN1.arr, demand, Array Counter, S03SIM-EA-FSCN-01:ARR:ArrayCounter -# % gui, FSCN1.arr, readback, Array Counter, S03SIM-EA-FSCN-01:ARR:ArrayCounter_RBV -# % gui, FSCN1.arr, readback, Array Rate (fps), S03SIM-EA-FSCN-01:ARR:ArrayRate_RBV -# % gui, FSCN1.arr, readback, Queue Use, S03SIM-EA-FSCN-01:ARR:QueueUse -# % gui, FSCN1.arr, readback, Queue Size, S03SIM-EA-FSCN-01:ARR:QueueSize -# % gui, FSCN1.arr, demand, Dropped Arrays, S03SIM-EA-FSCN-01:ARR:DroppedArrays -# % gui, FSCN1.arr, readback, Dropped Arrays, S03SIM-EA-FSCN-01:ARR:DroppedArrays_RBV - -# % gui, FSCN1.arr, groupHeading, Array Settings -# % gui, FSCN1.arr, readback, Num Dimensions, S03SIM-EA-FSCN-01:ARR:NDimensions_RBV -# % gui, FSCN1.arr, readback, Dim 0 Size, S03SIM-EA-FSCN-01:ARR:ArraySize0_RBV -# % gui, FSCN1.arr, readback, Dim 1 Size, S03SIM-EA-FSCN-01:ARR:ArraySize1_RBV -# % gui, FSCN1.arr, readback, Dim 2 Size, S03SIM-EA-FSCN-01:ARR:ArraySize2_RBV -# % gui, FSCN1.arr, readback, Input Data Type, S03SIM-EA-FSCN-01:ARR:DataType_RBV -# % gui, FSCN1.arr, readback, Colour Mode, S03SIM-EA-FSCN-01:ARR:ColorMode_RBV -# % gui, FSCN1.arr, readback, Bayer Pattern, S03SIM-EA-FSCN-01:ARR:BayerPattern_RBV -# % gui, FSCN1.arr, readback, Unique id, S03SIM-EA-FSCN-01:ARR:UniqueId_RBV -# % gui, FSCN1.arr, readback, Timestamp, S03SIM-EA-FSCN-01:ARR:TimeStamp_RBV - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ARR:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.arr,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ARR:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.arr,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ARR:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.arr,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ARR:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.arr,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ARR:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.arr,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ARR:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.arr,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ARR:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.arr,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:ARR:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.arr,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:ARR:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.arr,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-01:ARR:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ARR:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-01:ARR:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:ARR:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-01:ARR:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-01:ARR:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ARR:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:ARR:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:ARR:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-01:ARR:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.arr,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:ARR:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.arr,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:ARR:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN1.arr,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN1.arr,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:ARR:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:ARR:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-01:ARR:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-01:ARR:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.arr,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ARR:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.arr,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ARR:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:ARR:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.arr,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ARR:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-01:ARR:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:ARR:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.arr,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-01:ARR:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.arr,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:ARR:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:ARR:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:ARR:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:ARR:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ARR:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.arr,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ARR:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:ARR:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.arr,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:ARR:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.arr,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-01:ARR:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-01:ARR:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.arr,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-01:ARR:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.arr,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-01:ARR:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-01:ARR:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:ARR:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-01:ARR:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.arr,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:ARR:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.arr,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-01:ARR:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.arr,0,1)NDARRAY_PORT") - field(VAL, "FSCN1.roi") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:ARR:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.arr,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ARR:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.arr,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ARR:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.arr,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ARR:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ARR:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.arr,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ARR:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.arr,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ARR:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:ARR:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-01:ARR:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-01:ARR:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:ARR:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-01:ARR:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:ARR:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-01:ARR:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.arr,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:ARR:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.arr,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-01:ARR:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.arr,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ARR:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.arr,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:ARR:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.arr,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:ARR:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-01:ARR:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.arr,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ARR:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.arr,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ARR:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:ARR:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ARR:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:ARR:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:ARR:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ARR:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:ARR:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:ARR:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:ARR:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:ARR:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:ARR:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:ARR:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:ARR:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.arr,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:ARR:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.arr,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-01:ARR:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:ARR:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.arr,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-01:ARR:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.arr,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ARR:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.arr,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:ARR:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:ARR:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:ARR:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:ARR:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-01:ARR:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.arr,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:ARR:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.arr,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:ARR:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.arr,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:ARR:AsynIO") -{ - field(PORT, "FSCN1.arr") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# This record is the array waveform data # -################################################################### -record(waveform, "S03SIM-EA-FSCN-01:ARR:ArrayData") -{ - field(DTYP, "asynInt8ArrayIn") - field(INP, "@asyn(FSCN1.arr,0,1)STD_ARRAY_DATA") - field(FTVL, "UCHAR") - field(NELM, "786432") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDStdArrays.template -# Database for NDStdArrays asyn driver and standard asyn device support -# Mark Rivers -# April 14, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, TYPE, Asyn Type e.g. Int32 -# % macro, FTVL, Format, e.g. Int -# % macro, NELEMENTS, Number of elements - -# This associates the template with an edm screen -# % gui, FSCN2.arr, edmtab, NDStdArrays.edl, P=S03SIM-EA-FSCN-02,R=:ARR: - -# This associates a BOY screen with the template -# % gui, FSCN2.arr, boydetail,ADApp_opi/dls/array_detail.opi, P=S03SIM-EA-FSCN-02, R=:ARR:, DESC=Array -# % gui, FSCN2.arr, boyembed, ADApp_opi/dls/array_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:ARR:, DESC=Array -# % gui, FSCN2.arr, boyembed, ADApp_opi/dls/array_embed.opi, P=S03SIM-EA-FSCN-02, R=:ARR:, DESC=Array - -# Info -# % gui, FSCN2.arr, groupHeading, Info -# % gui, FSCN2.arr, readback, Port name, S03SIM-EA-FSCN-02:ARR:PortName_RBV -# % gui, FSCN2.arr, readback, Plugin type, S03SIM-EA-FSCN-02:ARR:PluginType_RBV -# Input -# % gui, FSCN2.arr, demandString, Input, S03SIM-EA-FSCN-02:ARR:NDArrayPort -# % gui, FSCN2.arr, readback, Input, S03SIM-EA-FSCN-02:ARR:NDArrayPort_RBV - -# % gui, FSCN2.arr, groupHeading, Callback -# % gui, FSCN2.arr, enum, Callbacks, S03SIM-EA-FSCN-02:ARR:EnableCallbacks -# % gui, FSCN2.arr, statusbits, Callbacks, S03SIM-EA-FSCN-02:ARR:EnableCallbacks_RBV -# % gui, FSCN2.arr, demand, Min Callback Time, S03SIM-EA-FSCN-02:ARR:MinCallbackTime -# % gui, FSCN2.arr, readback, Min Callback Time, S03SIM-EA-FSCN-02:ARR:MinCallbackTime_RBV -# % gui, FSCN2.arr, enum, Block Callbacks, S03SIM-EA-FSCN-02:ARR:BlockingCallbacks -# % gui, FSCN2.arr, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:ARR:BlockingCallbacks_RBV - -# % gui, FSCN2.arr, groupHeading, Counters -# % gui, FSCN2.arr, demand, Array Counter, S03SIM-EA-FSCN-02:ARR:ArrayCounter -# % gui, FSCN2.arr, readback, Array Counter, S03SIM-EA-FSCN-02:ARR:ArrayCounter_RBV -# % gui, FSCN2.arr, readback, Array Rate (fps), S03SIM-EA-FSCN-02:ARR:ArrayRate_RBV -# % gui, FSCN2.arr, readback, Queue Use, S03SIM-EA-FSCN-02:ARR:QueueUse -# % gui, FSCN2.arr, readback, Queue Size, S03SIM-EA-FSCN-02:ARR:QueueSize -# % gui, FSCN2.arr, demand, Dropped Arrays, S03SIM-EA-FSCN-02:ARR:DroppedArrays -# % gui, FSCN2.arr, readback, Dropped Arrays, S03SIM-EA-FSCN-02:ARR:DroppedArrays_RBV - -# % gui, FSCN2.arr, groupHeading, Array Settings -# % gui, FSCN2.arr, readback, Num Dimensions, S03SIM-EA-FSCN-02:ARR:NDimensions_RBV -# % gui, FSCN2.arr, readback, Dim 0 Size, S03SIM-EA-FSCN-02:ARR:ArraySize0_RBV -# % gui, FSCN2.arr, readback, Dim 1 Size, S03SIM-EA-FSCN-02:ARR:ArraySize1_RBV -# % gui, FSCN2.arr, readback, Dim 2 Size, S03SIM-EA-FSCN-02:ARR:ArraySize2_RBV -# % gui, FSCN2.arr, readback, Input Data Type, S03SIM-EA-FSCN-02:ARR:DataType_RBV -# % gui, FSCN2.arr, readback, Colour Mode, S03SIM-EA-FSCN-02:ARR:ColorMode_RBV -# % gui, FSCN2.arr, readback, Bayer Pattern, S03SIM-EA-FSCN-02:ARR:BayerPattern_RBV -# % gui, FSCN2.arr, readback, Unique id, S03SIM-EA-FSCN-02:ARR:UniqueId_RBV -# % gui, FSCN2.arr, readback, Timestamp, S03SIM-EA-FSCN-02:ARR:TimeStamp_RBV - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ARR:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.arr,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ARR:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.arr,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ARR:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.arr,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ARR:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.arr,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ARR:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.arr,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ARR:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.arr,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ARR:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.arr,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:ARR:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.arr,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:ARR:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.arr,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-02:ARR:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ARR:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-02:ARR:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:ARR:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-02:ARR:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-02:ARR:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ARR:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:ARR:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:ARR:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-02:ARR:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.arr,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:ARR:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.arr,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:ARR:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN2.arr,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN2.arr,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:ARR:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:ARR:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:ARR:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-02:ARR:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.arr,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ARR:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.arr,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ARR:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:ARR:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.arr,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ARR:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-02:ARR:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:ARR:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.arr,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-02:ARR:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.arr,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:ARR:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:ARR:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:ARR:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:ARR:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ARR:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.arr,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ARR:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:ARR:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.arr,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:ARR:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.arr,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-02:ARR:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-02:ARR:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.arr,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-02:ARR:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.arr,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-02:ARR:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-02:ARR:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:ARR:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-02:ARR:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.arr,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:ARR:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.arr,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-02:ARR:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.arr,0,1)NDARRAY_PORT") - field(VAL, "FSCN2.roi") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:ARR:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.arr,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ARR:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.arr,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ARR:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.arr,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ARR:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ARR:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.arr,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ARR:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.arr,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ARR:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:ARR:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-02:ARR:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-02:ARR:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:ARR:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-02:ARR:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:ARR:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-02:ARR:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.arr,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:ARR:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.arr,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-02:ARR:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.arr,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ARR:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.arr,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:ARR:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.arr,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:ARR:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-02:ARR:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.arr,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ARR:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.arr,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ARR:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:ARR:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ARR:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:ARR:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:ARR:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ARR:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:ARR:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:ARR:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:ARR:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:ARR:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:ARR:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:ARR:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:ARR:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.arr,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:ARR:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.arr,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-02:ARR:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:ARR:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.arr,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-02:ARR:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.arr,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ARR:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.arr,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:ARR:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:ARR:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:ARR:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:ARR:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-02:ARR:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.arr,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:ARR:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.arr,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:ARR:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.arr,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:ARR:AsynIO") -{ - field(PORT, "FSCN2.arr") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# This record is the array waveform data # -################################################################### -record(waveform, "S03SIM-EA-FSCN-02:ARR:ArrayData") -{ - field(DTYP, "asynInt8ArrayIn") - field(INP, "@asyn(FSCN2.arr,0,1)STD_ARRAY_DATA") - field(FTVL, "UCHAR") - field(NELM, "786432") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDProcess.template -# Database for ND PluginProcess -# Mark Rivers -# March 14, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, OAV.proc, edmtab, NDProcess.edl, P=S03SIM-DI-OAV-01,R=:PROC: - -# This associates a BOY screen with the template -# % gui, OAV.proc, boydetail,ADApp_opi/dls/proc_detail.opi, P=S03SIM-DI-OAV-01, R=:PROC:, DESC=Process -# % gui, OAV.proc, boyembed, ADApp_opi/dls/proc_embed_box.opi, P=S03SIM-DI-OAV-01, R=:PROC:, DESC=Process -# % gui, OAV.proc, boyembed, ADApp_opi/dls/proc_embed.opi, P=S03SIM-DI-OAV-01, R=:PROC:, DESC=Process - -# % gui, OAV.proc, groupHeading, Info -# % gui, OAV.proc, readback, Port name, S03SIM-DI-OAV-01:PROC:PortName_RBV -# % gui, OAV.proc, readback, Plugin type, S03SIM-DI-OAV-01:PROC:PluginType_RBV -# Input -# % gui, OAV.proc, demandString, Input, S03SIM-DI-OAV-01:PROC:NDArrayPort -# % gui, OAV.proc, readback, Input, S03SIM-DI-OAV-01:PROC:NDArrayPort_RBV - -# % gui, OAV.proc, groupHeading, Callback -# % gui, OAV.proc, enum, Callbacks, S03SIM-DI-OAV-01:PROC:EnableCallbacks -# % gui, OAV.proc, statusbits, Callbacks, S03SIM-DI-OAV-01:PROC:EnableCallbacks_RBV -# % gui, OAV.proc, demand, Min Callback Time, S03SIM-DI-OAV-01:PROC:MinCallbackTime -# % gui, OAV.proc, readback, Min Callback Time, S03SIM-DI-OAV-01:PROC:MinCallbackTime_RBV -# % gui, OAV.proc, enum, Block Callbacks, S03SIM-DI-OAV-01:PROC:BlockingCallbacks -# % gui, OAV.proc, statusbits, Block Callbacks, S03SIM-DI-OAV-01:PROC:BlockingCallbacks_RBV - -# % gui, OAV.proc, groupHeading, Counters -# % gui, OAV.proc, demand, Array Counter, S03SIM-DI-OAV-01:PROC:ArrayCounter -# % gui, OAV.proc, readback, Array Counter, S03SIM-DI-OAV-01:PROC:ArrayCounter_RBV -# % gui, OAV.proc, readback, Array Rate (fps), S03SIM-DI-OAV-01:PROC:ArrayRate_RBV -# % gui, OAV.proc, readback, Queue Use, S03SIM-DI-OAV-01:PROC:QueueUse -# % gui, OAV.proc, readback, Queue Size, S03SIM-DI-OAV-01:PROC:QueueSize -# % gui, OAV.proc, demand, Dropped Arrays, S03SIM-DI-OAV-01:PROC:DroppedArrays -# % gui, OAV.proc, readback, Dropped Arrays, S03SIM-DI-OAV-01:PROC:DroppedArrays_RBV - -# % gui, OAV.proc, groupHeading, Array Settings -# % gui, OAV.proc, readback, Num Dimensions, S03SIM-DI-OAV-01:PROC:NDimensions_RBV -# % gui, OAV.proc, readback, Dim 0 Size, S03SIM-DI-OAV-01:PROC:ArraySize0_RBV -# % gui, OAV.proc, readback, Dim 1 Size, S03SIM-DI-OAV-01:PROC:ArraySize1_RBV -# % gui, OAV.proc, readback, Dim 2 Size, S03SIM-DI-OAV-01:PROC:ArraySize2_RBV -# % gui, OAV.proc, readback, Input Data Type, S03SIM-DI-OAV-01:PROC:DataType_RBV -# % gui, OAV.proc, readback, Colour Mode, S03SIM-DI-OAV-01:PROC:ColorMode_RBV -# % gui, OAV.proc, readback, Bayer Pattern, S03SIM-DI-OAV-01:PROC:BayerPattern_RBV -# % gui, OAV.proc, readback, Unique id, S03SIM-DI-OAV-01:PROC:UniqueId_RBV -# % gui, OAV.proc, readback, Timestamp, S03SIM-DI-OAV-01:PROC:TimeStamp_RBV - -# Output -# % gui, OAV.proc, groupHeading, Output -# % gui, OAV.proc, demand, Name, S03SIM-DI-OAV-01:PROC:Name -# % gui, OAV.proc, enum, Out data type, S03SIM-DI-OAV-01:PROC:DataTypeOut -# % gui, OAV.proc, readback, Out data type, S03SIM-DI-OAV-01:PROC:DataTypeOut_RBV -# % gui, OAV.proc, demand, Attributes file, S03SIM-DI-OAV-01:PROC:NDAttributesFile - -# Background subtraction -# % gui, OAV.proc, groupHeading, Background Subtraction -# % gui, OAV.proc, enum, Enable Subtraction, S03SIM-DI-OAV-01:PROC:EnableBackground -# % gui, OAV.proc, readback, Enable Subtraction, S03SIM-DI-OAV-01:PROC:EnableBackground_RBV -# % gui, OAV.proc, command, Save Background, S03SIM-DI-OAV-01:PROC:SaveBackground -# % gui, OAV.proc, readback, Save Background, S03SIM-DI-OAV-01:PROC:SaveBackground_RBV -# Flat field -# % gui, OAV.proc, groupHeading, Flat Field -# % gui, OAV.proc, enum, Enable Flat Field, S03SIM-DI-OAV-01:PROC:EnableFlatField -# % gui, OAV.proc, readback, Enable Flat Field, S03SIM-DI-OAV-01:PROC:EnableFlatField_RBV -# % gui, OAV.proc, command, Save Flat Field, S03SIM-DI-OAV-01:PROC:SaveFlatField -# % gui, OAV.proc, readback, Save Flat Field, S03SIM-DI-OAV-01:PROC:SaveFlatField_RBV -# % gui, OAV.proc, demand, Scale Flat Field, S03SIM-DI-OAV-01:PROC:ScaleFlatField -# % gui, OAV.proc, readback, Scale Flat Field, S03SIM-DI-OAV-01:PROC:ScaleFlatField_RBV -# Scale and offset -# % gui, OAV.proc, groupHeading, Scale and Offset -# % gui, OAV.proc, enum, Enable Scale and Offset, S03SIM-DI-OAV-01:PROC:EnableOffsetScale -# % gui, OAV.proc, readback, Enable Scale and Offset, S03SIM-DI-OAV-01:PROC:EnableOffsetScale_RBV -# % gui, OAV.proc, demand, Offset, S03SIM-DI-OAV-01:PROC:Offset -# % gui, OAV.proc, readback, Offset, S03SIM-DI-OAV-01:PROC:Offset_RBV -# % gui, OAV.proc, demand, Scale, S03SIM-DI-OAV-01:PROC:Scale -# % gui, OAV.proc, readback, Scale, S03SIM-DI-OAV-01:PROC:Scale_RBV -# % gui, OAV.proc, enum, Enable Low Clip, S03SIM-DI-OAV-01:PROC:EnableLowClip -# % gui, OAV.proc, readback, Enable Low Clip, S03SIM-DI-OAV-01:PROC:EnableLowClip_RBV -# % gui, OAV.proc, demand, Low Clip, S03SIM-DI-OAV-01:PROC:LowClip -# % gui, OAV.proc, readback, Low Clip, S03SIM-DI-OAV-01:PROC:LowClip_RBV -# % gui, OAV.proc, enum, Enable High Clip, S03SIM-DI-OAV-01:PROC:EnableHighClip -# % gui, OAV.proc, readback, Enable High Clip, S03SIM-DI-OAV-01:PROC:EnableHighClip_RBV -# % gui, OAV.proc, demand, High Clip, S03SIM-DI-OAV-01:PROC:HighClip -# % gui, OAV.proc, readback, High Clip, S03SIM-DI-OAV-01:PROC:HighClip_RBV -# Recursive filter -# % gui, OAV.proc, groupHeading, Recursive Filter -# % gui, OAV.proc, enum, Enable Filter, S03SIM-DI-OAV-01:PROC:EnableFilter -# % gui, OAV.proc, readback, Enable Filter, S03SIM-DI-OAV-01:PROC:EnableFilter_RBV -# % gui, OAV.proc, enum, Filter Type, S03SIM-DI-OAV-01:PROC:FilterType -# % gui, OAV.proc, demand, N Filter, S03SIM-DI-OAV-01:PROC:NumFilter -# % gui, OAV.proc, readback, N Filter, S03SIM-DI-OAV-01:PROC:NumFilter_RBV -# % gui, OAV.proc, readback, N Filtered, S03SIM-DI-OAV-01:PROC:NumFiltered_RBV -# % gui, OAV.proc, enum, Filter Callbacks, S03SIM-DI-OAV-01:PROC:FilterCallbacks -# % gui, OAV.proc, readback, Filter Callbacks, S03SIM-DI-OAV-01:PROC:FilterCallbacks_RBV -# % gui, OAV.proc, command, Reset, S03SIM-DI-OAV-01:PROC:ResetFilter -# % gui, OAV.proc, readback, Reset, S03SIM-DI-OAV-01:PROC:ResetFilter -# % gui, OAV.proc, enum, Auto Reset, S03SIM-DI-OAV-01:PROC:AutoResetFilter -# % gui, OAV.proc, readback, Auto Reset, S03SIM-DI-OAV-01:PROC:AutoResetFilter_RBV -# % gui, OAV.proc, demand, Output Scale, S03SIM-DI-OAV-01:PROC:OScale -# % gui, OAV.proc, readback, Output Scale, S03SIM-DI-OAV-01:PROC:OScale_RBV -# % gui, OAV.proc, demand, Output Offset, S03SIM-DI-OAV-01:PROC:OOffset -# % gui, OAV.proc, readback, Output Offset, S03SIM-DI-OAV-01:PROC:OOffset_RBV -# % gui, OAV.proc, demand, Filter Scale, S03SIM-DI-OAV-01:PROC:FScale -# % gui, OAV.proc, readback, Filter Scale, S03SIM-DI-OAV-01:PROC:FScale_RBV -# % gui, OAV.proc, demand, Filter Offset, S03SIM-DI-OAV-01:PROC:FOffset -# % gui, OAV.proc, readback, Filter Offset, S03SIM-DI-OAV-01:PROC:FOffset_RBV -# Memory -# % gui, OAV.proc, groupHeading, Memory -# % gui, OAV.proc, readback, Max memory, S03SIM-DI-OAV-01:PROC:PoolMaxMem -# % gui, OAV.proc, readback, Max buffers, S03SIM-DI-OAV-01:PROC:PoolMaxBuffers -# % gui, OAV.proc, readback, Used memory, S03SIM-DI-OAV-01:PROC:PoolUsedMem -# % gui, OAV.proc, readback, Allocated buffers, S03SIM-DI-OAV-01:PROC:PoolAllocBuffers -# % gui, OAV.proc, readback, Free buffers, S03SIM-DI-OAV-01:PROC:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:PROC:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.proc,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:PROC:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.proc,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:PROC:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.proc,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:PROC:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.proc,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:PROC:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.proc,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:PROC:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.proc,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:PROC:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.proc,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:PROC:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.proc,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:PROC:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:PROC:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:PROC:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:PROC:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:PROC:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:PROC:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:PROC:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:PROC:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:PROC:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:PROC:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:PROC:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:PROC:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:PROC:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:PROC:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.proc,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:PROC:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:PROC:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:PROC:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:PROC:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:PROC:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:PROC:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:PROC:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:PROC:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:PROC:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:PROC:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.proc,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:PROC:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:PROC:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:PROC:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:PROC:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:PROC:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:PROC:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:PROC:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:PROC:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:PROC:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:PROC:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:PROC:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:PROC:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PROC:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:PROC:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:PROC:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.proc,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:PROC:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:PROC:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:PROC:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:PROC:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:PROC:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:PROC:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:PROC:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:PROC:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:PROC:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:PROC:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:PROC:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:PROC:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:PROC:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:PROC:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.proc,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:PROC:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.proc,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:PROC:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-DI-OAV-01:PROC:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-DI-OAV-01:PROC:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:PROC:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:PROC:PoolFreeBuffers") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:PROC:PoolUsedBuffers") -} - -record(calc, "S03SIM-DI-OAV-01:PROC:PoolUsedBuffers") -{ - field(INPA, "S03SIM-DI-OAV-01:PROC:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:PROC:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-DI-OAV-01:PROC:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:PROC:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.proc,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:PROC:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.proc,0,1)NDARRAY_PORT") - field(VAL, "OAV.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:PROC:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.proc,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:PROC:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:PROC:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:PROC:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:PROC:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:PROC:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-DI-OAV-01:PROC:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-DI-OAV-01:PROC:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:PROC:MinCallbackTime PP") -} - -record(calc, "S03SIM-DI-OAV-01:PROC:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:PROC:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:PROC:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:PROC:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:PROC:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:PROC:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:PROC:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-DI-OAV-01:PROC:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:PROC:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:PROC:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:PROC:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:PROC:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:PROC:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:PROC:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:PROC:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:PROC:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:PROC:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:PROC:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:PROC:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:PROC:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:PROC:QueueUse.HIHI") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:PROC:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:PROC:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:PROC:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-DI-OAV-01:PROC:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:PROC:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-DI-OAV-01:PROC:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-DI-OAV-01:PROC:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:PROC:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:PROC:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:PROC:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:PROC:SortSize") - field(OUT, "S03SIM-DI-OAV-01:PROC:SortFree.LOW") -} - -record(longout, "S03SIM-DI-OAV-01:PROC:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:PROC:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:PROC:AsynIO") -{ - field(PORT, "OAV.proc") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:PROC:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)PROCESS_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:PROC:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)PROCESS_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the background array processing # -################################################################### -record(bo, "S03SIM-DI-OAV-01:PROC:SaveBackground") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)SAVE_BACKGROUND") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") -} - -record(bi, "S03SIM-DI-OAV-01:PROC:SaveBackground_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)SAVE_BACKGROUND") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:PROC:EnableBackground") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)ENABLE_BACKGROUND") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:PROC:EnableBackground_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)ENABLE_BACKGROUND") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-DI-OAV-01:PROC:ValidBackground_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)VALID_BACKGROUND") - field(ZNAM, "Invalid") - field(ONAM, "Valid") - field(SCAN, "I/O Intr") -} - -record(sseq, "S03SIM-DI-OAV-01:PROC:ReadBackgroundTIFFSeq") -{ - # Make a backup copy of the NDArrayPort field - field(DOL1, "S03SIM-DI-OAV-01:PROC:NDArrayPort") - field(LNK1, "S03SIM-DI-OAV-01:PROC:PortBackup PP MS") - # Set the NDArrayPort field to the TIFF plugin - field(DOL2, "S03SIM-DI-OAV-01:PROC:TIFF:PortName_RBV") - field(LNK2, "S03SIM-DI-OAV-01:PROC:NDArrayPort PP MS") - # Enable array callbacks in the TIFF plugin - field(STR3, "Enable") - field(LNK3, "S03SIM-DI-OAV-01:PROC:TIFF:ArrayCallbacks PP MS") - # Read the TIFF file - field(DLY4, "0.1") - field(DO4, "1") - field(LNK4, "S03SIM-DI-OAV-01:PROC:TIFF:ReadFile PP MS") - # Save background TIFF - field(DLY5, "0.5") - field(DO5, "1") - field(LNK5, "S03SIM-DI-OAV-01:PROC:SaveBackground PP MS") - # Restore the NDArrayPort field - field(DOL6, "S03SIM-DI-OAV-01:PROC:PortBackup") - field(LNK6, "S03SIM-DI-OAV-01:PROC:NDArrayPort PP MS") -} - -record(stringout, "S03SIM-DI-OAV-01:PROC:PortBackup") -{ -} - -################################################################### -# These records control the flat field array processing # -################################################################### -record(bo, "S03SIM-DI-OAV-01:PROC:SaveFlatField") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)SAVE_FLAT_FIELD") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") -} - -record(bi, "S03SIM-DI-OAV-01:PROC:SaveFlatField_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)SAVE_FLAT_FIELD") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:PROC:EnableFlatField") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)ENABLE_FLAT_FIELD") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:PROC:EnableFlatField_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)ENABLE_FLAT_FIELD") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-DI-OAV-01:PROC:ValidFlatField_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)VALID_FLAT_FIELD") - field(ZNAM, "Invalid") - field(ONAM, "Valid") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:ScaleFlatField") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)SCALE_FLAT_FIELD") - field(VAL, "255.") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:PROC:ScaleFlatField_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)SCALE_FLAT_FIELD") - field(SCAN, "I/O Intr") -} - -record(sseq, "S03SIM-DI-OAV-01:PROC:ReadFlatFieldTIFFSeq") -{ - # Make a backup copy of the NDArrayPort field - field(DOL1, "S03SIM-DI-OAV-01:PROC:NDArrayPort") - field(LNK1, "S03SIM-DI-OAV-01:PROC:PortBackup PP MS") - # Set the NDArrayPort field to the TIFF plugin - field(DOL2, "S03SIM-DI-OAV-01:PROC:TIFF:PortName_RBV") - field(LNK2, "S03SIM-DI-OAV-01:PROC:NDArrayPort PP MS") - # Enable array callbacks in the TIFF plugin - field(STR3, "Enable") - field(LNK3, "S03SIM-DI-OAV-01:PROC:TIFF:ArrayCallbacks PP MS") - # Read the TIFF file - field(DLY4, "0.1") - field(DO4, "1") - field(LNK4, "S03SIM-DI-OAV-01:PROC:TIFF:ReadFile PP MS") - # Save background TIFF - field(DLY5, "0.5") - field(DO5, "1") - field(LNK5, "S03SIM-DI-OAV-01:PROC:SaveFlatField PP MS") - # Restore the NDArrayPort field - field(DOL6, "S03SIM-DI-OAV-01:PROC:PortBackup") - field(LNK6, "S03SIM-DI-OAV-01:PROC:NDArrayPort PP MS") -} - -################################################################### -# These records control the offset and scale # -################################################################### -record(bo, "S03SIM-DI-OAV-01:PROC:EnableOffsetScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)ENABLE_OFFSET_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -# Oneshot record for calculating scale and offset -record(ai, "S03SIM-DI-OAV-01:PROC:AutoOffsetScale") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)AUTO_OFFSET_SCALE") - field(ZNAM, "Done") - field(ONAM, "Calculating") -} - -record(bi, "S03SIM-DI-OAV-01:PROC:EnableOffsetScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)ENABLE_OFFSET_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:Offset") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)OFFSET") - field(PREC, "2") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:PROC:Offset_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)OFFSET") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)SCALE") - field(PREC, "2") - field(VAL, "1.0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:PROC:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)SCALE") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the high and low clipping # -################################################################### -record(bo, "S03SIM-DI-OAV-01:PROC:EnableLowClip") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)ENABLE_LOW_CLIP") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:PROC:EnableLowClip_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)ENABLE_LOW_CLIP") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:LowClip") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)LOW_CLIP") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:PROC:LowClip_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)LOW_CLIP") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:PROC:EnableHighClip") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)ENABLE_HIGH_CLIP") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:PROC:EnableHighClip_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)ENABLE_HIGH_CLIP") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:HighClip") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)HIGH_CLIP") - field(VAL, "100.0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:PROC:HighClip_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)HIGH_CLIP") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control frame filtering # -################################################################### -record(bo, "S03SIM-DI-OAV-01:PROC:EnableFilter") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)ENABLE_FILTER") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:PROC:EnableFilter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)ENABLE_FILTER") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:PROC:ResetFilter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)RESET_FILTER") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") -} - -record(bi, "S03SIM-DI-OAV-01:PROC:ResetFilter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)RESET_FILTER") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:PROC:AutoResetFilter") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)AUTO_RESET_FILTER") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:PROC:AutoResetFilter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)AUTO_RESET_FILTER") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:PROC:FilterCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)FILTER_CALLBACKS") - field(ZNAM, "Every array") - field(ONAM, "Array N only") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:PROC:FilterCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)FILTER_CALLBACKS") - field(ZNAM, "Every array") - field(ONAM, "Array N only") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:PROC:NumFilter") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.proc,0,1)NUM_FILTER") - field(VAL, "1") - field(FLNK, "S03SIM-DI-OAV-01:PROC:NumFilterRecip.PROC PP") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:NumFilter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)NUM_FILTER") - field(SCAN, "I/O Intr") -} - -# This is 1/NumFilter, used in RecursiveSum filter -# If this value changes we need to process FilterType to make it update filter coefficients -record(calc, "S03SIM-DI-OAV-01:PROC:NumFilterRecip") -{ - field(INPA, "S03SIM-DI-OAV-01:PROC:NumFilter.VAL NPP") - field(CALC, "1./A") - field(FLNK, "S03SIM-DI-OAV-01:PROC:FilterType.PROC PP") -} - -record(longin, "S03SIM-DI-OAV-01:PROC:NumFiltered_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.proc,0,1)NUM_FILTERED") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:OOffset") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)FILTER_OOFFSET") - field(VAL, "0.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-DI-OAV-01:PROC:OOffset_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)FILTER_OOFFSET") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:OScale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)FILTER_OSCALE") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-DI-OAV-01:PROC:OScale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)FILTER_OSCALE") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:OC1") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)FILTER_OC1") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-DI-OAV-01:PROC:OC1_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)FILTER_OC1") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:OC2") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)FILTER_OC2") - field(VAL, "-1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-DI-OAV-01:PROC:OC2_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)FILTER_OC2") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:OC3") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)FILTER_OC3") - field(VAL, "0.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-DI-OAV-01:PROC:OC3_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)FILTER_OC3") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:OC4") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)FILTER_OC4") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-DI-OAV-01:PROC:OC4_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)FILTER_OC4") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:FOffset") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)FILTER_FOFFSET") - field(VAL, "0.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-DI-OAV-01:PROC:FOffset_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)FILTER_FOFFSET") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:FScale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)FILTER_FSCALE") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-DI-OAV-01:PROC:FScale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)FILTER_FSCALE") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:FC1") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)FILTER_FC1") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-DI-OAV-01:PROC:FC1_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)FILTER_FC1") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:FC2") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)FILTER_FC2") - field(VAL, "-1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-DI-OAV-01:PROC:FC2_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)FILTER_FC2") - field(PREC, "2") - field(SCAN, "I/O Intr") -} -record(ao, "S03SIM-DI-OAV-01:PROC:FC3") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)FILTER_FC3") - field(VAL, "0.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-DI-OAV-01:PROC:FC3_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)FILTER_FC3") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:FC4") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)FILTER_FC4") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-DI-OAV-01:PROC:FC4_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)FILTER_FC4") - field(PREC, "2") - field(SCAN, "I/O Intr") -} -record(ao, "S03SIM-DI-OAV-01:PROC:ROffset") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)FILTER_ROFFSET") - field(VAL, "0.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-DI-OAV-01:PROC:ROffset_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)FILTER_ROFFSET") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:RC1") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)FILTER_RC1") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-DI-OAV-01:PROC:RC1_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)FILTER_RC1") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:PROC:RC2") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.proc,0,1)FILTER_RC2") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-DI-OAV-01:PROC:RC2_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.proc,0,1)FILTER_RC2") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -# We don't see PINI=YES for FilterType because we want to restore the actual coefficients -# We do restore this record, but we don't process it -record(mbbo, "S03SIM-DI-OAV-01:PROC:FilterType") -{ - field(ZRST, "RecursiveAve") - field(ZRVL, "1") - field(ONST, "Average") - field(ONVL, "2") - field(TWST, "Sum") - field(TWVL, "3") - field(THST, "Difference") - field(THVL, "4") - field(FRST, "RecursiveAveDiff") - field(FRVL, "5") - field(FVST, "CopyToFilter") - field(FVVL, "6") - field(FLNK, "S03SIM-DI-OAV-01:PROC:FilterTypeSeq PP MS") - info(autosaveFields, "VAL") -} - -record(seq, "S03SIM-DI-OAV-01:PROC:FilterTypeSeq") -{ - field(SELL, "S03SIM-DI-OAV-01:PROC:FilterType.RVAL NPP") - field(SELM, "Specified") - field(DOL1, "1") - field(LNK1, "S03SIM-DI-OAV-01:PROC:RecursiveAveSeq.PROC PP MS") - field(DOL2, "1") - field(LNK2, "S03SIM-DI-OAV-01:PROC:AverageSeq.PROC PP MS") - field(DOL3, "1") - field(LNK3, "S03SIM-DI-OAV-01:PROC:SumSeq.PROC PP MS") - field(DOL4, "1") - field(LNK4, "S03SIM-DI-OAV-01:PROC:DifferenceSeq.PROC PP MS") - field(DOL5, "1") - field(LNK5, "S03SIM-DI-OAV-01:PROC:RecursiveAveDiffSeq.PROC PP MS") - field(DOL6, "1") - field(LNK6, "S03SIM-DI-OAV-01:PROC:CopyToFilterSeq.PROC PP MS") -} - -record(seq, "S03SIM-DI-OAV-01:PROC:RecursiveAveSeq") -{ - field(DOL1, "1") - field(LNK1, "S03SIM-DI-OAV-01:PROC:OC1 PP MS") - field(DOL2, "-1") - field(LNK2, "S03SIM-DI-OAV-01:PROC:OC2 PP MS") - field(DOL3, "0") - field(LNK3, "S03SIM-DI-OAV-01:PROC:OC3 PP MS") - field(DOL4, "1") - field(LNK4, "S03SIM-DI-OAV-01:PROC:OC4 PP MS") - field(DOL5, "1") - field(LNK5, "S03SIM-DI-OAV-01:PROC:FC1 PP MS") - field(DOL6, "-1") - field(LNK6, "S03SIM-DI-OAV-01:PROC:FC2 PP MS") - field(DOL7, "0") - field(LNK7, "S03SIM-DI-OAV-01:PROC:FC3 PP MS") - field(DOL8, "1") - field(LNK8, "S03SIM-DI-OAV-01:PROC:FC4 PP MS") - field(DOL9, "0") - field(LNK9, "S03SIM-DI-OAV-01:PROC:RC1 PP MS") - field(DOLA, "1") - field(LNKA, "S03SIM-DI-OAV-01:PROC:RC2 PP MS") -} - -record(seq, "S03SIM-DI-OAV-01:PROC:AverageSeq") -{ - field(DOL1, "1") - field(LNK1, "S03SIM-DI-OAV-01:PROC:OC1 PP MS") - field(DOL2, "0") - field(LNK2, "S03SIM-DI-OAV-01:PROC:OC2 PP MS") - field(DOL3, "S03SIM-DI-OAV-01:PROC:NumFilterRecip NPP") - field(LNK3, "S03SIM-DI-OAV-01:PROC:OC3 PP MS") - field(DOL4, "0") - field(LNK4, "S03SIM-DI-OAV-01:PROC:OC4 PP MS") - field(DOL5, "1") - field(LNK5, "S03SIM-DI-OAV-01:PROC:FC1 PP MS") - field(DOL6, "0") - field(LNK6, "S03SIM-DI-OAV-01:PROC:FC2 PP MS") - field(DOL7, "S03SIM-DI-OAV-01:PROC:NumFilterRecip NPP") - field(LNK7, "S03SIM-DI-OAV-01:PROC:FC3 PP MS") - field(DOL8, "0") - field(LNK8, "S03SIM-DI-OAV-01:PROC:FC4 PP MS") - field(DOL9, "0") - field(LNK9, "S03SIM-DI-OAV-01:PROC:RC1 PP MS") - field(DOLA, "0") - field(LNKA, "S03SIM-DI-OAV-01:PROC:RC2 PP MS") -} - -record(seq, "S03SIM-DI-OAV-01:PROC:SumSeq") -{ - field(DOL1, "1") - field(LNK1, "S03SIM-DI-OAV-01:PROC:OC1 PP MS") - field(DOL2, "0") - field(LNK2, "S03SIM-DI-OAV-01:PROC:OC2 PP MS") - field(DOL3, "1") - field(LNK3, "S03SIM-DI-OAV-01:PROC:OC3 PP MS") - field(DOL4, "0") - field(LNK4, "S03SIM-DI-OAV-01:PROC:OC4 PP MS") - field(DOL5, "1") - field(LNK5, "S03SIM-DI-OAV-01:PROC:FC1 PP MS") - field(DOL6, "0") - field(LNK6, "S03SIM-DI-OAV-01:PROC:FC2 PP MS") - field(DOL7, "1") - field(LNK7, "S03SIM-DI-OAV-01:PROC:FC3 PP MS") - field(DOL8, "0") - field(LNK8, "S03SIM-DI-OAV-01:PROC:FC4 PP MS") - field(DOL9, "0") - field(LNK9, "S03SIM-DI-OAV-01:PROC:RC1 PP MS") - field(DOLA, "0") - field(LNKA, "S03SIM-DI-OAV-01:PROC:RC2 PP MS") -} - -record(seq, "S03SIM-DI-OAV-01:PROC:DifferenceSeq") -{ - field(DOL1, "-1") - field(LNK1, "S03SIM-DI-OAV-01:PROC:OC1 PP MS") - field(DOL2, "0") - field(LNK2, "S03SIM-DI-OAV-01:PROC:OC2 PP MS") - field(DOL3, "1") - field(LNK3, "S03SIM-DI-OAV-01:PROC:OC3 PP MS") - field(DOL4, "0") - field(LNK4, "S03SIM-DI-OAV-01:PROC:OC4 PP MS") - field(DOL5, "0") - field(LNK5, "S03SIM-DI-OAV-01:PROC:FC1 PP MS") - field(DOL6, "0") - field(LNK6, "S03SIM-DI-OAV-01:PROC:FC2 PP MS") - field(DOL7, "1") - field(LNK7, "S03SIM-DI-OAV-01:PROC:FC3 PP MS") - field(DOL8, "0") - field(LNK8, "S03SIM-DI-OAV-01:PROC:FC4 PP MS") - field(DOL9, "0") - field(LNK9, "S03SIM-DI-OAV-01:PROC:RC1 PP MS") - field(DOLA, "1") - field(LNKA, "S03SIM-DI-OAV-01:PROC:RC2 PP MS") -} - -record(seq, "S03SIM-DI-OAV-01:PROC:RecursiveAveDiffSeq") -{ - field(DOL1, "-1") - field(LNK1, "S03SIM-DI-OAV-01:PROC:OC1 PP MS") - field(DOL2, "0") - field(LNK2, "S03SIM-DI-OAV-01:PROC:OC2 PP MS") - field(DOL3, "1") - field(LNK3, "S03SIM-DI-OAV-01:PROC:OC3 PP MS") - field(DOL4, "0") - field(LNK4, "S03SIM-DI-OAV-01:PROC:OC4 PP MS") - field(DOL5, "1") - field(LNK5, "S03SIM-DI-OAV-01:PROC:FC1 PP MS") - field(DOL6, "-1") - field(LNK6, "S03SIM-DI-OAV-01:PROC:FC2 PP MS") - field(DOL7, "0") - field(LNK7, "S03SIM-DI-OAV-01:PROC:FC3 PP MS") - field(DOL8, "1") - field(LNK8, "S03SIM-DI-OAV-01:PROC:FC4 PP MS") - field(DOL9, "0") - field(LNK9, "S03SIM-DI-OAV-01:PROC:RC1 PP MS") - field(DOLA, "1") - field(LNKA, "S03SIM-DI-OAV-01:PROC:RC2 PP MS") -} - -record(seq, "S03SIM-DI-OAV-01:PROC:CopyToFilterSeq") -{ - field(DOL1, "0") - field(LNK1, "S03SIM-DI-OAV-01:PROC:OC1 PP MS") - field(DOL2, "0") - field(LNK2, "S03SIM-DI-OAV-01:PROC:OC2 PP MS") - field(DOL3, "1") - field(LNK3, "S03SIM-DI-OAV-01:PROC:OC3 PP MS") - field(DOL4, "0") - field(LNK4, "S03SIM-DI-OAV-01:PROC:OC4 PP MS") - field(DOL5, "0") - field(LNK5, "S03SIM-DI-OAV-01:PROC:FC1 PP MS") - field(DOL6, "0") - field(LNK6, "S03SIM-DI-OAV-01:PROC:FC2 PP MS") - field(DOL7, "1") - field(LNK7, "S03SIM-DI-OAV-01:PROC:FC3 PP MS") - field(DOL8, "0") - field(LNK8, "S03SIM-DI-OAV-01:PROC:FC4 PP MS") - field(DOL9, "0") - field(LNK9, "S03SIM-DI-OAV-01:PROC:RC1 PP MS") - field(DOLA, "1") - field(LNKA, "S03SIM-DI-OAV-01:PROC:RC2 PP MS") -} -#=================================================================# -# Template file: NDProcess.template -# Database for ND PluginProcess -# Mark Rivers -# March 14, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, FSCN1.proc, edmtab, NDProcess.edl, P=S03SIM-EA-FSCN-01,R=:PROC: - -# This associates a BOY screen with the template -# % gui, FSCN1.proc, boydetail,ADApp_opi/dls/proc_detail.opi, P=S03SIM-EA-FSCN-01, R=:PROC:, DESC=Process -# % gui, FSCN1.proc, boyembed, ADApp_opi/dls/proc_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:PROC:, DESC=Process -# % gui, FSCN1.proc, boyembed, ADApp_opi/dls/proc_embed.opi, P=S03SIM-EA-FSCN-01, R=:PROC:, DESC=Process - -# % gui, FSCN1.proc, groupHeading, Info -# % gui, FSCN1.proc, readback, Port name, S03SIM-EA-FSCN-01:PROC:PortName_RBV -# % gui, FSCN1.proc, readback, Plugin type, S03SIM-EA-FSCN-01:PROC:PluginType_RBV -# Input -# % gui, FSCN1.proc, demandString, Input, S03SIM-EA-FSCN-01:PROC:NDArrayPort -# % gui, FSCN1.proc, readback, Input, S03SIM-EA-FSCN-01:PROC:NDArrayPort_RBV - -# % gui, FSCN1.proc, groupHeading, Callback -# % gui, FSCN1.proc, enum, Callbacks, S03SIM-EA-FSCN-01:PROC:EnableCallbacks -# % gui, FSCN1.proc, statusbits, Callbacks, S03SIM-EA-FSCN-01:PROC:EnableCallbacks_RBV -# % gui, FSCN1.proc, demand, Min Callback Time, S03SIM-EA-FSCN-01:PROC:MinCallbackTime -# % gui, FSCN1.proc, readback, Min Callback Time, S03SIM-EA-FSCN-01:PROC:MinCallbackTime_RBV -# % gui, FSCN1.proc, enum, Block Callbacks, S03SIM-EA-FSCN-01:PROC:BlockingCallbacks -# % gui, FSCN1.proc, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:PROC:BlockingCallbacks_RBV - -# % gui, FSCN1.proc, groupHeading, Counters -# % gui, FSCN1.proc, demand, Array Counter, S03SIM-EA-FSCN-01:PROC:ArrayCounter -# % gui, FSCN1.proc, readback, Array Counter, S03SIM-EA-FSCN-01:PROC:ArrayCounter_RBV -# % gui, FSCN1.proc, readback, Array Rate (fps), S03SIM-EA-FSCN-01:PROC:ArrayRate_RBV -# % gui, FSCN1.proc, readback, Queue Use, S03SIM-EA-FSCN-01:PROC:QueueUse -# % gui, FSCN1.proc, readback, Queue Size, S03SIM-EA-FSCN-01:PROC:QueueSize -# % gui, FSCN1.proc, demand, Dropped Arrays, S03SIM-EA-FSCN-01:PROC:DroppedArrays -# % gui, FSCN1.proc, readback, Dropped Arrays, S03SIM-EA-FSCN-01:PROC:DroppedArrays_RBV - -# % gui, FSCN1.proc, groupHeading, Array Settings -# % gui, FSCN1.proc, readback, Num Dimensions, S03SIM-EA-FSCN-01:PROC:NDimensions_RBV -# % gui, FSCN1.proc, readback, Dim 0 Size, S03SIM-EA-FSCN-01:PROC:ArraySize0_RBV -# % gui, FSCN1.proc, readback, Dim 1 Size, S03SIM-EA-FSCN-01:PROC:ArraySize1_RBV -# % gui, FSCN1.proc, readback, Dim 2 Size, S03SIM-EA-FSCN-01:PROC:ArraySize2_RBV -# % gui, FSCN1.proc, readback, Input Data Type, S03SIM-EA-FSCN-01:PROC:DataType_RBV -# % gui, FSCN1.proc, readback, Colour Mode, S03SIM-EA-FSCN-01:PROC:ColorMode_RBV -# % gui, FSCN1.proc, readback, Bayer Pattern, S03SIM-EA-FSCN-01:PROC:BayerPattern_RBV -# % gui, FSCN1.proc, readback, Unique id, S03SIM-EA-FSCN-01:PROC:UniqueId_RBV -# % gui, FSCN1.proc, readback, Timestamp, S03SIM-EA-FSCN-01:PROC:TimeStamp_RBV - -# Output -# % gui, FSCN1.proc, groupHeading, Output -# % gui, FSCN1.proc, demand, Name, S03SIM-EA-FSCN-01:PROC:Name -# % gui, FSCN1.proc, enum, Out data type, S03SIM-EA-FSCN-01:PROC:DataTypeOut -# % gui, FSCN1.proc, readback, Out data type, S03SIM-EA-FSCN-01:PROC:DataTypeOut_RBV -# % gui, FSCN1.proc, demand, Attributes file, S03SIM-EA-FSCN-01:PROC:NDAttributesFile - -# Background subtraction -# % gui, FSCN1.proc, groupHeading, Background Subtraction -# % gui, FSCN1.proc, enum, Enable Subtraction, S03SIM-EA-FSCN-01:PROC:EnableBackground -# % gui, FSCN1.proc, readback, Enable Subtraction, S03SIM-EA-FSCN-01:PROC:EnableBackground_RBV -# % gui, FSCN1.proc, command, Save Background, S03SIM-EA-FSCN-01:PROC:SaveBackground -# % gui, FSCN1.proc, readback, Save Background, S03SIM-EA-FSCN-01:PROC:SaveBackground_RBV -# Flat field -# % gui, FSCN1.proc, groupHeading, Flat Field -# % gui, FSCN1.proc, enum, Enable Flat Field, S03SIM-EA-FSCN-01:PROC:EnableFlatField -# % gui, FSCN1.proc, readback, Enable Flat Field, S03SIM-EA-FSCN-01:PROC:EnableFlatField_RBV -# % gui, FSCN1.proc, command, Save Flat Field, S03SIM-EA-FSCN-01:PROC:SaveFlatField -# % gui, FSCN1.proc, readback, Save Flat Field, S03SIM-EA-FSCN-01:PROC:SaveFlatField_RBV -# % gui, FSCN1.proc, demand, Scale Flat Field, S03SIM-EA-FSCN-01:PROC:ScaleFlatField -# % gui, FSCN1.proc, readback, Scale Flat Field, S03SIM-EA-FSCN-01:PROC:ScaleFlatField_RBV -# Scale and offset -# % gui, FSCN1.proc, groupHeading, Scale and Offset -# % gui, FSCN1.proc, enum, Enable Scale and Offset, S03SIM-EA-FSCN-01:PROC:EnableOffsetScale -# % gui, FSCN1.proc, readback, Enable Scale and Offset, S03SIM-EA-FSCN-01:PROC:EnableOffsetScale_RBV -# % gui, FSCN1.proc, demand, Offset, S03SIM-EA-FSCN-01:PROC:Offset -# % gui, FSCN1.proc, readback, Offset, S03SIM-EA-FSCN-01:PROC:Offset_RBV -# % gui, FSCN1.proc, demand, Scale, S03SIM-EA-FSCN-01:PROC:Scale -# % gui, FSCN1.proc, readback, Scale, S03SIM-EA-FSCN-01:PROC:Scale_RBV -# % gui, FSCN1.proc, enum, Enable Low Clip, S03SIM-EA-FSCN-01:PROC:EnableLowClip -# % gui, FSCN1.proc, readback, Enable Low Clip, S03SIM-EA-FSCN-01:PROC:EnableLowClip_RBV -# % gui, FSCN1.proc, demand, Low Clip, S03SIM-EA-FSCN-01:PROC:LowClip -# % gui, FSCN1.proc, readback, Low Clip, S03SIM-EA-FSCN-01:PROC:LowClip_RBV -# % gui, FSCN1.proc, enum, Enable High Clip, S03SIM-EA-FSCN-01:PROC:EnableHighClip -# % gui, FSCN1.proc, readback, Enable High Clip, S03SIM-EA-FSCN-01:PROC:EnableHighClip_RBV -# % gui, FSCN1.proc, demand, High Clip, S03SIM-EA-FSCN-01:PROC:HighClip -# % gui, FSCN1.proc, readback, High Clip, S03SIM-EA-FSCN-01:PROC:HighClip_RBV -# Recursive filter -# % gui, FSCN1.proc, groupHeading, Recursive Filter -# % gui, FSCN1.proc, enum, Enable Filter, S03SIM-EA-FSCN-01:PROC:EnableFilter -# % gui, FSCN1.proc, readback, Enable Filter, S03SIM-EA-FSCN-01:PROC:EnableFilter_RBV -# % gui, FSCN1.proc, enum, Filter Type, S03SIM-EA-FSCN-01:PROC:FilterType -# % gui, FSCN1.proc, demand, N Filter, S03SIM-EA-FSCN-01:PROC:NumFilter -# % gui, FSCN1.proc, readback, N Filter, S03SIM-EA-FSCN-01:PROC:NumFilter_RBV -# % gui, FSCN1.proc, readback, N Filtered, S03SIM-EA-FSCN-01:PROC:NumFiltered_RBV -# % gui, FSCN1.proc, enum, Filter Callbacks, S03SIM-EA-FSCN-01:PROC:FilterCallbacks -# % gui, FSCN1.proc, readback, Filter Callbacks, S03SIM-EA-FSCN-01:PROC:FilterCallbacks_RBV -# % gui, FSCN1.proc, command, Reset, S03SIM-EA-FSCN-01:PROC:ResetFilter -# % gui, FSCN1.proc, readback, Reset, S03SIM-EA-FSCN-01:PROC:ResetFilter -# % gui, FSCN1.proc, enum, Auto Reset, S03SIM-EA-FSCN-01:PROC:AutoResetFilter -# % gui, FSCN1.proc, readback, Auto Reset, S03SIM-EA-FSCN-01:PROC:AutoResetFilter_RBV -# % gui, FSCN1.proc, demand, Output Scale, S03SIM-EA-FSCN-01:PROC:OScale -# % gui, FSCN1.proc, readback, Output Scale, S03SIM-EA-FSCN-01:PROC:OScale_RBV -# % gui, FSCN1.proc, demand, Output Offset, S03SIM-EA-FSCN-01:PROC:OOffset -# % gui, FSCN1.proc, readback, Output Offset, S03SIM-EA-FSCN-01:PROC:OOffset_RBV -# % gui, FSCN1.proc, demand, Filter Scale, S03SIM-EA-FSCN-01:PROC:FScale -# % gui, FSCN1.proc, readback, Filter Scale, S03SIM-EA-FSCN-01:PROC:FScale_RBV -# % gui, FSCN1.proc, demand, Filter Offset, S03SIM-EA-FSCN-01:PROC:FOffset -# % gui, FSCN1.proc, readback, Filter Offset, S03SIM-EA-FSCN-01:PROC:FOffset_RBV -# Memory -# % gui, FSCN1.proc, groupHeading, Memory -# % gui, FSCN1.proc, readback, Max memory, S03SIM-EA-FSCN-01:PROC:PoolMaxMem -# % gui, FSCN1.proc, readback, Max buffers, S03SIM-EA-FSCN-01:PROC:PoolMaxBuffers -# % gui, FSCN1.proc, readback, Used memory, S03SIM-EA-FSCN-01:PROC:PoolUsedMem -# % gui, FSCN1.proc, readback, Allocated buffers, S03SIM-EA-FSCN-01:PROC:PoolAllocBuffers -# % gui, FSCN1.proc, readback, Free buffers, S03SIM-EA-FSCN-01:PROC:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:PROC:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.proc,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:PROC:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.proc,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:PROC:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.proc,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:PROC:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.proc,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:PROC:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.proc,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:PROC:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.proc,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:PROC:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.proc,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:PROC:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.proc,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:PROC:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-01:PROC:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:PROC:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-01:PROC:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:PROC:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-01:PROC:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-01:PROC:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:PROC:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:PROC:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:PROC:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-01:PROC:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:PROC:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:PROC:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN1.proc,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN1.proc,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:PROC:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:PROC:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-01:PROC:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-01:PROC:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.proc,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:PROC:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:PROC:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:PROC:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:PROC:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-01:PROC:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:PROC:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-01:PROC:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:PROC:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:PROC:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:PROC:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:PROC:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:PROC:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:PROC:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:PROC:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.proc,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:PROC:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.proc,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-01:PROC:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-01:PROC:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-01:PROC:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-01:PROC:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-01:PROC:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:PROC:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-01:PROC:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:PROC:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.proc,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-01:PROC:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.proc,0,1)NDARRAY_PORT") - field(VAL, "FSCN1.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:PROC:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.proc,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:PROC:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:PROC:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:PROC:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:PROC:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:PROC:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-01:PROC:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-01:PROC:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:PROC:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-01:PROC:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:PROC:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:PROC:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-01:PROC:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:PROC:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:PROC:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:PROC:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-01:PROC:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:PROC:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:PROC:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:PROC:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:PROC:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:PROC:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:PROC:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:PROC:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:PROC:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:PROC:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:PROC:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:PROC:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:PROC:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:PROC:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:PROC:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:PROC:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-01:PROC:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-01:PROC:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:PROC:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:PROC:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:PROC:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:PROC:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-01:PROC:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:PROC:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:PROC:AsynIO") -{ - field(PORT, "FSCN1.proc") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:PROC:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)PROCESS_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:PROC:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)PROCESS_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the background array processing # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:PROC:SaveBackground") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)SAVE_BACKGROUND") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") -} - -record(bi, "S03SIM-EA-FSCN-01:PROC:SaveBackground_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)SAVE_BACKGROUND") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:PROC:EnableBackground") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)ENABLE_BACKGROUND") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:PROC:EnableBackground_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)ENABLE_BACKGROUND") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-EA-FSCN-01:PROC:ValidBackground_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)VALID_BACKGROUND") - field(ZNAM, "Invalid") - field(ONAM, "Valid") - field(SCAN, "I/O Intr") -} - -record(sseq, "S03SIM-EA-FSCN-01:PROC:ReadBackgroundTIFFSeq") -{ - # Make a backup copy of the NDArrayPort field - field(DOL1, "S03SIM-EA-FSCN-01:PROC:NDArrayPort") - field(LNK1, "S03SIM-EA-FSCN-01:PROC:PortBackup PP MS") - # Set the NDArrayPort field to the TIFF plugin - field(DOL2, "S03SIM-EA-FSCN-01:PROC:TIFF:PortName_RBV") - field(LNK2, "S03SIM-EA-FSCN-01:PROC:NDArrayPort PP MS") - # Enable array callbacks in the TIFF plugin - field(STR3, "Enable") - field(LNK3, "S03SIM-EA-FSCN-01:PROC:TIFF:ArrayCallbacks PP MS") - # Read the TIFF file - field(DLY4, "0.1") - field(DO4, "1") - field(LNK4, "S03SIM-EA-FSCN-01:PROC:TIFF:ReadFile PP MS") - # Save background TIFF - field(DLY5, "0.5") - field(DO5, "1") - field(LNK5, "S03SIM-EA-FSCN-01:PROC:SaveBackground PP MS") - # Restore the NDArrayPort field - field(DOL6, "S03SIM-EA-FSCN-01:PROC:PortBackup") - field(LNK6, "S03SIM-EA-FSCN-01:PROC:NDArrayPort PP MS") -} - -record(stringout, "S03SIM-EA-FSCN-01:PROC:PortBackup") -{ -} - -################################################################### -# These records control the flat field array processing # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:PROC:SaveFlatField") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)SAVE_FLAT_FIELD") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") -} - -record(bi, "S03SIM-EA-FSCN-01:PROC:SaveFlatField_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)SAVE_FLAT_FIELD") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:PROC:EnableFlatField") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)ENABLE_FLAT_FIELD") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:PROC:EnableFlatField_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)ENABLE_FLAT_FIELD") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-EA-FSCN-01:PROC:ValidFlatField_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)VALID_FLAT_FIELD") - field(ZNAM, "Invalid") - field(ONAM, "Valid") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:ScaleFlatField") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)SCALE_FLAT_FIELD") - field(VAL, "255.") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:PROC:ScaleFlatField_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)SCALE_FLAT_FIELD") - field(SCAN, "I/O Intr") -} - -record(sseq, "S03SIM-EA-FSCN-01:PROC:ReadFlatFieldTIFFSeq") -{ - # Make a backup copy of the NDArrayPort field - field(DOL1, "S03SIM-EA-FSCN-01:PROC:NDArrayPort") - field(LNK1, "S03SIM-EA-FSCN-01:PROC:PortBackup PP MS") - # Set the NDArrayPort field to the TIFF plugin - field(DOL2, "S03SIM-EA-FSCN-01:PROC:TIFF:PortName_RBV") - field(LNK2, "S03SIM-EA-FSCN-01:PROC:NDArrayPort PP MS") - # Enable array callbacks in the TIFF plugin - field(STR3, "Enable") - field(LNK3, "S03SIM-EA-FSCN-01:PROC:TIFF:ArrayCallbacks PP MS") - # Read the TIFF file - field(DLY4, "0.1") - field(DO4, "1") - field(LNK4, "S03SIM-EA-FSCN-01:PROC:TIFF:ReadFile PP MS") - # Save background TIFF - field(DLY5, "0.5") - field(DO5, "1") - field(LNK5, "S03SIM-EA-FSCN-01:PROC:SaveFlatField PP MS") - # Restore the NDArrayPort field - field(DOL6, "S03SIM-EA-FSCN-01:PROC:PortBackup") - field(LNK6, "S03SIM-EA-FSCN-01:PROC:NDArrayPort PP MS") -} - -################################################################### -# These records control the offset and scale # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:PROC:EnableOffsetScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)ENABLE_OFFSET_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -# Oneshot record for calculating scale and offset -record(ai, "S03SIM-EA-FSCN-01:PROC:AutoOffsetScale") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)AUTO_OFFSET_SCALE") - field(ZNAM, "Done") - field(ONAM, "Calculating") -} - -record(bi, "S03SIM-EA-FSCN-01:PROC:EnableOffsetScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)ENABLE_OFFSET_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:Offset") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)OFFSET") - field(PREC, "2") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:PROC:Offset_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)OFFSET") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)SCALE") - field(PREC, "2") - field(VAL, "1.0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:PROC:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)SCALE") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the high and low clipping # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:PROC:EnableLowClip") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)ENABLE_LOW_CLIP") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:PROC:EnableLowClip_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)ENABLE_LOW_CLIP") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:LowClip") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)LOW_CLIP") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:PROC:LowClip_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)LOW_CLIP") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:PROC:EnableHighClip") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)ENABLE_HIGH_CLIP") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:PROC:EnableHighClip_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)ENABLE_HIGH_CLIP") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:HighClip") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)HIGH_CLIP") - field(VAL, "100.0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:PROC:HighClip_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)HIGH_CLIP") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control frame filtering # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:PROC:EnableFilter") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)ENABLE_FILTER") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:PROC:EnableFilter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)ENABLE_FILTER") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:PROC:ResetFilter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)RESET_FILTER") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") -} - -record(bi, "S03SIM-EA-FSCN-01:PROC:ResetFilter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)RESET_FILTER") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:PROC:AutoResetFilter") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)AUTO_RESET_FILTER") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:PROC:AutoResetFilter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)AUTO_RESET_FILTER") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:PROC:FilterCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_CALLBACKS") - field(ZNAM, "Every array") - field(ONAM, "Array N only") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:PROC:FilterCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)FILTER_CALLBACKS") - field(ZNAM, "Every array") - field(ONAM, "Array N only") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:PROC:NumFilter") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.proc,0,1)NUM_FILTER") - field(VAL, "1") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:NumFilterRecip.PROC PP") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:NumFilter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)NUM_FILTER") - field(SCAN, "I/O Intr") -} - -# This is 1/NumFilter, used in RecursiveSum filter -# If this value changes we need to process FilterType to make it update filter coefficients -record(calc, "S03SIM-EA-FSCN-01:PROC:NumFilterRecip") -{ - field(INPA, "S03SIM-EA-FSCN-01:PROC:NumFilter.VAL NPP") - field(CALC, "1./A") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:FilterType.PROC PP") -} - -record(longin, "S03SIM-EA-FSCN-01:PROC:NumFiltered_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.proc,0,1)NUM_FILTERED") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:OOffset") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_OOFFSET") - field(VAL, "0.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-01:PROC:OOffset_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)FILTER_OOFFSET") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:OScale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_OSCALE") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-01:PROC:OScale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)FILTER_OSCALE") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:OC1") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_OC1") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-01:PROC:OC1_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)FILTER_OC1") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:OC2") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_OC2") - field(VAL, "-1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-01:PROC:OC2_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)FILTER_OC2") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:OC3") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_OC3") - field(VAL, "0.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-01:PROC:OC3_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)FILTER_OC3") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:OC4") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_OC4") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-01:PROC:OC4_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)FILTER_OC4") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:FOffset") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_FOFFSET") - field(VAL, "0.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-01:PROC:FOffset_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)FILTER_FOFFSET") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:FScale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_FSCALE") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-01:PROC:FScale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)FILTER_FSCALE") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:FC1") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_FC1") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-01:PROC:FC1_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)FILTER_FC1") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:FC2") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_FC2") - field(VAL, "-1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-01:PROC:FC2_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)FILTER_FC2") - field(PREC, "2") - field(SCAN, "I/O Intr") -} -record(ao, "S03SIM-EA-FSCN-01:PROC:FC3") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_FC3") - field(VAL, "0.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-01:PROC:FC3_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)FILTER_FC3") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:FC4") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_FC4") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-01:PROC:FC4_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)FILTER_FC4") - field(PREC, "2") - field(SCAN, "I/O Intr") -} -record(ao, "S03SIM-EA-FSCN-01:PROC:ROffset") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_ROFFSET") - field(VAL, "0.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-01:PROC:ROffset_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)FILTER_ROFFSET") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:RC1") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_RC1") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-01:PROC:RC1_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)FILTER_RC1") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:PROC:RC2") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.proc,0,1)FILTER_RC2") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-01:PROC:RC2_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.proc,0,1)FILTER_RC2") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -# We don't see PINI=YES for FilterType because we want to restore the actual coefficients -# We do restore this record, but we don't process it -record(mbbo, "S03SIM-EA-FSCN-01:PROC:FilterType") -{ - field(ZRST, "RecursiveAve") - field(ZRVL, "1") - field(ONST, "Average") - field(ONVL, "2") - field(TWST, "Sum") - field(TWVL, "3") - field(THST, "Difference") - field(THVL, "4") - field(FRST, "RecursiveAveDiff") - field(FRVL, "5") - field(FVST, "CopyToFilter") - field(FVVL, "6") - field(FLNK, "S03SIM-EA-FSCN-01:PROC:FilterTypeSeq PP MS") - info(autosaveFields, "VAL") -} - -record(seq, "S03SIM-EA-FSCN-01:PROC:FilterTypeSeq") -{ - field(SELL, "S03SIM-EA-FSCN-01:PROC:FilterType.RVAL NPP") - field(SELM, "Specified") - field(DOL1, "1") - field(LNK1, "S03SIM-EA-FSCN-01:PROC:RecursiveAveSeq.PROC PP MS") - field(DOL2, "1") - field(LNK2, "S03SIM-EA-FSCN-01:PROC:AverageSeq.PROC PP MS") - field(DOL3, "1") - field(LNK3, "S03SIM-EA-FSCN-01:PROC:SumSeq.PROC PP MS") - field(DOL4, "1") - field(LNK4, "S03SIM-EA-FSCN-01:PROC:DifferenceSeq.PROC PP MS") - field(DOL5, "1") - field(LNK5, "S03SIM-EA-FSCN-01:PROC:RecursiveAveDiffSeq.PROC PP MS") - field(DOL6, "1") - field(LNK6, "S03SIM-EA-FSCN-01:PROC:CopyToFilterSeq.PROC PP MS") -} - -record(seq, "S03SIM-EA-FSCN-01:PROC:RecursiveAveSeq") -{ - field(DOL1, "1") - field(LNK1, "S03SIM-EA-FSCN-01:PROC:OC1 PP MS") - field(DOL2, "-1") - field(LNK2, "S03SIM-EA-FSCN-01:PROC:OC2 PP MS") - field(DOL3, "0") - field(LNK3, "S03SIM-EA-FSCN-01:PROC:OC3 PP MS") - field(DOL4, "1") - field(LNK4, "S03SIM-EA-FSCN-01:PROC:OC4 PP MS") - field(DOL5, "1") - field(LNK5, "S03SIM-EA-FSCN-01:PROC:FC1 PP MS") - field(DOL6, "-1") - field(LNK6, "S03SIM-EA-FSCN-01:PROC:FC2 PP MS") - field(DOL7, "0") - field(LNK7, "S03SIM-EA-FSCN-01:PROC:FC3 PP MS") - field(DOL8, "1") - field(LNK8, "S03SIM-EA-FSCN-01:PROC:FC4 PP MS") - field(DOL9, "0") - field(LNK9, "S03SIM-EA-FSCN-01:PROC:RC1 PP MS") - field(DOLA, "1") - field(LNKA, "S03SIM-EA-FSCN-01:PROC:RC2 PP MS") -} - -record(seq, "S03SIM-EA-FSCN-01:PROC:AverageSeq") -{ - field(DOL1, "1") - field(LNK1, "S03SIM-EA-FSCN-01:PROC:OC1 PP MS") - field(DOL2, "0") - field(LNK2, "S03SIM-EA-FSCN-01:PROC:OC2 PP MS") - field(DOL3, "S03SIM-EA-FSCN-01:PROC:NumFilterRecip NPP") - field(LNK3, "S03SIM-EA-FSCN-01:PROC:OC3 PP MS") - field(DOL4, "0") - field(LNK4, "S03SIM-EA-FSCN-01:PROC:OC4 PP MS") - field(DOL5, "1") - field(LNK5, "S03SIM-EA-FSCN-01:PROC:FC1 PP MS") - field(DOL6, "0") - field(LNK6, "S03SIM-EA-FSCN-01:PROC:FC2 PP MS") - field(DOL7, "S03SIM-EA-FSCN-01:PROC:NumFilterRecip NPP") - field(LNK7, "S03SIM-EA-FSCN-01:PROC:FC3 PP MS") - field(DOL8, "0") - field(LNK8, "S03SIM-EA-FSCN-01:PROC:FC4 PP MS") - field(DOL9, "0") - field(LNK9, "S03SIM-EA-FSCN-01:PROC:RC1 PP MS") - field(DOLA, "0") - field(LNKA, "S03SIM-EA-FSCN-01:PROC:RC2 PP MS") -} - -record(seq, "S03SIM-EA-FSCN-01:PROC:SumSeq") -{ - field(DOL1, "1") - field(LNK1, "S03SIM-EA-FSCN-01:PROC:OC1 PP MS") - field(DOL2, "0") - field(LNK2, "S03SIM-EA-FSCN-01:PROC:OC2 PP MS") - field(DOL3, "1") - field(LNK3, "S03SIM-EA-FSCN-01:PROC:OC3 PP MS") - field(DOL4, "0") - field(LNK4, "S03SIM-EA-FSCN-01:PROC:OC4 PP MS") - field(DOL5, "1") - field(LNK5, "S03SIM-EA-FSCN-01:PROC:FC1 PP MS") - field(DOL6, "0") - field(LNK6, "S03SIM-EA-FSCN-01:PROC:FC2 PP MS") - field(DOL7, "1") - field(LNK7, "S03SIM-EA-FSCN-01:PROC:FC3 PP MS") - field(DOL8, "0") - field(LNK8, "S03SIM-EA-FSCN-01:PROC:FC4 PP MS") - field(DOL9, "0") - field(LNK9, "S03SIM-EA-FSCN-01:PROC:RC1 PP MS") - field(DOLA, "0") - field(LNKA, "S03SIM-EA-FSCN-01:PROC:RC2 PP MS") -} - -record(seq, "S03SIM-EA-FSCN-01:PROC:DifferenceSeq") -{ - field(DOL1, "-1") - field(LNK1, "S03SIM-EA-FSCN-01:PROC:OC1 PP MS") - field(DOL2, "0") - field(LNK2, "S03SIM-EA-FSCN-01:PROC:OC2 PP MS") - field(DOL3, "1") - field(LNK3, "S03SIM-EA-FSCN-01:PROC:OC3 PP MS") - field(DOL4, "0") - field(LNK4, "S03SIM-EA-FSCN-01:PROC:OC4 PP MS") - field(DOL5, "0") - field(LNK5, "S03SIM-EA-FSCN-01:PROC:FC1 PP MS") - field(DOL6, "0") - field(LNK6, "S03SIM-EA-FSCN-01:PROC:FC2 PP MS") - field(DOL7, "1") - field(LNK7, "S03SIM-EA-FSCN-01:PROC:FC3 PP MS") - field(DOL8, "0") - field(LNK8, "S03SIM-EA-FSCN-01:PROC:FC4 PP MS") - field(DOL9, "0") - field(LNK9, "S03SIM-EA-FSCN-01:PROC:RC1 PP MS") - field(DOLA, "1") - field(LNKA, "S03SIM-EA-FSCN-01:PROC:RC2 PP MS") -} - -record(seq, "S03SIM-EA-FSCN-01:PROC:RecursiveAveDiffSeq") -{ - field(DOL1, "-1") - field(LNK1, "S03SIM-EA-FSCN-01:PROC:OC1 PP MS") - field(DOL2, "0") - field(LNK2, "S03SIM-EA-FSCN-01:PROC:OC2 PP MS") - field(DOL3, "1") - field(LNK3, "S03SIM-EA-FSCN-01:PROC:OC3 PP MS") - field(DOL4, "0") - field(LNK4, "S03SIM-EA-FSCN-01:PROC:OC4 PP MS") - field(DOL5, "1") - field(LNK5, "S03SIM-EA-FSCN-01:PROC:FC1 PP MS") - field(DOL6, "-1") - field(LNK6, "S03SIM-EA-FSCN-01:PROC:FC2 PP MS") - field(DOL7, "0") - field(LNK7, "S03SIM-EA-FSCN-01:PROC:FC3 PP MS") - field(DOL8, "1") - field(LNK8, "S03SIM-EA-FSCN-01:PROC:FC4 PP MS") - field(DOL9, "0") - field(LNK9, "S03SIM-EA-FSCN-01:PROC:RC1 PP MS") - field(DOLA, "1") - field(LNKA, "S03SIM-EA-FSCN-01:PROC:RC2 PP MS") -} - -record(seq, "S03SIM-EA-FSCN-01:PROC:CopyToFilterSeq") -{ - field(DOL1, "0") - field(LNK1, "S03SIM-EA-FSCN-01:PROC:OC1 PP MS") - field(DOL2, "0") - field(LNK2, "S03SIM-EA-FSCN-01:PROC:OC2 PP MS") - field(DOL3, "1") - field(LNK3, "S03SIM-EA-FSCN-01:PROC:OC3 PP MS") - field(DOL4, "0") - field(LNK4, "S03SIM-EA-FSCN-01:PROC:OC4 PP MS") - field(DOL5, "0") - field(LNK5, "S03SIM-EA-FSCN-01:PROC:FC1 PP MS") - field(DOL6, "0") - field(LNK6, "S03SIM-EA-FSCN-01:PROC:FC2 PP MS") - field(DOL7, "1") - field(LNK7, "S03SIM-EA-FSCN-01:PROC:FC3 PP MS") - field(DOL8, "0") - field(LNK8, "S03SIM-EA-FSCN-01:PROC:FC4 PP MS") - field(DOL9, "0") - field(LNK9, "S03SIM-EA-FSCN-01:PROC:RC1 PP MS") - field(DOLA, "1") - field(LNKA, "S03SIM-EA-FSCN-01:PROC:RC2 PP MS") -} -#=================================================================# -# Template file: NDProcess.template -# Database for ND PluginProcess -# Mark Rivers -# March 14, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, FSCN2.proc, edmtab, NDProcess.edl, P=S03SIM-EA-FSCN-02,R=:PROC: - -# This associates a BOY screen with the template -# % gui, FSCN2.proc, boydetail,ADApp_opi/dls/proc_detail.opi, P=S03SIM-EA-FSCN-02, R=:PROC:, DESC=Process -# % gui, FSCN2.proc, boyembed, ADApp_opi/dls/proc_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:PROC:, DESC=Process -# % gui, FSCN2.proc, boyembed, ADApp_opi/dls/proc_embed.opi, P=S03SIM-EA-FSCN-02, R=:PROC:, DESC=Process - -# % gui, FSCN2.proc, groupHeading, Info -# % gui, FSCN2.proc, readback, Port name, S03SIM-EA-FSCN-02:PROC:PortName_RBV -# % gui, FSCN2.proc, readback, Plugin type, S03SIM-EA-FSCN-02:PROC:PluginType_RBV -# Input -# % gui, FSCN2.proc, demandString, Input, S03SIM-EA-FSCN-02:PROC:NDArrayPort -# % gui, FSCN2.proc, readback, Input, S03SIM-EA-FSCN-02:PROC:NDArrayPort_RBV - -# % gui, FSCN2.proc, groupHeading, Callback -# % gui, FSCN2.proc, enum, Callbacks, S03SIM-EA-FSCN-02:PROC:EnableCallbacks -# % gui, FSCN2.proc, statusbits, Callbacks, S03SIM-EA-FSCN-02:PROC:EnableCallbacks_RBV -# % gui, FSCN2.proc, demand, Min Callback Time, S03SIM-EA-FSCN-02:PROC:MinCallbackTime -# % gui, FSCN2.proc, readback, Min Callback Time, S03SIM-EA-FSCN-02:PROC:MinCallbackTime_RBV -# % gui, FSCN2.proc, enum, Block Callbacks, S03SIM-EA-FSCN-02:PROC:BlockingCallbacks -# % gui, FSCN2.proc, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:PROC:BlockingCallbacks_RBV - -# % gui, FSCN2.proc, groupHeading, Counters -# % gui, FSCN2.proc, demand, Array Counter, S03SIM-EA-FSCN-02:PROC:ArrayCounter -# % gui, FSCN2.proc, readback, Array Counter, S03SIM-EA-FSCN-02:PROC:ArrayCounter_RBV -# % gui, FSCN2.proc, readback, Array Rate (fps), S03SIM-EA-FSCN-02:PROC:ArrayRate_RBV -# % gui, FSCN2.proc, readback, Queue Use, S03SIM-EA-FSCN-02:PROC:QueueUse -# % gui, FSCN2.proc, readback, Queue Size, S03SIM-EA-FSCN-02:PROC:QueueSize -# % gui, FSCN2.proc, demand, Dropped Arrays, S03SIM-EA-FSCN-02:PROC:DroppedArrays -# % gui, FSCN2.proc, readback, Dropped Arrays, S03SIM-EA-FSCN-02:PROC:DroppedArrays_RBV - -# % gui, FSCN2.proc, groupHeading, Array Settings -# % gui, FSCN2.proc, readback, Num Dimensions, S03SIM-EA-FSCN-02:PROC:NDimensions_RBV -# % gui, FSCN2.proc, readback, Dim 0 Size, S03SIM-EA-FSCN-02:PROC:ArraySize0_RBV -# % gui, FSCN2.proc, readback, Dim 1 Size, S03SIM-EA-FSCN-02:PROC:ArraySize1_RBV -# % gui, FSCN2.proc, readback, Dim 2 Size, S03SIM-EA-FSCN-02:PROC:ArraySize2_RBV -# % gui, FSCN2.proc, readback, Input Data Type, S03SIM-EA-FSCN-02:PROC:DataType_RBV -# % gui, FSCN2.proc, readback, Colour Mode, S03SIM-EA-FSCN-02:PROC:ColorMode_RBV -# % gui, FSCN2.proc, readback, Bayer Pattern, S03SIM-EA-FSCN-02:PROC:BayerPattern_RBV -# % gui, FSCN2.proc, readback, Unique id, S03SIM-EA-FSCN-02:PROC:UniqueId_RBV -# % gui, FSCN2.proc, readback, Timestamp, S03SIM-EA-FSCN-02:PROC:TimeStamp_RBV - -# Output -# % gui, FSCN2.proc, groupHeading, Output -# % gui, FSCN2.proc, demand, Name, S03SIM-EA-FSCN-02:PROC:Name -# % gui, FSCN2.proc, enum, Out data type, S03SIM-EA-FSCN-02:PROC:DataTypeOut -# % gui, FSCN2.proc, readback, Out data type, S03SIM-EA-FSCN-02:PROC:DataTypeOut_RBV -# % gui, FSCN2.proc, demand, Attributes file, S03SIM-EA-FSCN-02:PROC:NDAttributesFile - -# Background subtraction -# % gui, FSCN2.proc, groupHeading, Background Subtraction -# % gui, FSCN2.proc, enum, Enable Subtraction, S03SIM-EA-FSCN-02:PROC:EnableBackground -# % gui, FSCN2.proc, readback, Enable Subtraction, S03SIM-EA-FSCN-02:PROC:EnableBackground_RBV -# % gui, FSCN2.proc, command, Save Background, S03SIM-EA-FSCN-02:PROC:SaveBackground -# % gui, FSCN2.proc, readback, Save Background, S03SIM-EA-FSCN-02:PROC:SaveBackground_RBV -# Flat field -# % gui, FSCN2.proc, groupHeading, Flat Field -# % gui, FSCN2.proc, enum, Enable Flat Field, S03SIM-EA-FSCN-02:PROC:EnableFlatField -# % gui, FSCN2.proc, readback, Enable Flat Field, S03SIM-EA-FSCN-02:PROC:EnableFlatField_RBV -# % gui, FSCN2.proc, command, Save Flat Field, S03SIM-EA-FSCN-02:PROC:SaveFlatField -# % gui, FSCN2.proc, readback, Save Flat Field, S03SIM-EA-FSCN-02:PROC:SaveFlatField_RBV -# % gui, FSCN2.proc, demand, Scale Flat Field, S03SIM-EA-FSCN-02:PROC:ScaleFlatField -# % gui, FSCN2.proc, readback, Scale Flat Field, S03SIM-EA-FSCN-02:PROC:ScaleFlatField_RBV -# Scale and offset -# % gui, FSCN2.proc, groupHeading, Scale and Offset -# % gui, FSCN2.proc, enum, Enable Scale and Offset, S03SIM-EA-FSCN-02:PROC:EnableOffsetScale -# % gui, FSCN2.proc, readback, Enable Scale and Offset, S03SIM-EA-FSCN-02:PROC:EnableOffsetScale_RBV -# % gui, FSCN2.proc, demand, Offset, S03SIM-EA-FSCN-02:PROC:Offset -# % gui, FSCN2.proc, readback, Offset, S03SIM-EA-FSCN-02:PROC:Offset_RBV -# % gui, FSCN2.proc, demand, Scale, S03SIM-EA-FSCN-02:PROC:Scale -# % gui, FSCN2.proc, readback, Scale, S03SIM-EA-FSCN-02:PROC:Scale_RBV -# % gui, FSCN2.proc, enum, Enable Low Clip, S03SIM-EA-FSCN-02:PROC:EnableLowClip -# % gui, FSCN2.proc, readback, Enable Low Clip, S03SIM-EA-FSCN-02:PROC:EnableLowClip_RBV -# % gui, FSCN2.proc, demand, Low Clip, S03SIM-EA-FSCN-02:PROC:LowClip -# % gui, FSCN2.proc, readback, Low Clip, S03SIM-EA-FSCN-02:PROC:LowClip_RBV -# % gui, FSCN2.proc, enum, Enable High Clip, S03SIM-EA-FSCN-02:PROC:EnableHighClip -# % gui, FSCN2.proc, readback, Enable High Clip, S03SIM-EA-FSCN-02:PROC:EnableHighClip_RBV -# % gui, FSCN2.proc, demand, High Clip, S03SIM-EA-FSCN-02:PROC:HighClip -# % gui, FSCN2.proc, readback, High Clip, S03SIM-EA-FSCN-02:PROC:HighClip_RBV -# Recursive filter -# % gui, FSCN2.proc, groupHeading, Recursive Filter -# % gui, FSCN2.proc, enum, Enable Filter, S03SIM-EA-FSCN-02:PROC:EnableFilter -# % gui, FSCN2.proc, readback, Enable Filter, S03SIM-EA-FSCN-02:PROC:EnableFilter_RBV -# % gui, FSCN2.proc, enum, Filter Type, S03SIM-EA-FSCN-02:PROC:FilterType -# % gui, FSCN2.proc, demand, N Filter, S03SIM-EA-FSCN-02:PROC:NumFilter -# % gui, FSCN2.proc, readback, N Filter, S03SIM-EA-FSCN-02:PROC:NumFilter_RBV -# % gui, FSCN2.proc, readback, N Filtered, S03SIM-EA-FSCN-02:PROC:NumFiltered_RBV -# % gui, FSCN2.proc, enum, Filter Callbacks, S03SIM-EA-FSCN-02:PROC:FilterCallbacks -# % gui, FSCN2.proc, readback, Filter Callbacks, S03SIM-EA-FSCN-02:PROC:FilterCallbacks_RBV -# % gui, FSCN2.proc, command, Reset, S03SIM-EA-FSCN-02:PROC:ResetFilter -# % gui, FSCN2.proc, readback, Reset, S03SIM-EA-FSCN-02:PROC:ResetFilter -# % gui, FSCN2.proc, enum, Auto Reset, S03SIM-EA-FSCN-02:PROC:AutoResetFilter -# % gui, FSCN2.proc, readback, Auto Reset, S03SIM-EA-FSCN-02:PROC:AutoResetFilter_RBV -# % gui, FSCN2.proc, demand, Output Scale, S03SIM-EA-FSCN-02:PROC:OScale -# % gui, FSCN2.proc, readback, Output Scale, S03SIM-EA-FSCN-02:PROC:OScale_RBV -# % gui, FSCN2.proc, demand, Output Offset, S03SIM-EA-FSCN-02:PROC:OOffset -# % gui, FSCN2.proc, readback, Output Offset, S03SIM-EA-FSCN-02:PROC:OOffset_RBV -# % gui, FSCN2.proc, demand, Filter Scale, S03SIM-EA-FSCN-02:PROC:FScale -# % gui, FSCN2.proc, readback, Filter Scale, S03SIM-EA-FSCN-02:PROC:FScale_RBV -# % gui, FSCN2.proc, demand, Filter Offset, S03SIM-EA-FSCN-02:PROC:FOffset -# % gui, FSCN2.proc, readback, Filter Offset, S03SIM-EA-FSCN-02:PROC:FOffset_RBV -# Memory -# % gui, FSCN2.proc, groupHeading, Memory -# % gui, FSCN2.proc, readback, Max memory, S03SIM-EA-FSCN-02:PROC:PoolMaxMem -# % gui, FSCN2.proc, readback, Max buffers, S03SIM-EA-FSCN-02:PROC:PoolMaxBuffers -# % gui, FSCN2.proc, readback, Used memory, S03SIM-EA-FSCN-02:PROC:PoolUsedMem -# % gui, FSCN2.proc, readback, Allocated buffers, S03SIM-EA-FSCN-02:PROC:PoolAllocBuffers -# % gui, FSCN2.proc, readback, Free buffers, S03SIM-EA-FSCN-02:PROC:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:PROC:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.proc,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:PROC:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.proc,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:PROC:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.proc,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:PROC:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.proc,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:PROC:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.proc,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:PROC:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.proc,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:PROC:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.proc,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:PROC:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.proc,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:PROC:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-02:PROC:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:PROC:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-02:PROC:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:PROC:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-02:PROC:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-02:PROC:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:PROC:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:PROC:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:PROC:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-02:PROC:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:PROC:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:PROC:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN2.proc,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN2.proc,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:PROC:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:PROC:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:PROC:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-02:PROC:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.proc,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:PROC:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:PROC:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:PROC:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:PROC:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-02:PROC:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:PROC:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-02:PROC:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:PROC:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:PROC:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:PROC:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:PROC:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:PROC:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:PROC:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:PROC:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.proc,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:PROC:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.proc,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-02:PROC:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-02:PROC:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-02:PROC:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-02:PROC:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-02:PROC:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:PROC:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-02:PROC:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:PROC:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.proc,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-02:PROC:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.proc,0,1)NDARRAY_PORT") - field(VAL, "FSCN2.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:PROC:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.proc,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:PROC:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:PROC:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:PROC:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:PROC:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:PROC:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-02:PROC:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-02:PROC:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:PROC:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-02:PROC:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:PROC:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:PROC:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-02:PROC:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:PROC:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:PROC:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:PROC:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-02:PROC:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:PROC:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:PROC:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:PROC:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:PROC:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:PROC:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:PROC:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:PROC:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:PROC:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:PROC:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:PROC:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:PROC:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:PROC:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:PROC:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:PROC:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:PROC:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-02:PROC:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-02:PROC:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:PROC:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:PROC:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:PROC:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:PROC:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-02:PROC:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:PROC:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:PROC:AsynIO") -{ - field(PORT, "FSCN2.proc") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -################################################################### -# These records control the data type of the array data # -# The last entry is "Automatic" meaning preserve the data type # -# of the input array. # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:PROC:DataTypeOut") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)PROCESS_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(VAL, "10") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:PROC:DataTypeOut_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)PROCESS_DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(TEST, "Automatic") - field(TEVL, "-1") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the background array processing # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:PROC:SaveBackground") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)SAVE_BACKGROUND") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") -} - -record(bi, "S03SIM-EA-FSCN-02:PROC:SaveBackground_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)SAVE_BACKGROUND") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:PROC:EnableBackground") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)ENABLE_BACKGROUND") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:PROC:EnableBackground_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)ENABLE_BACKGROUND") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-EA-FSCN-02:PROC:ValidBackground_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)VALID_BACKGROUND") - field(ZNAM, "Invalid") - field(ONAM, "Valid") - field(SCAN, "I/O Intr") -} - -record(sseq, "S03SIM-EA-FSCN-02:PROC:ReadBackgroundTIFFSeq") -{ - # Make a backup copy of the NDArrayPort field - field(DOL1, "S03SIM-EA-FSCN-02:PROC:NDArrayPort") - field(LNK1, "S03SIM-EA-FSCN-02:PROC:PortBackup PP MS") - # Set the NDArrayPort field to the TIFF plugin - field(DOL2, "S03SIM-EA-FSCN-02:PROC:TIFF:PortName_RBV") - field(LNK2, "S03SIM-EA-FSCN-02:PROC:NDArrayPort PP MS") - # Enable array callbacks in the TIFF plugin - field(STR3, "Enable") - field(LNK3, "S03SIM-EA-FSCN-02:PROC:TIFF:ArrayCallbacks PP MS") - # Read the TIFF file - field(DLY4, "0.1") - field(DO4, "1") - field(LNK4, "S03SIM-EA-FSCN-02:PROC:TIFF:ReadFile PP MS") - # Save background TIFF - field(DLY5, "0.5") - field(DO5, "1") - field(LNK5, "S03SIM-EA-FSCN-02:PROC:SaveBackground PP MS") - # Restore the NDArrayPort field - field(DOL6, "S03SIM-EA-FSCN-02:PROC:PortBackup") - field(LNK6, "S03SIM-EA-FSCN-02:PROC:NDArrayPort PP MS") -} - -record(stringout, "S03SIM-EA-FSCN-02:PROC:PortBackup") -{ -} - -################################################################### -# These records control the flat field array processing # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:PROC:SaveFlatField") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)SAVE_FLAT_FIELD") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") -} - -record(bi, "S03SIM-EA-FSCN-02:PROC:SaveFlatField_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)SAVE_FLAT_FIELD") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:PROC:EnableFlatField") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)ENABLE_FLAT_FIELD") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:PROC:EnableFlatField_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)ENABLE_FLAT_FIELD") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-EA-FSCN-02:PROC:ValidFlatField_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)VALID_FLAT_FIELD") - field(ZNAM, "Invalid") - field(ONAM, "Valid") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:ScaleFlatField") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)SCALE_FLAT_FIELD") - field(VAL, "255.") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:PROC:ScaleFlatField_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)SCALE_FLAT_FIELD") - field(SCAN, "I/O Intr") -} - -record(sseq, "S03SIM-EA-FSCN-02:PROC:ReadFlatFieldTIFFSeq") -{ - # Make a backup copy of the NDArrayPort field - field(DOL1, "S03SIM-EA-FSCN-02:PROC:NDArrayPort") - field(LNK1, "S03SIM-EA-FSCN-02:PROC:PortBackup PP MS") - # Set the NDArrayPort field to the TIFF plugin - field(DOL2, "S03SIM-EA-FSCN-02:PROC:TIFF:PortName_RBV") - field(LNK2, "S03SIM-EA-FSCN-02:PROC:NDArrayPort PP MS") - # Enable array callbacks in the TIFF plugin - field(STR3, "Enable") - field(LNK3, "S03SIM-EA-FSCN-02:PROC:TIFF:ArrayCallbacks PP MS") - # Read the TIFF file - field(DLY4, "0.1") - field(DO4, "1") - field(LNK4, "S03SIM-EA-FSCN-02:PROC:TIFF:ReadFile PP MS") - # Save background TIFF - field(DLY5, "0.5") - field(DO5, "1") - field(LNK5, "S03SIM-EA-FSCN-02:PROC:SaveFlatField PP MS") - # Restore the NDArrayPort field - field(DOL6, "S03SIM-EA-FSCN-02:PROC:PortBackup") - field(LNK6, "S03SIM-EA-FSCN-02:PROC:NDArrayPort PP MS") -} - -################################################################### -# These records control the offset and scale # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:PROC:EnableOffsetScale") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)ENABLE_OFFSET_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -# Oneshot record for calculating scale and offset -record(ai, "S03SIM-EA-FSCN-02:PROC:AutoOffsetScale") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)AUTO_OFFSET_SCALE") - field(ZNAM, "Done") - field(ONAM, "Calculating") -} - -record(bi, "S03SIM-EA-FSCN-02:PROC:EnableOffsetScale_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)ENABLE_OFFSET_SCALE") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:Offset") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)OFFSET") - field(PREC, "2") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:PROC:Offset_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)OFFSET") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:Scale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)SCALE") - field(PREC, "2") - field(VAL, "1.0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:PROC:Scale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)SCALE") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the high and low clipping # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:PROC:EnableLowClip") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)ENABLE_LOW_CLIP") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:PROC:EnableLowClip_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)ENABLE_LOW_CLIP") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:LowClip") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)LOW_CLIP") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:PROC:LowClip_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)LOW_CLIP") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:PROC:EnableHighClip") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)ENABLE_HIGH_CLIP") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:PROC:EnableHighClip_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)ENABLE_HIGH_CLIP") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:HighClip") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)HIGH_CLIP") - field(VAL, "100.0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:PROC:HighClip_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)HIGH_CLIP") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control frame filtering # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:PROC:EnableFilter") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)ENABLE_FILTER") - field(ZNAM, "Disable") - field(ONAM, "Enable") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:PROC:EnableFilter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)ENABLE_FILTER") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:PROC:ResetFilter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)RESET_FILTER") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") -} - -record(bi, "S03SIM-EA-FSCN-02:PROC:ResetFilter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)RESET_FILTER") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:PROC:AutoResetFilter") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)AUTO_RESET_FILTER") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:PROC:AutoResetFilter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)AUTO_RESET_FILTER") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:PROC:FilterCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_CALLBACKS") - field(ZNAM, "Every array") - field(ONAM, "Array N only") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:PROC:FilterCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)FILTER_CALLBACKS") - field(ZNAM, "Every array") - field(ONAM, "Array N only") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:PROC:NumFilter") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.proc,0,1)NUM_FILTER") - field(VAL, "1") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:NumFilterRecip.PROC PP") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:NumFilter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)NUM_FILTER") - field(SCAN, "I/O Intr") -} - -# This is 1/NumFilter, used in RecursiveSum filter -# If this value changes we need to process FilterType to make it update filter coefficients -record(calc, "S03SIM-EA-FSCN-02:PROC:NumFilterRecip") -{ - field(INPA, "S03SIM-EA-FSCN-02:PROC:NumFilter.VAL NPP") - field(CALC, "1./A") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:FilterType.PROC PP") -} - -record(longin, "S03SIM-EA-FSCN-02:PROC:NumFiltered_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.proc,0,1)NUM_FILTERED") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:OOffset") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_OOFFSET") - field(VAL, "0.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-02:PROC:OOffset_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)FILTER_OOFFSET") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:OScale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_OSCALE") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-02:PROC:OScale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)FILTER_OSCALE") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:OC1") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_OC1") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-02:PROC:OC1_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)FILTER_OC1") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:OC2") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_OC2") - field(VAL, "-1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-02:PROC:OC2_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)FILTER_OC2") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:OC3") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_OC3") - field(VAL, "0.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-02:PROC:OC3_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)FILTER_OC3") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:OC4") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_OC4") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-02:PROC:OC4_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)FILTER_OC4") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:FOffset") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_FOFFSET") - field(VAL, "0.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-02:PROC:FOffset_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)FILTER_FOFFSET") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:FScale") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_FSCALE") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-02:PROC:FScale_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)FILTER_FSCALE") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:FC1") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_FC1") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-02:PROC:FC1_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)FILTER_FC1") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:FC2") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_FC2") - field(VAL, "-1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-02:PROC:FC2_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)FILTER_FC2") - field(PREC, "2") - field(SCAN, "I/O Intr") -} -record(ao, "S03SIM-EA-FSCN-02:PROC:FC3") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_FC3") - field(VAL, "0.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-02:PROC:FC3_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)FILTER_FC3") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:FC4") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_FC4") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-02:PROC:FC4_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)FILTER_FC4") - field(PREC, "2") - field(SCAN, "I/O Intr") -} -record(ao, "S03SIM-EA-FSCN-02:PROC:ROffset") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_ROFFSET") - field(VAL, "0.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-02:PROC:ROffset_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)FILTER_ROFFSET") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:RC1") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_RC1") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-02:PROC:RC1_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)FILTER_RC1") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:PROC:RC2") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.proc,0,1)FILTER_RC2") - field(VAL, "1.0") - field(PREC, "2") - info(autosaveFields, "VAL") -} -record(ai, "S03SIM-EA-FSCN-02:PROC:RC2_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.proc,0,1)FILTER_RC2") - field(PREC, "2") - field(SCAN, "I/O Intr") -} - -# We don't see PINI=YES for FilterType because we want to restore the actual coefficients -# We do restore this record, but we don't process it -record(mbbo, "S03SIM-EA-FSCN-02:PROC:FilterType") -{ - field(ZRST, "RecursiveAve") - field(ZRVL, "1") - field(ONST, "Average") - field(ONVL, "2") - field(TWST, "Sum") - field(TWVL, "3") - field(THST, "Difference") - field(THVL, "4") - field(FRST, "RecursiveAveDiff") - field(FRVL, "5") - field(FVST, "CopyToFilter") - field(FVVL, "6") - field(FLNK, "S03SIM-EA-FSCN-02:PROC:FilterTypeSeq PP MS") - info(autosaveFields, "VAL") -} - -record(seq, "S03SIM-EA-FSCN-02:PROC:FilterTypeSeq") -{ - field(SELL, "S03SIM-EA-FSCN-02:PROC:FilterType.RVAL NPP") - field(SELM, "Specified") - field(DOL1, "1") - field(LNK1, "S03SIM-EA-FSCN-02:PROC:RecursiveAveSeq.PROC PP MS") - field(DOL2, "1") - field(LNK2, "S03SIM-EA-FSCN-02:PROC:AverageSeq.PROC PP MS") - field(DOL3, "1") - field(LNK3, "S03SIM-EA-FSCN-02:PROC:SumSeq.PROC PP MS") - field(DOL4, "1") - field(LNK4, "S03SIM-EA-FSCN-02:PROC:DifferenceSeq.PROC PP MS") - field(DOL5, "1") - field(LNK5, "S03SIM-EA-FSCN-02:PROC:RecursiveAveDiffSeq.PROC PP MS") - field(DOL6, "1") - field(LNK6, "S03SIM-EA-FSCN-02:PROC:CopyToFilterSeq.PROC PP MS") -} - -record(seq, "S03SIM-EA-FSCN-02:PROC:RecursiveAveSeq") -{ - field(DOL1, "1") - field(LNK1, "S03SIM-EA-FSCN-02:PROC:OC1 PP MS") - field(DOL2, "-1") - field(LNK2, "S03SIM-EA-FSCN-02:PROC:OC2 PP MS") - field(DOL3, "0") - field(LNK3, "S03SIM-EA-FSCN-02:PROC:OC3 PP MS") - field(DOL4, "1") - field(LNK4, "S03SIM-EA-FSCN-02:PROC:OC4 PP MS") - field(DOL5, "1") - field(LNK5, "S03SIM-EA-FSCN-02:PROC:FC1 PP MS") - field(DOL6, "-1") - field(LNK6, "S03SIM-EA-FSCN-02:PROC:FC2 PP MS") - field(DOL7, "0") - field(LNK7, "S03SIM-EA-FSCN-02:PROC:FC3 PP MS") - field(DOL8, "1") - field(LNK8, "S03SIM-EA-FSCN-02:PROC:FC4 PP MS") - field(DOL9, "0") - field(LNK9, "S03SIM-EA-FSCN-02:PROC:RC1 PP MS") - field(DOLA, "1") - field(LNKA, "S03SIM-EA-FSCN-02:PROC:RC2 PP MS") -} - -record(seq, "S03SIM-EA-FSCN-02:PROC:AverageSeq") -{ - field(DOL1, "1") - field(LNK1, "S03SIM-EA-FSCN-02:PROC:OC1 PP MS") - field(DOL2, "0") - field(LNK2, "S03SIM-EA-FSCN-02:PROC:OC2 PP MS") - field(DOL3, "S03SIM-EA-FSCN-02:PROC:NumFilterRecip NPP") - field(LNK3, "S03SIM-EA-FSCN-02:PROC:OC3 PP MS") - field(DOL4, "0") - field(LNK4, "S03SIM-EA-FSCN-02:PROC:OC4 PP MS") - field(DOL5, "1") - field(LNK5, "S03SIM-EA-FSCN-02:PROC:FC1 PP MS") - field(DOL6, "0") - field(LNK6, "S03SIM-EA-FSCN-02:PROC:FC2 PP MS") - field(DOL7, "S03SIM-EA-FSCN-02:PROC:NumFilterRecip NPP") - field(LNK7, "S03SIM-EA-FSCN-02:PROC:FC3 PP MS") - field(DOL8, "0") - field(LNK8, "S03SIM-EA-FSCN-02:PROC:FC4 PP MS") - field(DOL9, "0") - field(LNK9, "S03SIM-EA-FSCN-02:PROC:RC1 PP MS") - field(DOLA, "0") - field(LNKA, "S03SIM-EA-FSCN-02:PROC:RC2 PP MS") -} - -record(seq, "S03SIM-EA-FSCN-02:PROC:SumSeq") -{ - field(DOL1, "1") - field(LNK1, "S03SIM-EA-FSCN-02:PROC:OC1 PP MS") - field(DOL2, "0") - field(LNK2, "S03SIM-EA-FSCN-02:PROC:OC2 PP MS") - field(DOL3, "1") - field(LNK3, "S03SIM-EA-FSCN-02:PROC:OC3 PP MS") - field(DOL4, "0") - field(LNK4, "S03SIM-EA-FSCN-02:PROC:OC4 PP MS") - field(DOL5, "1") - field(LNK5, "S03SIM-EA-FSCN-02:PROC:FC1 PP MS") - field(DOL6, "0") - field(LNK6, "S03SIM-EA-FSCN-02:PROC:FC2 PP MS") - field(DOL7, "1") - field(LNK7, "S03SIM-EA-FSCN-02:PROC:FC3 PP MS") - field(DOL8, "0") - field(LNK8, "S03SIM-EA-FSCN-02:PROC:FC4 PP MS") - field(DOL9, "0") - field(LNK9, "S03SIM-EA-FSCN-02:PROC:RC1 PP MS") - field(DOLA, "0") - field(LNKA, "S03SIM-EA-FSCN-02:PROC:RC2 PP MS") -} - -record(seq, "S03SIM-EA-FSCN-02:PROC:DifferenceSeq") -{ - field(DOL1, "-1") - field(LNK1, "S03SIM-EA-FSCN-02:PROC:OC1 PP MS") - field(DOL2, "0") - field(LNK2, "S03SIM-EA-FSCN-02:PROC:OC2 PP MS") - field(DOL3, "1") - field(LNK3, "S03SIM-EA-FSCN-02:PROC:OC3 PP MS") - field(DOL4, "0") - field(LNK4, "S03SIM-EA-FSCN-02:PROC:OC4 PP MS") - field(DOL5, "0") - field(LNK5, "S03SIM-EA-FSCN-02:PROC:FC1 PP MS") - field(DOL6, "0") - field(LNK6, "S03SIM-EA-FSCN-02:PROC:FC2 PP MS") - field(DOL7, "1") - field(LNK7, "S03SIM-EA-FSCN-02:PROC:FC3 PP MS") - field(DOL8, "0") - field(LNK8, "S03SIM-EA-FSCN-02:PROC:FC4 PP MS") - field(DOL9, "0") - field(LNK9, "S03SIM-EA-FSCN-02:PROC:RC1 PP MS") - field(DOLA, "1") - field(LNKA, "S03SIM-EA-FSCN-02:PROC:RC2 PP MS") -} - -record(seq, "S03SIM-EA-FSCN-02:PROC:RecursiveAveDiffSeq") -{ - field(DOL1, "-1") - field(LNK1, "S03SIM-EA-FSCN-02:PROC:OC1 PP MS") - field(DOL2, "0") - field(LNK2, "S03SIM-EA-FSCN-02:PROC:OC2 PP MS") - field(DOL3, "1") - field(LNK3, "S03SIM-EA-FSCN-02:PROC:OC3 PP MS") - field(DOL4, "0") - field(LNK4, "S03SIM-EA-FSCN-02:PROC:OC4 PP MS") - field(DOL5, "1") - field(LNK5, "S03SIM-EA-FSCN-02:PROC:FC1 PP MS") - field(DOL6, "-1") - field(LNK6, "S03SIM-EA-FSCN-02:PROC:FC2 PP MS") - field(DOL7, "0") - field(LNK7, "S03SIM-EA-FSCN-02:PROC:FC3 PP MS") - field(DOL8, "1") - field(LNK8, "S03SIM-EA-FSCN-02:PROC:FC4 PP MS") - field(DOL9, "0") - field(LNK9, "S03SIM-EA-FSCN-02:PROC:RC1 PP MS") - field(DOLA, "1") - field(LNKA, "S03SIM-EA-FSCN-02:PROC:RC2 PP MS") -} - -record(seq, "S03SIM-EA-FSCN-02:PROC:CopyToFilterSeq") -{ - field(DOL1, "0") - field(LNK1, "S03SIM-EA-FSCN-02:PROC:OC1 PP MS") - field(DOL2, "0") - field(LNK2, "S03SIM-EA-FSCN-02:PROC:OC2 PP MS") - field(DOL3, "1") - field(LNK3, "S03SIM-EA-FSCN-02:PROC:OC3 PP MS") - field(DOL4, "0") - field(LNK4, "S03SIM-EA-FSCN-02:PROC:OC4 PP MS") - field(DOL5, "0") - field(LNK5, "S03SIM-EA-FSCN-02:PROC:FC1 PP MS") - field(DOL6, "0") - field(LNK6, "S03SIM-EA-FSCN-02:PROC:FC2 PP MS") - field(DOL7, "1") - field(LNK7, "S03SIM-EA-FSCN-02:PROC:FC3 PP MS") - field(DOL8, "0") - field(LNK8, "S03SIM-EA-FSCN-02:PROC:FC4 PP MS") - field(DOL9, "0") - field(LNK9, "S03SIM-EA-FSCN-02:PROC:RC1 PP MS") - field(DOLA, "1") - field(LNKA, "S03SIM-EA-FSCN-02:PROC:RC2 PP MS") -} -#=================================================================# -# Template file: NDOverlay.template -# Database for NDPluginOverlay asyn driver and standard asyn device support -# Mark Rivers -# March 25, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, OAV.over, edmtab, NDOverlay.edl, P=S03SIM-DI-OAV-01,R=:OVER: - -# This associates a BOY screen with the template -# % gui, OAV.over, boydetail,ADApp_opi/dls/over_detail.opi, P=S03SIM-DI-OAV-01, R=:OVER:, DESC=Overlay -# % gui, OAV.over, boyembed, ADApp_opi/dls/over_embed_box.opi, P=S03SIM-DI-OAV-01, R=:OVER:, DESC=Overlay -# % gui, OAV.over, boyembed, ADApp_opi/dls/over_embed.opi, P=S03SIM-DI-OAV-01, R=:OVER:, DESC=Overlay - - -# % gui, OAV.over, groupHeading, Info -# % gui, OAV.over, readback, Port name, S03SIM-DI-OAV-01:OVER:PortName_RBV -# % gui, OAV.over, readback, Plugin type, S03SIM-DI-OAV-01:OVER:PluginType_RBV -# Input -# % gui, OAV.over, demandString, Input, S03SIM-DI-OAV-01:OVER:NDArrayPort -# % gui, OAV.over, readback, Input, S03SIM-DI-OAV-01:OVER:NDArrayPort_RBV - -# % gui, OAV.over, groupHeading, Callback -# % gui, OAV.over, enum, Callbacks, S03SIM-DI-OAV-01:OVER:EnableCallbacks -# % gui, OAV.over, statusbits, Callbacks, S03SIM-DI-OAV-01:OVER:EnableCallbacks_RBV -# % gui, OAV.over, demand, Min Callback Time, S03SIM-DI-OAV-01:OVER:MinCallbackTime -# % gui, OAV.over, readback, Min Callback Time, S03SIM-DI-OAV-01:OVER:MinCallbackTime_RBV -# % gui, OAV.over, enum, Block Callbacks, S03SIM-DI-OAV-01:OVER:BlockingCallbacks -# % gui, OAV.over, statusbits, Block Callbacks, S03SIM-DI-OAV-01:OVER:BlockingCallbacks_RBV - -# % gui, OAV.over, groupHeading, Counters -# % gui, OAV.over, demand, Array Counter, S03SIM-DI-OAV-01:OVER:ArrayCounter -# % gui, OAV.over, readback, Array Counter, S03SIM-DI-OAV-01:OVER:ArrayCounter_RBV -# % gui, OAV.over, readback, Array Rate (fps), S03SIM-DI-OAV-01:OVER:ArrayRate_RBV -# % gui, OAV.over, readback, Queue Use, S03SIM-DI-OAV-01:OVER:QueueUse -# % gui, OAV.over, readback, Queue Size, S03SIM-DI-OAV-01:OVER:QueueSize -# % gui, OAV.over, demand, Dropped Arrays, S03SIM-DI-OAV-01:OVER:DroppedArrays -# % gui, OAV.over, readback, Dropped Arrays, S03SIM-DI-OAV-01:OVER:DroppedArrays_RBV - -# % gui, OAV.over, groupHeading, Array Settings -# % gui, OAV.over, readback, Num Dimensions, S03SIM-DI-OAV-01:OVER:NDimensions_RBV -# % gui, OAV.over, readback, Dim 0 Size, S03SIM-DI-OAV-01:OVER:ArraySize0_RBV -# % gui, OAV.over, readback, Dim 1 Size, S03SIM-DI-OAV-01:OVER:ArraySize1_RBV -# % gui, OAV.over, readback, Dim 2 Size, S03SIM-DI-OAV-01:OVER:ArraySize2_RBV -# % gui, OAV.over, readback, Input Data Type, S03SIM-DI-OAV-01:OVER:DataType_RBV -# % gui, OAV.over, readback, Colour Mode, S03SIM-DI-OAV-01:OVER:ColorMode_RBV -# % gui, OAV.over, readback, Bayer Pattern, S03SIM-DI-OAV-01:OVER:BayerPattern_RBV -# % gui, OAV.over, readback, Unique id, S03SIM-DI-OAV-01:OVER:UniqueId_RBV -# % gui, OAV.over, readback, Timestamp, S03SIM-DI-OAV-01:OVER:TimeStamp_RBV - -# Output -# % gui, OAV.over, groupHeading, Output -# % gui, OAV.over, demand, Name, S03SIM-DI-OAV-01:OVER:Name -# % gui, OAV.over, enum, Out data type, S03SIM-DI-OAV-01:OVER:DataTypeOut -# % gui, OAV.over, readback, Out data type, S03SIM-DI-OAV-01:OVER:DataTypeOut_RBV -# % gui, OAV.over, demand, Attributes file, S03SIM-DI-OAV-01:OVER:NDAttributesFile - -# Overlay 1 -# % gui, OAV.over, groupHeading, Overlay 1 Settings -# % gui, OAV.over, demand, Overlay 1, S03SIM-DI-OAV-01:OVER:1:Name -# % gui, OAV.over, enum, Use 1, S03SIM-DI-OAV-01:OVER:1:Use -# % gui, OAV.over, readback, Use 1, S03SIM-DI-OAV-01:OVER:1:Use_RBV -# % gui, OAV.over, enum, Shape 1, S03SIM-DI-OAV-01:OVER:1:Shape -# % gui, OAV.over, readback, Shape 1, S03SIM-DI-OAV-01:OVER:1:Shape_RBV -# % gui, OAV.over, enum, Mode 1, S03SIM-DI-OAV-01:OVER:1:DrawMode -# % gui, OAV.over, readback, Mode 1, S03SIM-DI-OAV-01:OVER:1:DrawMode_RBV -# % gui, OAV.over, demand, Red 1, S03SIM-DI-OAV-01:OVER:1:Red -# % gui, OAV.over, readback, Red 1, S03SIM-DI-OAV-01:OVER:1:Red_RBV -# % gui, OAV.over, demand, Green 1, S03SIM-DI-OAV-01:OVER:1:Green -# % gui, OAV.over, readback, Green 1, S03SIM-DI-OAV-01:OVER:1:Green_RBV -# % gui, OAV.over, demand, Blue 1, S03SIM-DI-OAV-01:OVER:1:Blue -# % gui, OAV.over, readback, Blue 1, S03SIM-DI-OAV-01:OVER:1:Blue_RBV -# % gui, OAV.over, demand, X Position 1, S03SIM-DI-OAV-01:OVER:1:PositionX -# % gui, OAV.over, readback, X Position 1, S03SIM-DI-OAV-01:OVER:1:PositionX_RBV -# % gui, OAV.over, demand, X Position Link 1, S03SIM-DI-OAV-01:OVER:1:PositionXLink.DOL -# % gui, OAV.over, demand, X Center 1, S03SIM-DI-OAV-01:OVER:1:CenterX -# % gui, OAV.over, readback, X Center 1, S03SIM-DI-OAV-01:OVER:1:CenterX_RBV -# % gui, OAV.over, demand, X Center Link 1, S03SIM-DI-OAV-01:OVER:1:CenterXLink.DOL -# % gui, OAV.over, demand, X Size 1, S03SIM-DI-OAV-01:OVER:1:SizeX -# % gui, OAV.over, readback, X Size 1, S03SIM-DI-OAV-01:OVER:1:SizeX_RBV -# % gui, OAV.over, demand, X Size Link 1, S03SIM-DI-OAV-01:OVER:1:SizeXLink.DOL -# % gui, OAV.over, demand, Y Position 1, S03SIM-DI-OAV-01:OVER:1:PositionY -# % gui, OAV.over, readback, Y Position 1, S03SIM-DI-OAV-01:OVER:1:PositionY_RBV -# % gui, OAV.over, demand, Y Position Link 1, S03SIM-DI-OAV-01:OVER:1:PositionYLink.DOL -# % gui, OAV.over, demand, Y Center 1, S03SIM-DI-OAV-01:OVER:1:CenterY -# % gui, OAV.over, readback, Y Center 1, S03SIM-DI-OAV-01:OVER:1:CenterY_RBV -# % gui, OAV.over, demand, Y Center Link 1, S03SIM-DI-OAV-01:OVER:1:CenterYLink.DOL -# % gui, OAV.over, demand, Y Size 1, S03SIM-DI-OAV-01:OVER:1:SizeY -# % gui, OAV.over, readback, Y Size 1, S03SIM-DI-OAV-01:OVER:1:SizeY_RBV -# % gui, OAV.over, demand, Y Size Link 1, S03SIM-DI-OAV-01:OVER:1:SizeYLink.DOL -# Overlay 2 -# % gui, OAV.over, groupHeading, Overlay 2 Settings -# % gui, OAV.over, demand, Overlay 2, S03SIM-DI-OAV-01:OVER:2:Name -# % gui, OAV.over, enum, Use 2, S03SIM-DI-OAV-01:OVER:2:Use -# % gui, OAV.over, readback, Use 2, S03SIM-DI-OAV-01:OVER:2:Use_RBV -# % gui, OAV.over, enum, Shape 2, S03SIM-DI-OAV-01:OVER:2:Shape -# % gui, OAV.over, readback, Shape 2, S03SIM-DI-OAV-01:OVER:2:Shape_RBV -# % gui, OAV.over, enum, Mode 2, S03SIM-DI-OAV-01:OVER:2:DrawMode -# % gui, OAV.over, readback, Mode 2, S03SIM-DI-OAV-01:OVER:2:DrawMode_RBV -# % gui, OAV.over, demand, Red 2, S03SIM-DI-OAV-01:OVER:2:Red -# % gui, OAV.over, readback, Red 2, S03SIM-DI-OAV-01:OVER:2:Red_RBV -# % gui, OAV.over, demand, Green 2, S03SIM-DI-OAV-01:OVER:2:Green -# % gui, OAV.over, readback, Green 2, S03SIM-DI-OAV-01:OVER:2:Green_RBV -# % gui, OAV.over, demand, Blue 2, S03SIM-DI-OAV-01:OVER:2:Blue -# % gui, OAV.over, readback, Blue 2, S03SIM-DI-OAV-01:OVER:2:Blue_RBV -# % gui, OAV.over, demand, X Position 2, S03SIM-DI-OAV-01:OVER:2:PositionX -# % gui, OAV.over, readback, X Position 2, S03SIM-DI-OAV-01:OVER:2:PositionX_RBV -# % gui, OAV.over, demand, X Position Link 2, S03SIM-DI-OAV-01:OVER:2:PositionXLink.DOL -# % gui, OAV.over, demand, X Center 2, S03SIM-DI-OAV-01:OVER:2:CenterX -# % gui, OAV.over, readback, X Center 2, S03SIM-DI-OAV-01:OVER:2:CenterX_RBV -# % gui, OAV.over, demand, X Center Link 2, S03SIM-DI-OAV-01:OVER:2:CenterXLink.DOL -# % gui, OAV.over, demand, X Size 2, S03SIM-DI-OAV-01:OVER:2:SizeX -# % gui, OAV.over, readback, X Size 2, S03SIM-DI-OAV-01:OVER:2:SizeX_RBV -# % gui, OAV.over, demand, X Size Link 2, S03SIM-DI-OAV-01:OVER:2:SizeXLink.DOL -# % gui, OAV.over, demand, Y Position 2, S03SIM-DI-OAV-01:OVER:2:PositionY -# % gui, OAV.over, readback, Y Position 2, S03SIM-DI-OAV-01:OVER:2:PositionY_RBV -# % gui, OAV.over, demand, Y Position Link 2, S03SIM-DI-OAV-01:OVER:2:PositionYLink.DOL -# % gui, OAV.over, demand, Y Center 2, S03SIM-DI-OAV-01:OVER:2:CenterY -# % gui, OAV.over, readback, Y Center 2, S03SIM-DI-OAV-01:OVER:2:CenterY_RBV -# % gui, OAV.over, demand, Y Center Link 2, S03SIM-DI-OAV-01:OVER:2:CenterYLink.DOL -# % gui, OAV.over, demand, Y Size 2, S03SIM-DI-OAV-01:OVER:2:SizeY -# % gui, OAV.over, readback, Y Size 2, S03SIM-DI-OAV-01:OVER:2:SizeY_RBV -# % gui, OAV.over, demand, Y Size Link 2, S03SIM-DI-OAV-01:OVER:2:SizeYLink.DOL -# Overlay 3 -# % gui, OAV.over, groupHeading, Overlay 3 Settings -# % gui, OAV.over, demand, Overlay 3, S03SIM-DI-OAV-01:OVER:3:Name -# % gui, OAV.over, enum, Use 3, S03SIM-DI-OAV-01:OVER:3:Use -# % gui, OAV.over, readback, Use 3, S03SIM-DI-OAV-01:OVER:3:Use_RBV -# % gui, OAV.over, enum, Shape 3, S03SIM-DI-OAV-01:OVER:3:Shape -# % gui, OAV.over, readback, Shape 3, S03SIM-DI-OAV-01:OVER:3:Shape_RBV -# % gui, OAV.over, enum, Mode 3, S03SIM-DI-OAV-01:OVER:3:DrawMode -# % gui, OAV.over, readback, Mode 3, S03SIM-DI-OAV-01:OVER:3:DrawMode_RBV -# % gui, OAV.over, demand, Red 3, S03SIM-DI-OAV-01:OVER:3:Red -# % gui, OAV.over, readback, Red 3, S03SIM-DI-OAV-01:OVER:3:Red_RBV -# % gui, OAV.over, demand, Green 3, S03SIM-DI-OAV-01:OVER:3:Green -# % gui, OAV.over, readback, Green 3, S03SIM-DI-OAV-01:OVER:3:Green_RBV -# % gui, OAV.over, demand, Blue 3, S03SIM-DI-OAV-01:OVER:3:Blue -# % gui, OAV.over, readback, Blue 3, S03SIM-DI-OAV-01:OVER:3:Blue_RBV -# % gui, OAV.over, demand, X Position 3, S03SIM-DI-OAV-01:OVER:3:PositionX -# % gui, OAV.over, readback, X Position 3, S03SIM-DI-OAV-01:OVER:3:PositionX_RBV -# % gui, OAV.over, demand, X Position Link 3, S03SIM-DI-OAV-01:OVER:3:PositionXLink.DOL -# % gui, OAV.over, demand, X Center 3, S03SIM-DI-OAV-01:OVER:3:CenterX -# % gui, OAV.over, readback, X Center 3, S03SIM-DI-OAV-01:OVER:3:CenterX_RBV -# % gui, OAV.over, demand, X Center Link 3, S03SIM-DI-OAV-01:OVER:3:CenterXLink.DOL -# % gui, OAV.over, demand, X Size 3, S03SIM-DI-OAV-01:OVER:3:SizeX -# % gui, OAV.over, readback, X Size 3, S03SIM-DI-OAV-01:OVER:3:SizeX_RBV -# % gui, OAV.over, demand, X Size Link 3, S03SIM-DI-OAV-01:OVER:3:SizeXLink.DOL -# % gui, OAV.over, demand, Y Position 3, S03SIM-DI-OAV-01:OVER:3:PositionY -# % gui, OAV.over, readback, Y Position 3, S03SIM-DI-OAV-01:OVER:3:PositionY_RBV -# % gui, OAV.over, demand, Y Position Link 3, S03SIM-DI-OAV-01:OVER:3:PositionYLink.DOL -# % gui, OAV.over, demand, Y Center 3, S03SIM-DI-OAV-01:OVER:3:CenterY -# % gui, OAV.over, readback, Y Center 3, S03SIM-DI-OAV-01:OVER:3:CenterY_RBV -# % gui, OAV.over, demand, Y Center Link 3, S03SIM-DI-OAV-01:OVER:3:CenterYLink.DOL -# % gui, OAV.over, demand, Y Size 3, S03SIM-DI-OAV-01:OVER:3:SizeY -# % gui, OAV.over, readback, Y Size 3, S03SIM-DI-OAV-01:OVER:3:SizeY_RBV -# % gui, OAV.over, demand, Y Size Link 3, S03SIM-DI-OAV-01:OVER:3:SizeYLink.DOL -# Overlay 4 -# % gui, OAV.over, groupHeading, Overlay 4 Settings -# % gui, OAV.over, demand, Overlay 4, S03SIM-DI-OAV-01:OVER:4:Name -# % gui, OAV.over, enum, Use 4, S03SIM-DI-OAV-01:OVER:4:Use -# % gui, OAV.over, readback, Use 4, S03SIM-DI-OAV-01:OVER:4:Use_RBV -# % gui, OAV.over, enum, Shape 4, S03SIM-DI-OAV-01:OVER:4:Shape -# % gui, OAV.over, readback, Shape 4, S03SIM-DI-OAV-01:OVER:4:Shape_RBV -# % gui, OAV.over, enum, Mode 4, S03SIM-DI-OAV-01:OVER:4:DrawMode -# % gui, OAV.over, readback, Mode 4, S03SIM-DI-OAV-01:OVER:4:DrawMode_RBV -# % gui, OAV.over, demand, Red 4, S03SIM-DI-OAV-01:OVER:4:Red -# % gui, OAV.over, readback, Red 4, S03SIM-DI-OAV-01:OVER:4:Red_RBV -# % gui, OAV.over, demand, Green 4, S03SIM-DI-OAV-01:OVER:4:Green -# % gui, OAV.over, readback, Green 4, S03SIM-DI-OAV-01:OVER:4:Green_RBV -# % gui, OAV.over, demand, Blue 4, S03SIM-DI-OAV-01:OVER:4:Blue -# % gui, OAV.over, readback, Blue 4, S03SIM-DI-OAV-01:OVER:4:Blue_RBV -# % gui, OAV.over, demand, X Position 4, S03SIM-DI-OAV-01:OVER:4:PositionX -# % gui, OAV.over, readback, X Position 4, S03SIM-DI-OAV-01:OVER:4:PositionX_RBV -# % gui, OAV.over, demand, X Position Link 4, S03SIM-DI-OAV-01:OVER:4:PositionXLink.DOL -# % gui, OAV.over, demand, X Center 4, S03SIM-DI-OAV-01:OVER:4:CenterX -# % gui, OAV.over, readback, X Center 4, S03SIM-DI-OAV-01:OVER:4:CenterX_RBV -# % gui, OAV.over, demand, X Center Link 4, S03SIM-DI-OAV-01:OVER:4:CenterXLink.DOL -# % gui, OAV.over, demand, X Size 4, S03SIM-DI-OAV-01:OVER:4:SizeX -# % gui, OAV.over, readback, X Size 4, S03SIM-DI-OAV-01:OVER:4:SizeX_RBV -# % gui, OAV.over, demand, X Size Link 4, S03SIM-DI-OAV-01:OVER:4:SizeXLink.DOL -# % gui, OAV.over, demand, Y Position 4, S03SIM-DI-OAV-01:OVER:4:PositionY -# % gui, OAV.over, readback, Y Position 4, S03SIM-DI-OAV-01:OVER:4:PositionY_RBV -# % gui, OAV.over, demand, Y Position Link 4, S03SIM-DI-OAV-01:OVER:4:PositionYLink.DOL -# % gui, OAV.over, demand, Y Center 4, S03SIM-DI-OAV-01:OVER:4:CenterY -# % gui, OAV.over, readback, Y Center 4, S03SIM-DI-OAV-01:OVER:4:CenterY_RBV -# % gui, OAV.over, demand, Y Center Link 4, S03SIM-DI-OAV-01:OVER:4:CenterYLink.DOL -# % gui, OAV.over, demand, Y Size 4, S03SIM-DI-OAV-01:OVER:4:SizeY -# % gui, OAV.over, readback, Y Size 4, S03SIM-DI-OAV-01:OVER:4:SizeY_RBV -# % gui, OAV.over, demand, Y Size Link 4, S03SIM-DI-OAV-01:OVER:4:SizeYLink.DOL -# Overlay 5 -# % gui, OAV.over, groupHeading, Overlay 5 Settings -# % gui, OAV.over, demand, Overlay 5, S03SIM-DI-OAV-01:OVER:5:Name -# % gui, OAV.over, enum, Use 5, S03SIM-DI-OAV-01:OVER:5:Use -# % gui, OAV.over, readback, Use 5, S03SIM-DI-OAV-01:OVER:5:Use_RBV -# % gui, OAV.over, enum, Shape 5, S03SIM-DI-OAV-01:OVER:5:Shape -# % gui, OAV.over, readback, Shape 5, S03SIM-DI-OAV-01:OVER:5:Shape_RBV -# % gui, OAV.over, enum, Mode 5, S03SIM-DI-OAV-01:OVER:5:DrawMode -# % gui, OAV.over, readback, Mode 5, S03SIM-DI-OAV-01:OVER:5:DrawMode_RBV -# % gui, OAV.over, demand, Red 5, S03SIM-DI-OAV-01:OVER:5:Red -# % gui, OAV.over, readback, Red 5, S03SIM-DI-OAV-01:OVER:5:Red_RBV -# % gui, OAV.over, demand, Green 5, S03SIM-DI-OAV-01:OVER:5:Green -# % gui, OAV.over, readback, Green 5, S03SIM-DI-OAV-01:OVER:5:Green_RBV -# % gui, OAV.over, demand, Blue 5, S03SIM-DI-OAV-01:OVER:5:Blue -# % gui, OAV.over, readback, Blue 5, S03SIM-DI-OAV-01:OVER:5:Blue_RBV -# % gui, OAV.over, demand, X Position 5, S03SIM-DI-OAV-01:OVER:5:PositionX -# % gui, OAV.over, readback, X Position 5, S03SIM-DI-OAV-01:OVER:5:PositionX_RBV -# % gui, OAV.over, demand, X Position Link 5, S03SIM-DI-OAV-01:OVER:5:PositionXLink.DOL -# % gui, OAV.over, demand, X Center 5, S03SIM-DI-OAV-01:OVER:5:CenterX -# % gui, OAV.over, readback, X Center 5, S03SIM-DI-OAV-01:OVER:5:CenterX_RBV -# % gui, OAV.over, demand, X Center Link 5, S03SIM-DI-OAV-01:OVER:5:CenterXLink.DOL -# % gui, OAV.over, demand, X Size 5, S03SIM-DI-OAV-01:OVER:5:SizeX -# % gui, OAV.over, readback, X Size 5, S03SIM-DI-OAV-01:OVER:5:SizeX_RBV -# % gui, OAV.over, demand, X Size Link 5, S03SIM-DI-OAV-01:OVER:5:SizeXLink.DOL -# % gui, OAV.over, demand, Y Position 5, S03SIM-DI-OAV-01:OVER:5:PositionY -# % gui, OAV.over, readback, Y Position 5, S03SIM-DI-OAV-01:OVER:5:PositionY_RBV -# % gui, OAV.over, demand, Y Position Link 5, S03SIM-DI-OAV-01:OVER:5:PositionYLink.DOL -# % gui, OAV.over, demand, Y Center 5, S03SIM-DI-OAV-01:OVER:5:CenterY -# % gui, OAV.over, readback, Y Center 5, S03SIM-DI-OAV-01:OVER:5:CenterY_RBV -# % gui, OAV.over, demand, Y Center Link 5, S03SIM-DI-OAV-01:OVER:5:CenterYLink.DOL -# % gui, OAV.over, demand, Y Size 5, S03SIM-DI-OAV-01:OVER:5:SizeY -# % gui, OAV.over, readback, Y Size 5, S03SIM-DI-OAV-01:OVER:5:SizeY_RBV -# % gui, OAV.over, demand, Y Size Link 5, S03SIM-DI-OAV-01:OVER:5:SizeYLink.DOL -# Overlay 6 -# % gui, OAV.over, groupHeading, Overlay 6 Settings -# % gui, OAV.over, demand, Overlay 6, S03SIM-DI-OAV-01:OVER:6:Name -# % gui, OAV.over, enum, Use 6, S03SIM-DI-OAV-01:OVER:6:Use -# % gui, OAV.over, readback, Use 6, S03SIM-DI-OAV-01:OVER:6:Use_RBV -# % gui, OAV.over, enum, Shape 6, S03SIM-DI-OAV-01:OVER:6:Shape -# % gui, OAV.over, readback, Shape 6, S03SIM-DI-OAV-01:OVER:6:Shape_RBV -# % gui, OAV.over, enum, Mode 6, S03SIM-DI-OAV-01:OVER:6:DrawMode -# % gui, OAV.over, readback, Mode 6, S03SIM-DI-OAV-01:OVER:6:DrawMode_RBV -# % gui, OAV.over, demand, Red 6, S03SIM-DI-OAV-01:OVER:6:Red -# % gui, OAV.over, readback, Red 6, S03SIM-DI-OAV-01:OVER:6:Red_RBV -# % gui, OAV.over, demand, Green 6, S03SIM-DI-OAV-01:OVER:6:Green -# % gui, OAV.over, readback, Green 6, S03SIM-DI-OAV-01:OVER:6:Green_RBV -# % gui, OAV.over, demand, Blue 6, S03SIM-DI-OAV-01:OVER:6:Blue -# % gui, OAV.over, readback, Blue 6, S03SIM-DI-OAV-01:OVER:6:Blue_RBV -# % gui, OAV.over, demand, X Position 6, S03SIM-DI-OAV-01:OVER:6:PositionX -# % gui, OAV.over, readback, X Position 6, S03SIM-DI-OAV-01:OVER:6:PositionX_RBV -# % gui, OAV.over, demand, X Position Link 6, S03SIM-DI-OAV-01:OVER:6:PositionXLink.DOL -# % gui, OAV.over, demand, X Center 6, S03SIM-DI-OAV-01:OVER:6:CenterX -# % gui, OAV.over, readback, X Center 6, S03SIM-DI-OAV-01:OVER:6:CenterX_RBV -# % gui, OAV.over, demand, X Center Link 6, S03SIM-DI-OAV-01:OVER:6:CenterXLink.DOL -# % gui, OAV.over, demand, X Size 6, S03SIM-DI-OAV-01:OVER:6:SizeX -# % gui, OAV.over, readback, X Size 6, S03SIM-DI-OAV-01:OVER:6:SizeX_RBV -# % gui, OAV.over, demand, X Size Link 6, S03SIM-DI-OAV-01:OVER:6:SizeXLink.DOL -# % gui, OAV.over, demand, Y Position 6, S03SIM-DI-OAV-01:OVER:6:PositionY -# % gui, OAV.over, readback, Y Position 6, S03SIM-DI-OAV-01:OVER:6:PositionY_RBV -# % gui, OAV.over, demand, Y Position Link 6, S03SIM-DI-OAV-01:OVER:6:PositionYLink.DOL -# % gui, OAV.over, demand, Y Center 6, S03SIM-DI-OAV-01:OVER:6:CenterY -# % gui, OAV.over, readback, Y Center 6, S03SIM-DI-OAV-01:OVER:6:CenterY_RBV -# % gui, OAV.over, demand, Y Center Link 6, S03SIM-DI-OAV-01:OVER:6:CenterYLink.DOL -# % gui, OAV.over, demand, Y Size 6, S03SIM-DI-OAV-01:OVER:6:SizeY -# % gui, OAV.over, readback, Y Size 6, S03SIM-DI-OAV-01:OVER:6:SizeY_RBV -# % gui, OAV.over, demand, Y Size Link 6, S03SIM-DI-OAV-01:OVER:6:SizeYLink.DOL -# Overlay 7 -# % gui, OAV.over, groupHeading, Overlay 7 Settings -# % gui, OAV.over, demand, Overlay 7, S03SIM-DI-OAV-01:OVER:7:Name -# % gui, OAV.over, enum, Use 7, S03SIM-DI-OAV-01:OVER:7:Use -# % gui, OAV.over, readback, Use 7, S03SIM-DI-OAV-01:OVER:7:Use_RBV -# % gui, OAV.over, enum, Shape 7, S03SIM-DI-OAV-01:OVER:7:Shape -# % gui, OAV.over, readback, Shape 7, S03SIM-DI-OAV-01:OVER:7:Shape_RBV -# % gui, OAV.over, enum, Mode 7, S03SIM-DI-OAV-01:OVER:7:DrawMode -# % gui, OAV.over, readback, Mode 7, S03SIM-DI-OAV-01:OVER:7:DrawMode_RBV -# % gui, OAV.over, demand, Red 7, S03SIM-DI-OAV-01:OVER:7:Red -# % gui, OAV.over, readback, Red 7, S03SIM-DI-OAV-01:OVER:7:Red_RBV -# % gui, OAV.over, demand, Green 7, S03SIM-DI-OAV-01:OVER:7:Green -# % gui, OAV.over, readback, Green 7, S03SIM-DI-OAV-01:OVER:7:Green_RBV -# % gui, OAV.over, demand, Blue 7, S03SIM-DI-OAV-01:OVER:7:Blue -# % gui, OAV.over, readback, Blue 7, S03SIM-DI-OAV-01:OVER:7:Blue_RBV -# % gui, OAV.over, demand, X Position 7, S03SIM-DI-OAV-01:OVER:7:PositionX -# % gui, OAV.over, readback, X Position 7, S03SIM-DI-OAV-01:OVER:7:PositionX_RBV -# % gui, OAV.over, demand, X Position Link 7, S03SIM-DI-OAV-01:OVER:7:PositionXLink.DOL -# % gui, OAV.over, demand, X Center 7, S03SIM-DI-OAV-01:OVER:7:CenterX -# % gui, OAV.over, readback, X Center 7, S03SIM-DI-OAV-01:OVER:7:CenterX_RBV -# % gui, OAV.over, demand, X Center Link 7, S03SIM-DI-OAV-01:OVER:7:CenterXLink.DOL -# % gui, OAV.over, demand, X Size 7, S03SIM-DI-OAV-01:OVER:7:SizeX -# % gui, OAV.over, readback, X Size 7, S03SIM-DI-OAV-01:OVER:7:SizeX_RBV -# % gui, OAV.over, demand, X Size Link 7, S03SIM-DI-OAV-01:OVER:7:SizeXLink.DOL -# % gui, OAV.over, demand, Y Position 7, S03SIM-DI-OAV-01:OVER:7:PositionY -# % gui, OAV.over, readback, Y Position 7, S03SIM-DI-OAV-01:OVER:7:PositionY_RBV -# % gui, OAV.over, demand, Y Position Link 7, S03SIM-DI-OAV-01:OVER:7:PositionYLink.DOL -# % gui, OAV.over, demand, Y Center 7, S03SIM-DI-OAV-01:OVER:7:CenterY -# % gui, OAV.over, readback, Y Center 7, S03SIM-DI-OAV-01:OVER:7:CenterY_RBV -# % gui, OAV.over, demand, Y Center Link 7, S03SIM-DI-OAV-01:OVER:7:CenterYLink.DOL -# % gui, OAV.over, demand, Y Size 7, S03SIM-DI-OAV-01:OVER:7:SizeY -# % gui, OAV.over, readback, Y Size 7, S03SIM-DI-OAV-01:OVER:7:SizeY_RBV -# % gui, OAV.over, demand, Y Size Link 7, S03SIM-DI-OAV-01:OVER:7:SizeYLink.DOL -# Overlay 8 -# % gui, OAV.over, groupHeading, Overlay 8 Settings -# % gui, OAV.over, demand, Overlay 8, S03SIM-DI-OAV-01:OVER:8:Name -# % gui, OAV.over, enum, Use 8, S03SIM-DI-OAV-01:OVER:8:Use -# % gui, OAV.over, readback, Use 8, S03SIM-DI-OAV-01:OVER:8:Use_RBV -# % gui, OAV.over, enum, Shape 8, S03SIM-DI-OAV-01:OVER:8:Shape -# % gui, OAV.over, readback, Shape 8, S03SIM-DI-OAV-01:OVER:8:Shape_RBV -# % gui, OAV.over, enum, Mode 8, S03SIM-DI-OAV-01:OVER:8:DrawMode -# % gui, OAV.over, readback, Mode 8, S03SIM-DI-OAV-01:OVER:8:DrawMode_RBV -# % gui, OAV.over, demand, Red 8, S03SIM-DI-OAV-01:OVER:8:Red -# % gui, OAV.over, readback, Red 8, S03SIM-DI-OAV-01:OVER:8:Red_RBV -# % gui, OAV.over, demand, Green 8, S03SIM-DI-OAV-01:OVER:8:Green -# % gui, OAV.over, readback, Green 8, S03SIM-DI-OAV-01:OVER:8:Green_RBV -# % gui, OAV.over, demand, Blue 8, S03SIM-DI-OAV-01:OVER:8:Blue -# % gui, OAV.over, readback, Blue 8, S03SIM-DI-OAV-01:OVER:8:Blue_RBV -# % gui, OAV.over, demand, X Position 8, S03SIM-DI-OAV-01:OVER:8:PositionX -# % gui, OAV.over, readback, X Position 8, S03SIM-DI-OAV-01:OVER:8:PositionX_RBV -# % gui, OAV.over, demand, X Position Link 8, S03SIM-DI-OAV-01:OVER:8:PositionXLink.DOL -# % gui, OAV.over, demand, X Center 8, S03SIM-DI-OAV-01:OVER:8:CenterX -# % gui, OAV.over, readback, X Center 8, S03SIM-DI-OAV-01:OVER:8:CenterX_RBV -# % gui, OAV.over, demand, X Center Link 8, S03SIM-DI-OAV-01:OVER:8:CenterXLink.DOL -# % gui, OAV.over, demand, X Size 8, S03SIM-DI-OAV-01:OVER:8:SizeX -# % gui, OAV.over, readback, X Size 8, S03SIM-DI-OAV-01:OVER:8:SizeX_RBV -# % gui, OAV.over, demand, X Size Link 8, S03SIM-DI-OAV-01:OVER:8:SizeXLink.DOL -# % gui, OAV.over, demand, Y Position 8, S03SIM-DI-OAV-01:OVER:8:PositionY -# % gui, OAV.over, readback, Y Position 8, S03SIM-DI-OAV-01:OVER:8:PositionY_RBV -# % gui, OAV.over, demand, Y Position Link 8, S03SIM-DI-OAV-01:OVER:8:PositionYLink.DOL -# % gui, OAV.over, demand, Y Center 8, S03SIM-DI-OAV-01:OVER:8:CenterY -# % gui, OAV.over, readback, Y Center 8, S03SIM-DI-OAV-01:OVER:8:CenterY_RBV -# % gui, OAV.over, demand, Y Center Link 8, S03SIM-DI-OAV-01:OVER:8:CenterYLink.DOL -# % gui, OAV.over, demand, Y Size 8, S03SIM-DI-OAV-01:OVER:8:SizeY -# % gui, OAV.over, readback, Y Size 8, S03SIM-DI-OAV-01:OVER:8:SizeY_RBV -# % gui, OAV.over, demand, Y Size Link 8, S03SIM-DI-OAV-01:OVER:8:SizeYLink.DOL -# Memory -# % gui, OAV.over, groupHeading, Memory -# % gui, OAV.over, readback, Max memory, S03SIM-DI-OAV-01:OVER:PoolMaxMem -# % gui, OAV.over, readback, Max buffers, S03SIM-DI-OAV-01:OVER:PoolMaxBuffers -# % gui, OAV.over, readback, Used memory, S03SIM-DI-OAV-01:OVER:PoolUsedMem -# % gui, OAV.over, readback, Allocated buffers, S03SIM-DI-OAV-01:OVER:PoolAllocBuffers -# % gui, OAV.over, readback, Free buffers, S03SIM-DI-OAV-01:OVER:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:OVER:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:OVER:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:OVER:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:OVER:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:OVER:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:OVER:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:OVER:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:OVER:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:OVER:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:OVER:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:OVER:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:OVER:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:OVER:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:OVER:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:OVER:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:OVER:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:OVER:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:OVER:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:OVER:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:OVER:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:OVER:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:OVER:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.over,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:OVER:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:OVER:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:OVER:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:OVER:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:OVER:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:OVER:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:OVER:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:OVER:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:OVER:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:OVER:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.over,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:OVER:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:OVER:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:OVER:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:OVER:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:OVER:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:OVER:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:OVER:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:OVER:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:OVER:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:OVER:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:OVER:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:OVER:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:OVER:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:OVER:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:OVER:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:OVER:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:OVER:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:OVER:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.over,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:OVER:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:OVER:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:OVER:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:OVER:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:OVER:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:OVER:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:OVER:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:OVER:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.over,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:OVER:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.over,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:OVER:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-DI-OAV-01:OVER:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.over,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-DI-OAV-01:OVER:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.over,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:OVER:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:OVER:PoolFreeBuffers") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:OVER:PoolUsedBuffers") -} - -record(calc, "S03SIM-DI-OAV-01:OVER:PoolUsedBuffers") -{ - field(INPA, "S03SIM-DI-OAV-01:OVER:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:OVER:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-DI-OAV-01:OVER:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:OVER:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:OVER:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.over,0,1)NDARRAY_PORT") - field(VAL, "OAV.proc") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:OVER:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:OVER:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:OVER:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:OVER:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.over,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:OVER:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.over,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:OVER:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:OVER:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-DI-OAV-01:OVER:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-DI-OAV-01:OVER:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:OVER:MinCallbackTime PP") -} - -record(calc, "S03SIM-DI-OAV-01:OVER:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:OVER:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-DI-OAV-01:OVER:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.over,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:OVER:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.over,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:OVER:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.over,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:OVER:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:OVER:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:OVER:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-DI-OAV-01:OVER:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:OVER:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:OVER:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:OVER:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:OVER:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:OVER:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:OVER:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:OVER:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:OVER:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:OVER:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:OVER:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:OVER:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:OVER:QueueUse.HIHI") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:OVER:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:OVER:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:OVER:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:OVER:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:OVER:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.over,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-DI-OAV-01:OVER:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.over,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:OVER:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:OVER:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:OVER:SortSize") - field(OUT, "S03SIM-DI-OAV-01:OVER:SortFree.LOW") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:OVER:AsynIO") -{ - field(PORT, "OAV.over") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -# These are the array dimensions in X, Y order. Used for setting HOPR on sliders -record(longin, "S03SIM-DI-OAV-01:OVER:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)MAX_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)MAX_SIZE_Y") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlay.template -# Database for NDPluginOverlay asyn driver and standard asyn device support -# Mark Rivers -# March 25, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, FSCN1.over, edmtab, NDOverlay.edl, P=S03SIM-EA-FSCN-01,R=:OVER: - -# This associates a BOY screen with the template -# % gui, FSCN1.over, boydetail,ADApp_opi/dls/over_detail.opi, P=S03SIM-EA-FSCN-01, R=:OVER:, DESC=Overlay -# % gui, FSCN1.over, boyembed, ADApp_opi/dls/over_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:OVER:, DESC=Overlay -# % gui, FSCN1.over, boyembed, ADApp_opi/dls/over_embed.opi, P=S03SIM-EA-FSCN-01, R=:OVER:, DESC=Overlay - - -# % gui, FSCN1.over, groupHeading, Info -# % gui, FSCN1.over, readback, Port name, S03SIM-EA-FSCN-01:OVER:PortName_RBV -# % gui, FSCN1.over, readback, Plugin type, S03SIM-EA-FSCN-01:OVER:PluginType_RBV -# Input -# % gui, FSCN1.over, demandString, Input, S03SIM-EA-FSCN-01:OVER:NDArrayPort -# % gui, FSCN1.over, readback, Input, S03SIM-EA-FSCN-01:OVER:NDArrayPort_RBV - -# % gui, FSCN1.over, groupHeading, Callback -# % gui, FSCN1.over, enum, Callbacks, S03SIM-EA-FSCN-01:OVER:EnableCallbacks -# % gui, FSCN1.over, statusbits, Callbacks, S03SIM-EA-FSCN-01:OVER:EnableCallbacks_RBV -# % gui, FSCN1.over, demand, Min Callback Time, S03SIM-EA-FSCN-01:OVER:MinCallbackTime -# % gui, FSCN1.over, readback, Min Callback Time, S03SIM-EA-FSCN-01:OVER:MinCallbackTime_RBV -# % gui, FSCN1.over, enum, Block Callbacks, S03SIM-EA-FSCN-01:OVER:BlockingCallbacks -# % gui, FSCN1.over, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:OVER:BlockingCallbacks_RBV - -# % gui, FSCN1.over, groupHeading, Counters -# % gui, FSCN1.over, demand, Array Counter, S03SIM-EA-FSCN-01:OVER:ArrayCounter -# % gui, FSCN1.over, readback, Array Counter, S03SIM-EA-FSCN-01:OVER:ArrayCounter_RBV -# % gui, FSCN1.over, readback, Array Rate (fps), S03SIM-EA-FSCN-01:OVER:ArrayRate_RBV -# % gui, FSCN1.over, readback, Queue Use, S03SIM-EA-FSCN-01:OVER:QueueUse -# % gui, FSCN1.over, readback, Queue Size, S03SIM-EA-FSCN-01:OVER:QueueSize -# % gui, FSCN1.over, demand, Dropped Arrays, S03SIM-EA-FSCN-01:OVER:DroppedArrays -# % gui, FSCN1.over, readback, Dropped Arrays, S03SIM-EA-FSCN-01:OVER:DroppedArrays_RBV - -# % gui, FSCN1.over, groupHeading, Array Settings -# % gui, FSCN1.over, readback, Num Dimensions, S03SIM-EA-FSCN-01:OVER:NDimensions_RBV -# % gui, FSCN1.over, readback, Dim 0 Size, S03SIM-EA-FSCN-01:OVER:ArraySize0_RBV -# % gui, FSCN1.over, readback, Dim 1 Size, S03SIM-EA-FSCN-01:OVER:ArraySize1_RBV -# % gui, FSCN1.over, readback, Dim 2 Size, S03SIM-EA-FSCN-01:OVER:ArraySize2_RBV -# % gui, FSCN1.over, readback, Input Data Type, S03SIM-EA-FSCN-01:OVER:DataType_RBV -# % gui, FSCN1.over, readback, Colour Mode, S03SIM-EA-FSCN-01:OVER:ColorMode_RBV -# % gui, FSCN1.over, readback, Bayer Pattern, S03SIM-EA-FSCN-01:OVER:BayerPattern_RBV -# % gui, FSCN1.over, readback, Unique id, S03SIM-EA-FSCN-01:OVER:UniqueId_RBV -# % gui, FSCN1.over, readback, Timestamp, S03SIM-EA-FSCN-01:OVER:TimeStamp_RBV - -# Output -# % gui, FSCN1.over, groupHeading, Output -# % gui, FSCN1.over, demand, Name, S03SIM-EA-FSCN-01:OVER:Name -# % gui, FSCN1.over, enum, Out data type, S03SIM-EA-FSCN-01:OVER:DataTypeOut -# % gui, FSCN1.over, readback, Out data type, S03SIM-EA-FSCN-01:OVER:DataTypeOut_RBV -# % gui, FSCN1.over, demand, Attributes file, S03SIM-EA-FSCN-01:OVER:NDAttributesFile - -# Overlay 1 -# % gui, FSCN1.over, groupHeading, Overlay 1 Settings -# % gui, FSCN1.over, demand, Overlay 1, S03SIM-EA-FSCN-01:OVER:1:Name -# % gui, FSCN1.over, enum, Use 1, S03SIM-EA-FSCN-01:OVER:1:Use -# % gui, FSCN1.over, readback, Use 1, S03SIM-EA-FSCN-01:OVER:1:Use_RBV -# % gui, FSCN1.over, enum, Shape 1, S03SIM-EA-FSCN-01:OVER:1:Shape -# % gui, FSCN1.over, readback, Shape 1, S03SIM-EA-FSCN-01:OVER:1:Shape_RBV -# % gui, FSCN1.over, enum, Mode 1, S03SIM-EA-FSCN-01:OVER:1:DrawMode -# % gui, FSCN1.over, readback, Mode 1, S03SIM-EA-FSCN-01:OVER:1:DrawMode_RBV -# % gui, FSCN1.over, demand, Red 1, S03SIM-EA-FSCN-01:OVER:1:Red -# % gui, FSCN1.over, readback, Red 1, S03SIM-EA-FSCN-01:OVER:1:Red_RBV -# % gui, FSCN1.over, demand, Green 1, S03SIM-EA-FSCN-01:OVER:1:Green -# % gui, FSCN1.over, readback, Green 1, S03SIM-EA-FSCN-01:OVER:1:Green_RBV -# % gui, FSCN1.over, demand, Blue 1, S03SIM-EA-FSCN-01:OVER:1:Blue -# % gui, FSCN1.over, readback, Blue 1, S03SIM-EA-FSCN-01:OVER:1:Blue_RBV -# % gui, FSCN1.over, demand, X Position 1, S03SIM-EA-FSCN-01:OVER:1:PositionX -# % gui, FSCN1.over, readback, X Position 1, S03SIM-EA-FSCN-01:OVER:1:PositionX_RBV -# % gui, FSCN1.over, demand, X Position Link 1, S03SIM-EA-FSCN-01:OVER:1:PositionXLink.DOL -# % gui, FSCN1.over, demand, X Center 1, S03SIM-EA-FSCN-01:OVER:1:CenterX -# % gui, FSCN1.over, readback, X Center 1, S03SIM-EA-FSCN-01:OVER:1:CenterX_RBV -# % gui, FSCN1.over, demand, X Center Link 1, S03SIM-EA-FSCN-01:OVER:1:CenterXLink.DOL -# % gui, FSCN1.over, demand, X Size 1, S03SIM-EA-FSCN-01:OVER:1:SizeX -# % gui, FSCN1.over, readback, X Size 1, S03SIM-EA-FSCN-01:OVER:1:SizeX_RBV -# % gui, FSCN1.over, demand, X Size Link 1, S03SIM-EA-FSCN-01:OVER:1:SizeXLink.DOL -# % gui, FSCN1.over, demand, Y Position 1, S03SIM-EA-FSCN-01:OVER:1:PositionY -# % gui, FSCN1.over, readback, Y Position 1, S03SIM-EA-FSCN-01:OVER:1:PositionY_RBV -# % gui, FSCN1.over, demand, Y Position Link 1, S03SIM-EA-FSCN-01:OVER:1:PositionYLink.DOL -# % gui, FSCN1.over, demand, Y Center 1, S03SIM-EA-FSCN-01:OVER:1:CenterY -# % gui, FSCN1.over, readback, Y Center 1, S03SIM-EA-FSCN-01:OVER:1:CenterY_RBV -# % gui, FSCN1.over, demand, Y Center Link 1, S03SIM-EA-FSCN-01:OVER:1:CenterYLink.DOL -# % gui, FSCN1.over, demand, Y Size 1, S03SIM-EA-FSCN-01:OVER:1:SizeY -# % gui, FSCN1.over, readback, Y Size 1, S03SIM-EA-FSCN-01:OVER:1:SizeY_RBV -# % gui, FSCN1.over, demand, Y Size Link 1, S03SIM-EA-FSCN-01:OVER:1:SizeYLink.DOL -# Overlay 2 -# % gui, FSCN1.over, groupHeading, Overlay 2 Settings -# % gui, FSCN1.over, demand, Overlay 2, S03SIM-EA-FSCN-01:OVER:2:Name -# % gui, FSCN1.over, enum, Use 2, S03SIM-EA-FSCN-01:OVER:2:Use -# % gui, FSCN1.over, readback, Use 2, S03SIM-EA-FSCN-01:OVER:2:Use_RBV -# % gui, FSCN1.over, enum, Shape 2, S03SIM-EA-FSCN-01:OVER:2:Shape -# % gui, FSCN1.over, readback, Shape 2, S03SIM-EA-FSCN-01:OVER:2:Shape_RBV -# % gui, FSCN1.over, enum, Mode 2, S03SIM-EA-FSCN-01:OVER:2:DrawMode -# % gui, FSCN1.over, readback, Mode 2, S03SIM-EA-FSCN-01:OVER:2:DrawMode_RBV -# % gui, FSCN1.over, demand, Red 2, S03SIM-EA-FSCN-01:OVER:2:Red -# % gui, FSCN1.over, readback, Red 2, S03SIM-EA-FSCN-01:OVER:2:Red_RBV -# % gui, FSCN1.over, demand, Green 2, S03SIM-EA-FSCN-01:OVER:2:Green -# % gui, FSCN1.over, readback, Green 2, S03SIM-EA-FSCN-01:OVER:2:Green_RBV -# % gui, FSCN1.over, demand, Blue 2, S03SIM-EA-FSCN-01:OVER:2:Blue -# % gui, FSCN1.over, readback, Blue 2, S03SIM-EA-FSCN-01:OVER:2:Blue_RBV -# % gui, FSCN1.over, demand, X Position 2, S03SIM-EA-FSCN-01:OVER:2:PositionX -# % gui, FSCN1.over, readback, X Position 2, S03SIM-EA-FSCN-01:OVER:2:PositionX_RBV -# % gui, FSCN1.over, demand, X Position Link 2, S03SIM-EA-FSCN-01:OVER:2:PositionXLink.DOL -# % gui, FSCN1.over, demand, X Center 2, S03SIM-EA-FSCN-01:OVER:2:CenterX -# % gui, FSCN1.over, readback, X Center 2, S03SIM-EA-FSCN-01:OVER:2:CenterX_RBV -# % gui, FSCN1.over, demand, X Center Link 2, S03SIM-EA-FSCN-01:OVER:2:CenterXLink.DOL -# % gui, FSCN1.over, demand, X Size 2, S03SIM-EA-FSCN-01:OVER:2:SizeX -# % gui, FSCN1.over, readback, X Size 2, S03SIM-EA-FSCN-01:OVER:2:SizeX_RBV -# % gui, FSCN1.over, demand, X Size Link 2, S03SIM-EA-FSCN-01:OVER:2:SizeXLink.DOL -# % gui, FSCN1.over, demand, Y Position 2, S03SIM-EA-FSCN-01:OVER:2:PositionY -# % gui, FSCN1.over, readback, Y Position 2, S03SIM-EA-FSCN-01:OVER:2:PositionY_RBV -# % gui, FSCN1.over, demand, Y Position Link 2, S03SIM-EA-FSCN-01:OVER:2:PositionYLink.DOL -# % gui, FSCN1.over, demand, Y Center 2, S03SIM-EA-FSCN-01:OVER:2:CenterY -# % gui, FSCN1.over, readback, Y Center 2, S03SIM-EA-FSCN-01:OVER:2:CenterY_RBV -# % gui, FSCN1.over, demand, Y Center Link 2, S03SIM-EA-FSCN-01:OVER:2:CenterYLink.DOL -# % gui, FSCN1.over, demand, Y Size 2, S03SIM-EA-FSCN-01:OVER:2:SizeY -# % gui, FSCN1.over, readback, Y Size 2, S03SIM-EA-FSCN-01:OVER:2:SizeY_RBV -# % gui, FSCN1.over, demand, Y Size Link 2, S03SIM-EA-FSCN-01:OVER:2:SizeYLink.DOL -# Overlay 3 -# % gui, FSCN1.over, groupHeading, Overlay 3 Settings -# % gui, FSCN1.over, demand, Overlay 3, S03SIM-EA-FSCN-01:OVER:3:Name -# % gui, FSCN1.over, enum, Use 3, S03SIM-EA-FSCN-01:OVER:3:Use -# % gui, FSCN1.over, readback, Use 3, S03SIM-EA-FSCN-01:OVER:3:Use_RBV -# % gui, FSCN1.over, enum, Shape 3, S03SIM-EA-FSCN-01:OVER:3:Shape -# % gui, FSCN1.over, readback, Shape 3, S03SIM-EA-FSCN-01:OVER:3:Shape_RBV -# % gui, FSCN1.over, enum, Mode 3, S03SIM-EA-FSCN-01:OVER:3:DrawMode -# % gui, FSCN1.over, readback, Mode 3, S03SIM-EA-FSCN-01:OVER:3:DrawMode_RBV -# % gui, FSCN1.over, demand, Red 3, S03SIM-EA-FSCN-01:OVER:3:Red -# % gui, FSCN1.over, readback, Red 3, S03SIM-EA-FSCN-01:OVER:3:Red_RBV -# % gui, FSCN1.over, demand, Green 3, S03SIM-EA-FSCN-01:OVER:3:Green -# % gui, FSCN1.over, readback, Green 3, S03SIM-EA-FSCN-01:OVER:3:Green_RBV -# % gui, FSCN1.over, demand, Blue 3, S03SIM-EA-FSCN-01:OVER:3:Blue -# % gui, FSCN1.over, readback, Blue 3, S03SIM-EA-FSCN-01:OVER:3:Blue_RBV -# % gui, FSCN1.over, demand, X Position 3, S03SIM-EA-FSCN-01:OVER:3:PositionX -# % gui, FSCN1.over, readback, X Position 3, S03SIM-EA-FSCN-01:OVER:3:PositionX_RBV -# % gui, FSCN1.over, demand, X Position Link 3, S03SIM-EA-FSCN-01:OVER:3:PositionXLink.DOL -# % gui, FSCN1.over, demand, X Center 3, S03SIM-EA-FSCN-01:OVER:3:CenterX -# % gui, FSCN1.over, readback, X Center 3, S03SIM-EA-FSCN-01:OVER:3:CenterX_RBV -# % gui, FSCN1.over, demand, X Center Link 3, S03SIM-EA-FSCN-01:OVER:3:CenterXLink.DOL -# % gui, FSCN1.over, demand, X Size 3, S03SIM-EA-FSCN-01:OVER:3:SizeX -# % gui, FSCN1.over, readback, X Size 3, S03SIM-EA-FSCN-01:OVER:3:SizeX_RBV -# % gui, FSCN1.over, demand, X Size Link 3, S03SIM-EA-FSCN-01:OVER:3:SizeXLink.DOL -# % gui, FSCN1.over, demand, Y Position 3, S03SIM-EA-FSCN-01:OVER:3:PositionY -# % gui, FSCN1.over, readback, Y Position 3, S03SIM-EA-FSCN-01:OVER:3:PositionY_RBV -# % gui, FSCN1.over, demand, Y Position Link 3, S03SIM-EA-FSCN-01:OVER:3:PositionYLink.DOL -# % gui, FSCN1.over, demand, Y Center 3, S03SIM-EA-FSCN-01:OVER:3:CenterY -# % gui, FSCN1.over, readback, Y Center 3, S03SIM-EA-FSCN-01:OVER:3:CenterY_RBV -# % gui, FSCN1.over, demand, Y Center Link 3, S03SIM-EA-FSCN-01:OVER:3:CenterYLink.DOL -# % gui, FSCN1.over, demand, Y Size 3, S03SIM-EA-FSCN-01:OVER:3:SizeY -# % gui, FSCN1.over, readback, Y Size 3, S03SIM-EA-FSCN-01:OVER:3:SizeY_RBV -# % gui, FSCN1.over, demand, Y Size Link 3, S03SIM-EA-FSCN-01:OVER:3:SizeYLink.DOL -# Overlay 4 -# % gui, FSCN1.over, groupHeading, Overlay 4 Settings -# % gui, FSCN1.over, demand, Overlay 4, S03SIM-EA-FSCN-01:OVER:4:Name -# % gui, FSCN1.over, enum, Use 4, S03SIM-EA-FSCN-01:OVER:4:Use -# % gui, FSCN1.over, readback, Use 4, S03SIM-EA-FSCN-01:OVER:4:Use_RBV -# % gui, FSCN1.over, enum, Shape 4, S03SIM-EA-FSCN-01:OVER:4:Shape -# % gui, FSCN1.over, readback, Shape 4, S03SIM-EA-FSCN-01:OVER:4:Shape_RBV -# % gui, FSCN1.over, enum, Mode 4, S03SIM-EA-FSCN-01:OVER:4:DrawMode -# % gui, FSCN1.over, readback, Mode 4, S03SIM-EA-FSCN-01:OVER:4:DrawMode_RBV -# % gui, FSCN1.over, demand, Red 4, S03SIM-EA-FSCN-01:OVER:4:Red -# % gui, FSCN1.over, readback, Red 4, S03SIM-EA-FSCN-01:OVER:4:Red_RBV -# % gui, FSCN1.over, demand, Green 4, S03SIM-EA-FSCN-01:OVER:4:Green -# % gui, FSCN1.over, readback, Green 4, S03SIM-EA-FSCN-01:OVER:4:Green_RBV -# % gui, FSCN1.over, demand, Blue 4, S03SIM-EA-FSCN-01:OVER:4:Blue -# % gui, FSCN1.over, readback, Blue 4, S03SIM-EA-FSCN-01:OVER:4:Blue_RBV -# % gui, FSCN1.over, demand, X Position 4, S03SIM-EA-FSCN-01:OVER:4:PositionX -# % gui, FSCN1.over, readback, X Position 4, S03SIM-EA-FSCN-01:OVER:4:PositionX_RBV -# % gui, FSCN1.over, demand, X Position Link 4, S03SIM-EA-FSCN-01:OVER:4:PositionXLink.DOL -# % gui, FSCN1.over, demand, X Center 4, S03SIM-EA-FSCN-01:OVER:4:CenterX -# % gui, FSCN1.over, readback, X Center 4, S03SIM-EA-FSCN-01:OVER:4:CenterX_RBV -# % gui, FSCN1.over, demand, X Center Link 4, S03SIM-EA-FSCN-01:OVER:4:CenterXLink.DOL -# % gui, FSCN1.over, demand, X Size 4, S03SIM-EA-FSCN-01:OVER:4:SizeX -# % gui, FSCN1.over, readback, X Size 4, S03SIM-EA-FSCN-01:OVER:4:SizeX_RBV -# % gui, FSCN1.over, demand, X Size Link 4, S03SIM-EA-FSCN-01:OVER:4:SizeXLink.DOL -# % gui, FSCN1.over, demand, Y Position 4, S03SIM-EA-FSCN-01:OVER:4:PositionY -# % gui, FSCN1.over, readback, Y Position 4, S03SIM-EA-FSCN-01:OVER:4:PositionY_RBV -# % gui, FSCN1.over, demand, Y Position Link 4, S03SIM-EA-FSCN-01:OVER:4:PositionYLink.DOL -# % gui, FSCN1.over, demand, Y Center 4, S03SIM-EA-FSCN-01:OVER:4:CenterY -# % gui, FSCN1.over, readback, Y Center 4, S03SIM-EA-FSCN-01:OVER:4:CenterY_RBV -# % gui, FSCN1.over, demand, Y Center Link 4, S03SIM-EA-FSCN-01:OVER:4:CenterYLink.DOL -# % gui, FSCN1.over, demand, Y Size 4, S03SIM-EA-FSCN-01:OVER:4:SizeY -# % gui, FSCN1.over, readback, Y Size 4, S03SIM-EA-FSCN-01:OVER:4:SizeY_RBV -# % gui, FSCN1.over, demand, Y Size Link 4, S03SIM-EA-FSCN-01:OVER:4:SizeYLink.DOL -# Overlay 5 -# % gui, FSCN1.over, groupHeading, Overlay 5 Settings -# % gui, FSCN1.over, demand, Overlay 5, S03SIM-EA-FSCN-01:OVER:5:Name -# % gui, FSCN1.over, enum, Use 5, S03SIM-EA-FSCN-01:OVER:5:Use -# % gui, FSCN1.over, readback, Use 5, S03SIM-EA-FSCN-01:OVER:5:Use_RBV -# % gui, FSCN1.over, enum, Shape 5, S03SIM-EA-FSCN-01:OVER:5:Shape -# % gui, FSCN1.over, readback, Shape 5, S03SIM-EA-FSCN-01:OVER:5:Shape_RBV -# % gui, FSCN1.over, enum, Mode 5, S03SIM-EA-FSCN-01:OVER:5:DrawMode -# % gui, FSCN1.over, readback, Mode 5, S03SIM-EA-FSCN-01:OVER:5:DrawMode_RBV -# % gui, FSCN1.over, demand, Red 5, S03SIM-EA-FSCN-01:OVER:5:Red -# % gui, FSCN1.over, readback, Red 5, S03SIM-EA-FSCN-01:OVER:5:Red_RBV -# % gui, FSCN1.over, demand, Green 5, S03SIM-EA-FSCN-01:OVER:5:Green -# % gui, FSCN1.over, readback, Green 5, S03SIM-EA-FSCN-01:OVER:5:Green_RBV -# % gui, FSCN1.over, demand, Blue 5, S03SIM-EA-FSCN-01:OVER:5:Blue -# % gui, FSCN1.over, readback, Blue 5, S03SIM-EA-FSCN-01:OVER:5:Blue_RBV -# % gui, FSCN1.over, demand, X Position 5, S03SIM-EA-FSCN-01:OVER:5:PositionX -# % gui, FSCN1.over, readback, X Position 5, S03SIM-EA-FSCN-01:OVER:5:PositionX_RBV -# % gui, FSCN1.over, demand, X Position Link 5, S03SIM-EA-FSCN-01:OVER:5:PositionXLink.DOL -# % gui, FSCN1.over, demand, X Center 5, S03SIM-EA-FSCN-01:OVER:5:CenterX -# % gui, FSCN1.over, readback, X Center 5, S03SIM-EA-FSCN-01:OVER:5:CenterX_RBV -# % gui, FSCN1.over, demand, X Center Link 5, S03SIM-EA-FSCN-01:OVER:5:CenterXLink.DOL -# % gui, FSCN1.over, demand, X Size 5, S03SIM-EA-FSCN-01:OVER:5:SizeX -# % gui, FSCN1.over, readback, X Size 5, S03SIM-EA-FSCN-01:OVER:5:SizeX_RBV -# % gui, FSCN1.over, demand, X Size Link 5, S03SIM-EA-FSCN-01:OVER:5:SizeXLink.DOL -# % gui, FSCN1.over, demand, Y Position 5, S03SIM-EA-FSCN-01:OVER:5:PositionY -# % gui, FSCN1.over, readback, Y Position 5, S03SIM-EA-FSCN-01:OVER:5:PositionY_RBV -# % gui, FSCN1.over, demand, Y Position Link 5, S03SIM-EA-FSCN-01:OVER:5:PositionYLink.DOL -# % gui, FSCN1.over, demand, Y Center 5, S03SIM-EA-FSCN-01:OVER:5:CenterY -# % gui, FSCN1.over, readback, Y Center 5, S03SIM-EA-FSCN-01:OVER:5:CenterY_RBV -# % gui, FSCN1.over, demand, Y Center Link 5, S03SIM-EA-FSCN-01:OVER:5:CenterYLink.DOL -# % gui, FSCN1.over, demand, Y Size 5, S03SIM-EA-FSCN-01:OVER:5:SizeY -# % gui, FSCN1.over, readback, Y Size 5, S03SIM-EA-FSCN-01:OVER:5:SizeY_RBV -# % gui, FSCN1.over, demand, Y Size Link 5, S03SIM-EA-FSCN-01:OVER:5:SizeYLink.DOL -# Overlay 6 -# % gui, FSCN1.over, groupHeading, Overlay 6 Settings -# % gui, FSCN1.over, demand, Overlay 6, S03SIM-EA-FSCN-01:OVER:6:Name -# % gui, FSCN1.over, enum, Use 6, S03SIM-EA-FSCN-01:OVER:6:Use -# % gui, FSCN1.over, readback, Use 6, S03SIM-EA-FSCN-01:OVER:6:Use_RBV -# % gui, FSCN1.over, enum, Shape 6, S03SIM-EA-FSCN-01:OVER:6:Shape -# % gui, FSCN1.over, readback, Shape 6, S03SIM-EA-FSCN-01:OVER:6:Shape_RBV -# % gui, FSCN1.over, enum, Mode 6, S03SIM-EA-FSCN-01:OVER:6:DrawMode -# % gui, FSCN1.over, readback, Mode 6, S03SIM-EA-FSCN-01:OVER:6:DrawMode_RBV -# % gui, FSCN1.over, demand, Red 6, S03SIM-EA-FSCN-01:OVER:6:Red -# % gui, FSCN1.over, readback, Red 6, S03SIM-EA-FSCN-01:OVER:6:Red_RBV -# % gui, FSCN1.over, demand, Green 6, S03SIM-EA-FSCN-01:OVER:6:Green -# % gui, FSCN1.over, readback, Green 6, S03SIM-EA-FSCN-01:OVER:6:Green_RBV -# % gui, FSCN1.over, demand, Blue 6, S03SIM-EA-FSCN-01:OVER:6:Blue -# % gui, FSCN1.over, readback, Blue 6, S03SIM-EA-FSCN-01:OVER:6:Blue_RBV -# % gui, FSCN1.over, demand, X Position 6, S03SIM-EA-FSCN-01:OVER:6:PositionX -# % gui, FSCN1.over, readback, X Position 6, S03SIM-EA-FSCN-01:OVER:6:PositionX_RBV -# % gui, FSCN1.over, demand, X Position Link 6, S03SIM-EA-FSCN-01:OVER:6:PositionXLink.DOL -# % gui, FSCN1.over, demand, X Center 6, S03SIM-EA-FSCN-01:OVER:6:CenterX -# % gui, FSCN1.over, readback, X Center 6, S03SIM-EA-FSCN-01:OVER:6:CenterX_RBV -# % gui, FSCN1.over, demand, X Center Link 6, S03SIM-EA-FSCN-01:OVER:6:CenterXLink.DOL -# % gui, FSCN1.over, demand, X Size 6, S03SIM-EA-FSCN-01:OVER:6:SizeX -# % gui, FSCN1.over, readback, X Size 6, S03SIM-EA-FSCN-01:OVER:6:SizeX_RBV -# % gui, FSCN1.over, demand, X Size Link 6, S03SIM-EA-FSCN-01:OVER:6:SizeXLink.DOL -# % gui, FSCN1.over, demand, Y Position 6, S03SIM-EA-FSCN-01:OVER:6:PositionY -# % gui, FSCN1.over, readback, Y Position 6, S03SIM-EA-FSCN-01:OVER:6:PositionY_RBV -# % gui, FSCN1.over, demand, Y Position Link 6, S03SIM-EA-FSCN-01:OVER:6:PositionYLink.DOL -# % gui, FSCN1.over, demand, Y Center 6, S03SIM-EA-FSCN-01:OVER:6:CenterY -# % gui, FSCN1.over, readback, Y Center 6, S03SIM-EA-FSCN-01:OVER:6:CenterY_RBV -# % gui, FSCN1.over, demand, Y Center Link 6, S03SIM-EA-FSCN-01:OVER:6:CenterYLink.DOL -# % gui, FSCN1.over, demand, Y Size 6, S03SIM-EA-FSCN-01:OVER:6:SizeY -# % gui, FSCN1.over, readback, Y Size 6, S03SIM-EA-FSCN-01:OVER:6:SizeY_RBV -# % gui, FSCN1.over, demand, Y Size Link 6, S03SIM-EA-FSCN-01:OVER:6:SizeYLink.DOL -# Overlay 7 -# % gui, FSCN1.over, groupHeading, Overlay 7 Settings -# % gui, FSCN1.over, demand, Overlay 7, S03SIM-EA-FSCN-01:OVER:7:Name -# % gui, FSCN1.over, enum, Use 7, S03SIM-EA-FSCN-01:OVER:7:Use -# % gui, FSCN1.over, readback, Use 7, S03SIM-EA-FSCN-01:OVER:7:Use_RBV -# % gui, FSCN1.over, enum, Shape 7, S03SIM-EA-FSCN-01:OVER:7:Shape -# % gui, FSCN1.over, readback, Shape 7, S03SIM-EA-FSCN-01:OVER:7:Shape_RBV -# % gui, FSCN1.over, enum, Mode 7, S03SIM-EA-FSCN-01:OVER:7:DrawMode -# % gui, FSCN1.over, readback, Mode 7, S03SIM-EA-FSCN-01:OVER:7:DrawMode_RBV -# % gui, FSCN1.over, demand, Red 7, S03SIM-EA-FSCN-01:OVER:7:Red -# % gui, FSCN1.over, readback, Red 7, S03SIM-EA-FSCN-01:OVER:7:Red_RBV -# % gui, FSCN1.over, demand, Green 7, S03SIM-EA-FSCN-01:OVER:7:Green -# % gui, FSCN1.over, readback, Green 7, S03SIM-EA-FSCN-01:OVER:7:Green_RBV -# % gui, FSCN1.over, demand, Blue 7, S03SIM-EA-FSCN-01:OVER:7:Blue -# % gui, FSCN1.over, readback, Blue 7, S03SIM-EA-FSCN-01:OVER:7:Blue_RBV -# % gui, FSCN1.over, demand, X Position 7, S03SIM-EA-FSCN-01:OVER:7:PositionX -# % gui, FSCN1.over, readback, X Position 7, S03SIM-EA-FSCN-01:OVER:7:PositionX_RBV -# % gui, FSCN1.over, demand, X Position Link 7, S03SIM-EA-FSCN-01:OVER:7:PositionXLink.DOL -# % gui, FSCN1.over, demand, X Center 7, S03SIM-EA-FSCN-01:OVER:7:CenterX -# % gui, FSCN1.over, readback, X Center 7, S03SIM-EA-FSCN-01:OVER:7:CenterX_RBV -# % gui, FSCN1.over, demand, X Center Link 7, S03SIM-EA-FSCN-01:OVER:7:CenterXLink.DOL -# % gui, FSCN1.over, demand, X Size 7, S03SIM-EA-FSCN-01:OVER:7:SizeX -# % gui, FSCN1.over, readback, X Size 7, S03SIM-EA-FSCN-01:OVER:7:SizeX_RBV -# % gui, FSCN1.over, demand, X Size Link 7, S03SIM-EA-FSCN-01:OVER:7:SizeXLink.DOL -# % gui, FSCN1.over, demand, Y Position 7, S03SIM-EA-FSCN-01:OVER:7:PositionY -# % gui, FSCN1.over, readback, Y Position 7, S03SIM-EA-FSCN-01:OVER:7:PositionY_RBV -# % gui, FSCN1.over, demand, Y Position Link 7, S03SIM-EA-FSCN-01:OVER:7:PositionYLink.DOL -# % gui, FSCN1.over, demand, Y Center 7, S03SIM-EA-FSCN-01:OVER:7:CenterY -# % gui, FSCN1.over, readback, Y Center 7, S03SIM-EA-FSCN-01:OVER:7:CenterY_RBV -# % gui, FSCN1.over, demand, Y Center Link 7, S03SIM-EA-FSCN-01:OVER:7:CenterYLink.DOL -# % gui, FSCN1.over, demand, Y Size 7, S03SIM-EA-FSCN-01:OVER:7:SizeY -# % gui, FSCN1.over, readback, Y Size 7, S03SIM-EA-FSCN-01:OVER:7:SizeY_RBV -# % gui, FSCN1.over, demand, Y Size Link 7, S03SIM-EA-FSCN-01:OVER:7:SizeYLink.DOL -# Overlay 8 -# % gui, FSCN1.over, groupHeading, Overlay 8 Settings -# % gui, FSCN1.over, demand, Overlay 8, S03SIM-EA-FSCN-01:OVER:8:Name -# % gui, FSCN1.over, enum, Use 8, S03SIM-EA-FSCN-01:OVER:8:Use -# % gui, FSCN1.over, readback, Use 8, S03SIM-EA-FSCN-01:OVER:8:Use_RBV -# % gui, FSCN1.over, enum, Shape 8, S03SIM-EA-FSCN-01:OVER:8:Shape -# % gui, FSCN1.over, readback, Shape 8, S03SIM-EA-FSCN-01:OVER:8:Shape_RBV -# % gui, FSCN1.over, enum, Mode 8, S03SIM-EA-FSCN-01:OVER:8:DrawMode -# % gui, FSCN1.over, readback, Mode 8, S03SIM-EA-FSCN-01:OVER:8:DrawMode_RBV -# % gui, FSCN1.over, demand, Red 8, S03SIM-EA-FSCN-01:OVER:8:Red -# % gui, FSCN1.over, readback, Red 8, S03SIM-EA-FSCN-01:OVER:8:Red_RBV -# % gui, FSCN1.over, demand, Green 8, S03SIM-EA-FSCN-01:OVER:8:Green -# % gui, FSCN1.over, readback, Green 8, S03SIM-EA-FSCN-01:OVER:8:Green_RBV -# % gui, FSCN1.over, demand, Blue 8, S03SIM-EA-FSCN-01:OVER:8:Blue -# % gui, FSCN1.over, readback, Blue 8, S03SIM-EA-FSCN-01:OVER:8:Blue_RBV -# % gui, FSCN1.over, demand, X Position 8, S03SIM-EA-FSCN-01:OVER:8:PositionX -# % gui, FSCN1.over, readback, X Position 8, S03SIM-EA-FSCN-01:OVER:8:PositionX_RBV -# % gui, FSCN1.over, demand, X Position Link 8, S03SIM-EA-FSCN-01:OVER:8:PositionXLink.DOL -# % gui, FSCN1.over, demand, X Center 8, S03SIM-EA-FSCN-01:OVER:8:CenterX -# % gui, FSCN1.over, readback, X Center 8, S03SIM-EA-FSCN-01:OVER:8:CenterX_RBV -# % gui, FSCN1.over, demand, X Center Link 8, S03SIM-EA-FSCN-01:OVER:8:CenterXLink.DOL -# % gui, FSCN1.over, demand, X Size 8, S03SIM-EA-FSCN-01:OVER:8:SizeX -# % gui, FSCN1.over, readback, X Size 8, S03SIM-EA-FSCN-01:OVER:8:SizeX_RBV -# % gui, FSCN1.over, demand, X Size Link 8, S03SIM-EA-FSCN-01:OVER:8:SizeXLink.DOL -# % gui, FSCN1.over, demand, Y Position 8, S03SIM-EA-FSCN-01:OVER:8:PositionY -# % gui, FSCN1.over, readback, Y Position 8, S03SIM-EA-FSCN-01:OVER:8:PositionY_RBV -# % gui, FSCN1.over, demand, Y Position Link 8, S03SIM-EA-FSCN-01:OVER:8:PositionYLink.DOL -# % gui, FSCN1.over, demand, Y Center 8, S03SIM-EA-FSCN-01:OVER:8:CenterY -# % gui, FSCN1.over, readback, Y Center 8, S03SIM-EA-FSCN-01:OVER:8:CenterY_RBV -# % gui, FSCN1.over, demand, Y Center Link 8, S03SIM-EA-FSCN-01:OVER:8:CenterYLink.DOL -# % gui, FSCN1.over, demand, Y Size 8, S03SIM-EA-FSCN-01:OVER:8:SizeY -# % gui, FSCN1.over, readback, Y Size 8, S03SIM-EA-FSCN-01:OVER:8:SizeY_RBV -# % gui, FSCN1.over, demand, Y Size Link 8, S03SIM-EA-FSCN-01:OVER:8:SizeYLink.DOL -# Memory -# % gui, FSCN1.over, groupHeading, Memory -# % gui, FSCN1.over, readback, Max memory, S03SIM-EA-FSCN-01:OVER:PoolMaxMem -# % gui, FSCN1.over, readback, Max buffers, S03SIM-EA-FSCN-01:OVER:PoolMaxBuffers -# % gui, FSCN1.over, readback, Used memory, S03SIM-EA-FSCN-01:OVER:PoolUsedMem -# % gui, FSCN1.over, readback, Allocated buffers, S03SIM-EA-FSCN-01:OVER:PoolAllocBuffers -# % gui, FSCN1.over, readback, Free buffers, S03SIM-EA-FSCN-01:OVER:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:OVER:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:OVER:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:OVER:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:OVER:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:OVER:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:OVER:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:OVER:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:OVER:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:OVER:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-01:OVER:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:OVER:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-01:OVER:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:OVER:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-01:OVER:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-01:OVER:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:OVER:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:OVER:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:OVER:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-01:OVER:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:OVER:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:OVER:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN1.over,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN1.over,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:OVER:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-01:OVER:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-01:OVER:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:OVER:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.over,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-01:OVER:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:OVER:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:OVER:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:OVER:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:OVER:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:OVER:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:OVER:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:OVER:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.over,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:OVER:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.over,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-01:OVER:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.over,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-01:OVER:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.over,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-01:OVER:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-01:OVER:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:OVER:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-01:OVER:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:OVER:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-01:OVER:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.over,0,1)NDARRAY_PORT") - field(VAL, "FSCN1.proc") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:OVER:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:OVER:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:OVER:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:OVER:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.over,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:OVER:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.over,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:OVER:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:OVER:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-01:OVER:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-01:OVER:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:OVER:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-01:OVER:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:OVER:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-01:OVER:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.over,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:OVER:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.over,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-01:OVER:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.over,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:OVER:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:OVER:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:OVER:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-01:OVER:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:OVER:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:OVER:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:OVER:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:OVER:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:OVER:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:OVER:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:OVER:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:OVER:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:OVER:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:OVER:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:OVER:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:OVER:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:OVER:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:OVER:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.over,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-01:OVER:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.over,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:OVER:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:OVER:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:OVER:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:OVER:AsynIO") -{ - field(PORT, "FSCN1.over") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -# These are the array dimensions in X, Y order. Used for setting HOPR on sliders -record(longin, "S03SIM-EA-FSCN-01:OVER:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)MAX_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)MAX_SIZE_Y") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlay.template -# Database for NDPluginOverlay asyn driver and standard asyn device support -# Mark Rivers -# March 25, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address - -# This associates the template with an edm screen -# % gui, FSCN2.over, edmtab, NDOverlay.edl, P=S03SIM-EA-FSCN-02,R=:OVER: - -# This associates a BOY screen with the template -# % gui, FSCN2.over, boydetail,ADApp_opi/dls/over_detail.opi, P=S03SIM-EA-FSCN-02, R=:OVER:, DESC=Overlay -# % gui, FSCN2.over, boyembed, ADApp_opi/dls/over_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:OVER:, DESC=Overlay -# % gui, FSCN2.over, boyembed, ADApp_opi/dls/over_embed.opi, P=S03SIM-EA-FSCN-02, R=:OVER:, DESC=Overlay - - -# % gui, FSCN2.over, groupHeading, Info -# % gui, FSCN2.over, readback, Port name, S03SIM-EA-FSCN-02:OVER:PortName_RBV -# % gui, FSCN2.over, readback, Plugin type, S03SIM-EA-FSCN-02:OVER:PluginType_RBV -# Input -# % gui, FSCN2.over, demandString, Input, S03SIM-EA-FSCN-02:OVER:NDArrayPort -# % gui, FSCN2.over, readback, Input, S03SIM-EA-FSCN-02:OVER:NDArrayPort_RBV - -# % gui, FSCN2.over, groupHeading, Callback -# % gui, FSCN2.over, enum, Callbacks, S03SIM-EA-FSCN-02:OVER:EnableCallbacks -# % gui, FSCN2.over, statusbits, Callbacks, S03SIM-EA-FSCN-02:OVER:EnableCallbacks_RBV -# % gui, FSCN2.over, demand, Min Callback Time, S03SIM-EA-FSCN-02:OVER:MinCallbackTime -# % gui, FSCN2.over, readback, Min Callback Time, S03SIM-EA-FSCN-02:OVER:MinCallbackTime_RBV -# % gui, FSCN2.over, enum, Block Callbacks, S03SIM-EA-FSCN-02:OVER:BlockingCallbacks -# % gui, FSCN2.over, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:OVER:BlockingCallbacks_RBV - -# % gui, FSCN2.over, groupHeading, Counters -# % gui, FSCN2.over, demand, Array Counter, S03SIM-EA-FSCN-02:OVER:ArrayCounter -# % gui, FSCN2.over, readback, Array Counter, S03SIM-EA-FSCN-02:OVER:ArrayCounter_RBV -# % gui, FSCN2.over, readback, Array Rate (fps), S03SIM-EA-FSCN-02:OVER:ArrayRate_RBV -# % gui, FSCN2.over, readback, Queue Use, S03SIM-EA-FSCN-02:OVER:QueueUse -# % gui, FSCN2.over, readback, Queue Size, S03SIM-EA-FSCN-02:OVER:QueueSize -# % gui, FSCN2.over, demand, Dropped Arrays, S03SIM-EA-FSCN-02:OVER:DroppedArrays -# % gui, FSCN2.over, readback, Dropped Arrays, S03SIM-EA-FSCN-02:OVER:DroppedArrays_RBV - -# % gui, FSCN2.over, groupHeading, Array Settings -# % gui, FSCN2.over, readback, Num Dimensions, S03SIM-EA-FSCN-02:OVER:NDimensions_RBV -# % gui, FSCN2.over, readback, Dim 0 Size, S03SIM-EA-FSCN-02:OVER:ArraySize0_RBV -# % gui, FSCN2.over, readback, Dim 1 Size, S03SIM-EA-FSCN-02:OVER:ArraySize1_RBV -# % gui, FSCN2.over, readback, Dim 2 Size, S03SIM-EA-FSCN-02:OVER:ArraySize2_RBV -# % gui, FSCN2.over, readback, Input Data Type, S03SIM-EA-FSCN-02:OVER:DataType_RBV -# % gui, FSCN2.over, readback, Colour Mode, S03SIM-EA-FSCN-02:OVER:ColorMode_RBV -# % gui, FSCN2.over, readback, Bayer Pattern, S03SIM-EA-FSCN-02:OVER:BayerPattern_RBV -# % gui, FSCN2.over, readback, Unique id, S03SIM-EA-FSCN-02:OVER:UniqueId_RBV -# % gui, FSCN2.over, readback, Timestamp, S03SIM-EA-FSCN-02:OVER:TimeStamp_RBV - -# Output -# % gui, FSCN2.over, groupHeading, Output -# % gui, FSCN2.over, demand, Name, S03SIM-EA-FSCN-02:OVER:Name -# % gui, FSCN2.over, enum, Out data type, S03SIM-EA-FSCN-02:OVER:DataTypeOut -# % gui, FSCN2.over, readback, Out data type, S03SIM-EA-FSCN-02:OVER:DataTypeOut_RBV -# % gui, FSCN2.over, demand, Attributes file, S03SIM-EA-FSCN-02:OVER:NDAttributesFile - -# Overlay 1 -# % gui, FSCN2.over, groupHeading, Overlay 1 Settings -# % gui, FSCN2.over, demand, Overlay 1, S03SIM-EA-FSCN-02:OVER:1:Name -# % gui, FSCN2.over, enum, Use 1, S03SIM-EA-FSCN-02:OVER:1:Use -# % gui, FSCN2.over, readback, Use 1, S03SIM-EA-FSCN-02:OVER:1:Use_RBV -# % gui, FSCN2.over, enum, Shape 1, S03SIM-EA-FSCN-02:OVER:1:Shape -# % gui, FSCN2.over, readback, Shape 1, S03SIM-EA-FSCN-02:OVER:1:Shape_RBV -# % gui, FSCN2.over, enum, Mode 1, S03SIM-EA-FSCN-02:OVER:1:DrawMode -# % gui, FSCN2.over, readback, Mode 1, S03SIM-EA-FSCN-02:OVER:1:DrawMode_RBV -# % gui, FSCN2.over, demand, Red 1, S03SIM-EA-FSCN-02:OVER:1:Red -# % gui, FSCN2.over, readback, Red 1, S03SIM-EA-FSCN-02:OVER:1:Red_RBV -# % gui, FSCN2.over, demand, Green 1, S03SIM-EA-FSCN-02:OVER:1:Green -# % gui, FSCN2.over, readback, Green 1, S03SIM-EA-FSCN-02:OVER:1:Green_RBV -# % gui, FSCN2.over, demand, Blue 1, S03SIM-EA-FSCN-02:OVER:1:Blue -# % gui, FSCN2.over, readback, Blue 1, S03SIM-EA-FSCN-02:OVER:1:Blue_RBV -# % gui, FSCN2.over, demand, X Position 1, S03SIM-EA-FSCN-02:OVER:1:PositionX -# % gui, FSCN2.over, readback, X Position 1, S03SIM-EA-FSCN-02:OVER:1:PositionX_RBV -# % gui, FSCN2.over, demand, X Position Link 1, S03SIM-EA-FSCN-02:OVER:1:PositionXLink.DOL -# % gui, FSCN2.over, demand, X Center 1, S03SIM-EA-FSCN-02:OVER:1:CenterX -# % gui, FSCN2.over, readback, X Center 1, S03SIM-EA-FSCN-02:OVER:1:CenterX_RBV -# % gui, FSCN2.over, demand, X Center Link 1, S03SIM-EA-FSCN-02:OVER:1:CenterXLink.DOL -# % gui, FSCN2.over, demand, X Size 1, S03SIM-EA-FSCN-02:OVER:1:SizeX -# % gui, FSCN2.over, readback, X Size 1, S03SIM-EA-FSCN-02:OVER:1:SizeX_RBV -# % gui, FSCN2.over, demand, X Size Link 1, S03SIM-EA-FSCN-02:OVER:1:SizeXLink.DOL -# % gui, FSCN2.over, demand, Y Position 1, S03SIM-EA-FSCN-02:OVER:1:PositionY -# % gui, FSCN2.over, readback, Y Position 1, S03SIM-EA-FSCN-02:OVER:1:PositionY_RBV -# % gui, FSCN2.over, demand, Y Position Link 1, S03SIM-EA-FSCN-02:OVER:1:PositionYLink.DOL -# % gui, FSCN2.over, demand, Y Center 1, S03SIM-EA-FSCN-02:OVER:1:CenterY -# % gui, FSCN2.over, readback, Y Center 1, S03SIM-EA-FSCN-02:OVER:1:CenterY_RBV -# % gui, FSCN2.over, demand, Y Center Link 1, S03SIM-EA-FSCN-02:OVER:1:CenterYLink.DOL -# % gui, FSCN2.over, demand, Y Size 1, S03SIM-EA-FSCN-02:OVER:1:SizeY -# % gui, FSCN2.over, readback, Y Size 1, S03SIM-EA-FSCN-02:OVER:1:SizeY_RBV -# % gui, FSCN2.over, demand, Y Size Link 1, S03SIM-EA-FSCN-02:OVER:1:SizeYLink.DOL -# Overlay 2 -# % gui, FSCN2.over, groupHeading, Overlay 2 Settings -# % gui, FSCN2.over, demand, Overlay 2, S03SIM-EA-FSCN-02:OVER:2:Name -# % gui, FSCN2.over, enum, Use 2, S03SIM-EA-FSCN-02:OVER:2:Use -# % gui, FSCN2.over, readback, Use 2, S03SIM-EA-FSCN-02:OVER:2:Use_RBV -# % gui, FSCN2.over, enum, Shape 2, S03SIM-EA-FSCN-02:OVER:2:Shape -# % gui, FSCN2.over, readback, Shape 2, S03SIM-EA-FSCN-02:OVER:2:Shape_RBV -# % gui, FSCN2.over, enum, Mode 2, S03SIM-EA-FSCN-02:OVER:2:DrawMode -# % gui, FSCN2.over, readback, Mode 2, S03SIM-EA-FSCN-02:OVER:2:DrawMode_RBV -# % gui, FSCN2.over, demand, Red 2, S03SIM-EA-FSCN-02:OVER:2:Red -# % gui, FSCN2.over, readback, Red 2, S03SIM-EA-FSCN-02:OVER:2:Red_RBV -# % gui, FSCN2.over, demand, Green 2, S03SIM-EA-FSCN-02:OVER:2:Green -# % gui, FSCN2.over, readback, Green 2, S03SIM-EA-FSCN-02:OVER:2:Green_RBV -# % gui, FSCN2.over, demand, Blue 2, S03SIM-EA-FSCN-02:OVER:2:Blue -# % gui, FSCN2.over, readback, Blue 2, S03SIM-EA-FSCN-02:OVER:2:Blue_RBV -# % gui, FSCN2.over, demand, X Position 2, S03SIM-EA-FSCN-02:OVER:2:PositionX -# % gui, FSCN2.over, readback, X Position 2, S03SIM-EA-FSCN-02:OVER:2:PositionX_RBV -# % gui, FSCN2.over, demand, X Position Link 2, S03SIM-EA-FSCN-02:OVER:2:PositionXLink.DOL -# % gui, FSCN2.over, demand, X Center 2, S03SIM-EA-FSCN-02:OVER:2:CenterX -# % gui, FSCN2.over, readback, X Center 2, S03SIM-EA-FSCN-02:OVER:2:CenterX_RBV -# % gui, FSCN2.over, demand, X Center Link 2, S03SIM-EA-FSCN-02:OVER:2:CenterXLink.DOL -# % gui, FSCN2.over, demand, X Size 2, S03SIM-EA-FSCN-02:OVER:2:SizeX -# % gui, FSCN2.over, readback, X Size 2, S03SIM-EA-FSCN-02:OVER:2:SizeX_RBV -# % gui, FSCN2.over, demand, X Size Link 2, S03SIM-EA-FSCN-02:OVER:2:SizeXLink.DOL -# % gui, FSCN2.over, demand, Y Position 2, S03SIM-EA-FSCN-02:OVER:2:PositionY -# % gui, FSCN2.over, readback, Y Position 2, S03SIM-EA-FSCN-02:OVER:2:PositionY_RBV -# % gui, FSCN2.over, demand, Y Position Link 2, S03SIM-EA-FSCN-02:OVER:2:PositionYLink.DOL -# % gui, FSCN2.over, demand, Y Center 2, S03SIM-EA-FSCN-02:OVER:2:CenterY -# % gui, FSCN2.over, readback, Y Center 2, S03SIM-EA-FSCN-02:OVER:2:CenterY_RBV -# % gui, FSCN2.over, demand, Y Center Link 2, S03SIM-EA-FSCN-02:OVER:2:CenterYLink.DOL -# % gui, FSCN2.over, demand, Y Size 2, S03SIM-EA-FSCN-02:OVER:2:SizeY -# % gui, FSCN2.over, readback, Y Size 2, S03SIM-EA-FSCN-02:OVER:2:SizeY_RBV -# % gui, FSCN2.over, demand, Y Size Link 2, S03SIM-EA-FSCN-02:OVER:2:SizeYLink.DOL -# Overlay 3 -# % gui, FSCN2.over, groupHeading, Overlay 3 Settings -# % gui, FSCN2.over, demand, Overlay 3, S03SIM-EA-FSCN-02:OVER:3:Name -# % gui, FSCN2.over, enum, Use 3, S03SIM-EA-FSCN-02:OVER:3:Use -# % gui, FSCN2.over, readback, Use 3, S03SIM-EA-FSCN-02:OVER:3:Use_RBV -# % gui, FSCN2.over, enum, Shape 3, S03SIM-EA-FSCN-02:OVER:3:Shape -# % gui, FSCN2.over, readback, Shape 3, S03SIM-EA-FSCN-02:OVER:3:Shape_RBV -# % gui, FSCN2.over, enum, Mode 3, S03SIM-EA-FSCN-02:OVER:3:DrawMode -# % gui, FSCN2.over, readback, Mode 3, S03SIM-EA-FSCN-02:OVER:3:DrawMode_RBV -# % gui, FSCN2.over, demand, Red 3, S03SIM-EA-FSCN-02:OVER:3:Red -# % gui, FSCN2.over, readback, Red 3, S03SIM-EA-FSCN-02:OVER:3:Red_RBV -# % gui, FSCN2.over, demand, Green 3, S03SIM-EA-FSCN-02:OVER:3:Green -# % gui, FSCN2.over, readback, Green 3, S03SIM-EA-FSCN-02:OVER:3:Green_RBV -# % gui, FSCN2.over, demand, Blue 3, S03SIM-EA-FSCN-02:OVER:3:Blue -# % gui, FSCN2.over, readback, Blue 3, S03SIM-EA-FSCN-02:OVER:3:Blue_RBV -# % gui, FSCN2.over, demand, X Position 3, S03SIM-EA-FSCN-02:OVER:3:PositionX -# % gui, FSCN2.over, readback, X Position 3, S03SIM-EA-FSCN-02:OVER:3:PositionX_RBV -# % gui, FSCN2.over, demand, X Position Link 3, S03SIM-EA-FSCN-02:OVER:3:PositionXLink.DOL -# % gui, FSCN2.over, demand, X Center 3, S03SIM-EA-FSCN-02:OVER:3:CenterX -# % gui, FSCN2.over, readback, X Center 3, S03SIM-EA-FSCN-02:OVER:3:CenterX_RBV -# % gui, FSCN2.over, demand, X Center Link 3, S03SIM-EA-FSCN-02:OVER:3:CenterXLink.DOL -# % gui, FSCN2.over, demand, X Size 3, S03SIM-EA-FSCN-02:OVER:3:SizeX -# % gui, FSCN2.over, readback, X Size 3, S03SIM-EA-FSCN-02:OVER:3:SizeX_RBV -# % gui, FSCN2.over, demand, X Size Link 3, S03SIM-EA-FSCN-02:OVER:3:SizeXLink.DOL -# % gui, FSCN2.over, demand, Y Position 3, S03SIM-EA-FSCN-02:OVER:3:PositionY -# % gui, FSCN2.over, readback, Y Position 3, S03SIM-EA-FSCN-02:OVER:3:PositionY_RBV -# % gui, FSCN2.over, demand, Y Position Link 3, S03SIM-EA-FSCN-02:OVER:3:PositionYLink.DOL -# % gui, FSCN2.over, demand, Y Center 3, S03SIM-EA-FSCN-02:OVER:3:CenterY -# % gui, FSCN2.over, readback, Y Center 3, S03SIM-EA-FSCN-02:OVER:3:CenterY_RBV -# % gui, FSCN2.over, demand, Y Center Link 3, S03SIM-EA-FSCN-02:OVER:3:CenterYLink.DOL -# % gui, FSCN2.over, demand, Y Size 3, S03SIM-EA-FSCN-02:OVER:3:SizeY -# % gui, FSCN2.over, readback, Y Size 3, S03SIM-EA-FSCN-02:OVER:3:SizeY_RBV -# % gui, FSCN2.over, demand, Y Size Link 3, S03SIM-EA-FSCN-02:OVER:3:SizeYLink.DOL -# Overlay 4 -# % gui, FSCN2.over, groupHeading, Overlay 4 Settings -# % gui, FSCN2.over, demand, Overlay 4, S03SIM-EA-FSCN-02:OVER:4:Name -# % gui, FSCN2.over, enum, Use 4, S03SIM-EA-FSCN-02:OVER:4:Use -# % gui, FSCN2.over, readback, Use 4, S03SIM-EA-FSCN-02:OVER:4:Use_RBV -# % gui, FSCN2.over, enum, Shape 4, S03SIM-EA-FSCN-02:OVER:4:Shape -# % gui, FSCN2.over, readback, Shape 4, S03SIM-EA-FSCN-02:OVER:4:Shape_RBV -# % gui, FSCN2.over, enum, Mode 4, S03SIM-EA-FSCN-02:OVER:4:DrawMode -# % gui, FSCN2.over, readback, Mode 4, S03SIM-EA-FSCN-02:OVER:4:DrawMode_RBV -# % gui, FSCN2.over, demand, Red 4, S03SIM-EA-FSCN-02:OVER:4:Red -# % gui, FSCN2.over, readback, Red 4, S03SIM-EA-FSCN-02:OVER:4:Red_RBV -# % gui, FSCN2.over, demand, Green 4, S03SIM-EA-FSCN-02:OVER:4:Green -# % gui, FSCN2.over, readback, Green 4, S03SIM-EA-FSCN-02:OVER:4:Green_RBV -# % gui, FSCN2.over, demand, Blue 4, S03SIM-EA-FSCN-02:OVER:4:Blue -# % gui, FSCN2.over, readback, Blue 4, S03SIM-EA-FSCN-02:OVER:4:Blue_RBV -# % gui, FSCN2.over, demand, X Position 4, S03SIM-EA-FSCN-02:OVER:4:PositionX -# % gui, FSCN2.over, readback, X Position 4, S03SIM-EA-FSCN-02:OVER:4:PositionX_RBV -# % gui, FSCN2.over, demand, X Position Link 4, S03SIM-EA-FSCN-02:OVER:4:PositionXLink.DOL -# % gui, FSCN2.over, demand, X Center 4, S03SIM-EA-FSCN-02:OVER:4:CenterX -# % gui, FSCN2.over, readback, X Center 4, S03SIM-EA-FSCN-02:OVER:4:CenterX_RBV -# % gui, FSCN2.over, demand, X Center Link 4, S03SIM-EA-FSCN-02:OVER:4:CenterXLink.DOL -# % gui, FSCN2.over, demand, X Size 4, S03SIM-EA-FSCN-02:OVER:4:SizeX -# % gui, FSCN2.over, readback, X Size 4, S03SIM-EA-FSCN-02:OVER:4:SizeX_RBV -# % gui, FSCN2.over, demand, X Size Link 4, S03SIM-EA-FSCN-02:OVER:4:SizeXLink.DOL -# % gui, FSCN2.over, demand, Y Position 4, S03SIM-EA-FSCN-02:OVER:4:PositionY -# % gui, FSCN2.over, readback, Y Position 4, S03SIM-EA-FSCN-02:OVER:4:PositionY_RBV -# % gui, FSCN2.over, demand, Y Position Link 4, S03SIM-EA-FSCN-02:OVER:4:PositionYLink.DOL -# % gui, FSCN2.over, demand, Y Center 4, S03SIM-EA-FSCN-02:OVER:4:CenterY -# % gui, FSCN2.over, readback, Y Center 4, S03SIM-EA-FSCN-02:OVER:4:CenterY_RBV -# % gui, FSCN2.over, demand, Y Center Link 4, S03SIM-EA-FSCN-02:OVER:4:CenterYLink.DOL -# % gui, FSCN2.over, demand, Y Size 4, S03SIM-EA-FSCN-02:OVER:4:SizeY -# % gui, FSCN2.over, readback, Y Size 4, S03SIM-EA-FSCN-02:OVER:4:SizeY_RBV -# % gui, FSCN2.over, demand, Y Size Link 4, S03SIM-EA-FSCN-02:OVER:4:SizeYLink.DOL -# Overlay 5 -# % gui, FSCN2.over, groupHeading, Overlay 5 Settings -# % gui, FSCN2.over, demand, Overlay 5, S03SIM-EA-FSCN-02:OVER:5:Name -# % gui, FSCN2.over, enum, Use 5, S03SIM-EA-FSCN-02:OVER:5:Use -# % gui, FSCN2.over, readback, Use 5, S03SIM-EA-FSCN-02:OVER:5:Use_RBV -# % gui, FSCN2.over, enum, Shape 5, S03SIM-EA-FSCN-02:OVER:5:Shape -# % gui, FSCN2.over, readback, Shape 5, S03SIM-EA-FSCN-02:OVER:5:Shape_RBV -# % gui, FSCN2.over, enum, Mode 5, S03SIM-EA-FSCN-02:OVER:5:DrawMode -# % gui, FSCN2.over, readback, Mode 5, S03SIM-EA-FSCN-02:OVER:5:DrawMode_RBV -# % gui, FSCN2.over, demand, Red 5, S03SIM-EA-FSCN-02:OVER:5:Red -# % gui, FSCN2.over, readback, Red 5, S03SIM-EA-FSCN-02:OVER:5:Red_RBV -# % gui, FSCN2.over, demand, Green 5, S03SIM-EA-FSCN-02:OVER:5:Green -# % gui, FSCN2.over, readback, Green 5, S03SIM-EA-FSCN-02:OVER:5:Green_RBV -# % gui, FSCN2.over, demand, Blue 5, S03SIM-EA-FSCN-02:OVER:5:Blue -# % gui, FSCN2.over, readback, Blue 5, S03SIM-EA-FSCN-02:OVER:5:Blue_RBV -# % gui, FSCN2.over, demand, X Position 5, S03SIM-EA-FSCN-02:OVER:5:PositionX -# % gui, FSCN2.over, readback, X Position 5, S03SIM-EA-FSCN-02:OVER:5:PositionX_RBV -# % gui, FSCN2.over, demand, X Position Link 5, S03SIM-EA-FSCN-02:OVER:5:PositionXLink.DOL -# % gui, FSCN2.over, demand, X Center 5, S03SIM-EA-FSCN-02:OVER:5:CenterX -# % gui, FSCN2.over, readback, X Center 5, S03SIM-EA-FSCN-02:OVER:5:CenterX_RBV -# % gui, FSCN2.over, demand, X Center Link 5, S03SIM-EA-FSCN-02:OVER:5:CenterXLink.DOL -# % gui, FSCN2.over, demand, X Size 5, S03SIM-EA-FSCN-02:OVER:5:SizeX -# % gui, FSCN2.over, readback, X Size 5, S03SIM-EA-FSCN-02:OVER:5:SizeX_RBV -# % gui, FSCN2.over, demand, X Size Link 5, S03SIM-EA-FSCN-02:OVER:5:SizeXLink.DOL -# % gui, FSCN2.over, demand, Y Position 5, S03SIM-EA-FSCN-02:OVER:5:PositionY -# % gui, FSCN2.over, readback, Y Position 5, S03SIM-EA-FSCN-02:OVER:5:PositionY_RBV -# % gui, FSCN2.over, demand, Y Position Link 5, S03SIM-EA-FSCN-02:OVER:5:PositionYLink.DOL -# % gui, FSCN2.over, demand, Y Center 5, S03SIM-EA-FSCN-02:OVER:5:CenterY -# % gui, FSCN2.over, readback, Y Center 5, S03SIM-EA-FSCN-02:OVER:5:CenterY_RBV -# % gui, FSCN2.over, demand, Y Center Link 5, S03SIM-EA-FSCN-02:OVER:5:CenterYLink.DOL -# % gui, FSCN2.over, demand, Y Size 5, S03SIM-EA-FSCN-02:OVER:5:SizeY -# % gui, FSCN2.over, readback, Y Size 5, S03SIM-EA-FSCN-02:OVER:5:SizeY_RBV -# % gui, FSCN2.over, demand, Y Size Link 5, S03SIM-EA-FSCN-02:OVER:5:SizeYLink.DOL -# Overlay 6 -# % gui, FSCN2.over, groupHeading, Overlay 6 Settings -# % gui, FSCN2.over, demand, Overlay 6, S03SIM-EA-FSCN-02:OVER:6:Name -# % gui, FSCN2.over, enum, Use 6, S03SIM-EA-FSCN-02:OVER:6:Use -# % gui, FSCN2.over, readback, Use 6, S03SIM-EA-FSCN-02:OVER:6:Use_RBV -# % gui, FSCN2.over, enum, Shape 6, S03SIM-EA-FSCN-02:OVER:6:Shape -# % gui, FSCN2.over, readback, Shape 6, S03SIM-EA-FSCN-02:OVER:6:Shape_RBV -# % gui, FSCN2.over, enum, Mode 6, S03SIM-EA-FSCN-02:OVER:6:DrawMode -# % gui, FSCN2.over, readback, Mode 6, S03SIM-EA-FSCN-02:OVER:6:DrawMode_RBV -# % gui, FSCN2.over, demand, Red 6, S03SIM-EA-FSCN-02:OVER:6:Red -# % gui, FSCN2.over, readback, Red 6, S03SIM-EA-FSCN-02:OVER:6:Red_RBV -# % gui, FSCN2.over, demand, Green 6, S03SIM-EA-FSCN-02:OVER:6:Green -# % gui, FSCN2.over, readback, Green 6, S03SIM-EA-FSCN-02:OVER:6:Green_RBV -# % gui, FSCN2.over, demand, Blue 6, S03SIM-EA-FSCN-02:OVER:6:Blue -# % gui, FSCN2.over, readback, Blue 6, S03SIM-EA-FSCN-02:OVER:6:Blue_RBV -# % gui, FSCN2.over, demand, X Position 6, S03SIM-EA-FSCN-02:OVER:6:PositionX -# % gui, FSCN2.over, readback, X Position 6, S03SIM-EA-FSCN-02:OVER:6:PositionX_RBV -# % gui, FSCN2.over, demand, X Position Link 6, S03SIM-EA-FSCN-02:OVER:6:PositionXLink.DOL -# % gui, FSCN2.over, demand, X Center 6, S03SIM-EA-FSCN-02:OVER:6:CenterX -# % gui, FSCN2.over, readback, X Center 6, S03SIM-EA-FSCN-02:OVER:6:CenterX_RBV -# % gui, FSCN2.over, demand, X Center Link 6, S03SIM-EA-FSCN-02:OVER:6:CenterXLink.DOL -# % gui, FSCN2.over, demand, X Size 6, S03SIM-EA-FSCN-02:OVER:6:SizeX -# % gui, FSCN2.over, readback, X Size 6, S03SIM-EA-FSCN-02:OVER:6:SizeX_RBV -# % gui, FSCN2.over, demand, X Size Link 6, S03SIM-EA-FSCN-02:OVER:6:SizeXLink.DOL -# % gui, FSCN2.over, demand, Y Position 6, S03SIM-EA-FSCN-02:OVER:6:PositionY -# % gui, FSCN2.over, readback, Y Position 6, S03SIM-EA-FSCN-02:OVER:6:PositionY_RBV -# % gui, FSCN2.over, demand, Y Position Link 6, S03SIM-EA-FSCN-02:OVER:6:PositionYLink.DOL -# % gui, FSCN2.over, demand, Y Center 6, S03SIM-EA-FSCN-02:OVER:6:CenterY -# % gui, FSCN2.over, readback, Y Center 6, S03SIM-EA-FSCN-02:OVER:6:CenterY_RBV -# % gui, FSCN2.over, demand, Y Center Link 6, S03SIM-EA-FSCN-02:OVER:6:CenterYLink.DOL -# % gui, FSCN2.over, demand, Y Size 6, S03SIM-EA-FSCN-02:OVER:6:SizeY -# % gui, FSCN2.over, readback, Y Size 6, S03SIM-EA-FSCN-02:OVER:6:SizeY_RBV -# % gui, FSCN2.over, demand, Y Size Link 6, S03SIM-EA-FSCN-02:OVER:6:SizeYLink.DOL -# Overlay 7 -# % gui, FSCN2.over, groupHeading, Overlay 7 Settings -# % gui, FSCN2.over, demand, Overlay 7, S03SIM-EA-FSCN-02:OVER:7:Name -# % gui, FSCN2.over, enum, Use 7, S03SIM-EA-FSCN-02:OVER:7:Use -# % gui, FSCN2.over, readback, Use 7, S03SIM-EA-FSCN-02:OVER:7:Use_RBV -# % gui, FSCN2.over, enum, Shape 7, S03SIM-EA-FSCN-02:OVER:7:Shape -# % gui, FSCN2.over, readback, Shape 7, S03SIM-EA-FSCN-02:OVER:7:Shape_RBV -# % gui, FSCN2.over, enum, Mode 7, S03SIM-EA-FSCN-02:OVER:7:DrawMode -# % gui, FSCN2.over, readback, Mode 7, S03SIM-EA-FSCN-02:OVER:7:DrawMode_RBV -# % gui, FSCN2.over, demand, Red 7, S03SIM-EA-FSCN-02:OVER:7:Red -# % gui, FSCN2.over, readback, Red 7, S03SIM-EA-FSCN-02:OVER:7:Red_RBV -# % gui, FSCN2.over, demand, Green 7, S03SIM-EA-FSCN-02:OVER:7:Green -# % gui, FSCN2.over, readback, Green 7, S03SIM-EA-FSCN-02:OVER:7:Green_RBV -# % gui, FSCN2.over, demand, Blue 7, S03SIM-EA-FSCN-02:OVER:7:Blue -# % gui, FSCN2.over, readback, Blue 7, S03SIM-EA-FSCN-02:OVER:7:Blue_RBV -# % gui, FSCN2.over, demand, X Position 7, S03SIM-EA-FSCN-02:OVER:7:PositionX -# % gui, FSCN2.over, readback, X Position 7, S03SIM-EA-FSCN-02:OVER:7:PositionX_RBV -# % gui, FSCN2.over, demand, X Position Link 7, S03SIM-EA-FSCN-02:OVER:7:PositionXLink.DOL -# % gui, FSCN2.over, demand, X Center 7, S03SIM-EA-FSCN-02:OVER:7:CenterX -# % gui, FSCN2.over, readback, X Center 7, S03SIM-EA-FSCN-02:OVER:7:CenterX_RBV -# % gui, FSCN2.over, demand, X Center Link 7, S03SIM-EA-FSCN-02:OVER:7:CenterXLink.DOL -# % gui, FSCN2.over, demand, X Size 7, S03SIM-EA-FSCN-02:OVER:7:SizeX -# % gui, FSCN2.over, readback, X Size 7, S03SIM-EA-FSCN-02:OVER:7:SizeX_RBV -# % gui, FSCN2.over, demand, X Size Link 7, S03SIM-EA-FSCN-02:OVER:7:SizeXLink.DOL -# % gui, FSCN2.over, demand, Y Position 7, S03SIM-EA-FSCN-02:OVER:7:PositionY -# % gui, FSCN2.over, readback, Y Position 7, S03SIM-EA-FSCN-02:OVER:7:PositionY_RBV -# % gui, FSCN2.over, demand, Y Position Link 7, S03SIM-EA-FSCN-02:OVER:7:PositionYLink.DOL -# % gui, FSCN2.over, demand, Y Center 7, S03SIM-EA-FSCN-02:OVER:7:CenterY -# % gui, FSCN2.over, readback, Y Center 7, S03SIM-EA-FSCN-02:OVER:7:CenterY_RBV -# % gui, FSCN2.over, demand, Y Center Link 7, S03SIM-EA-FSCN-02:OVER:7:CenterYLink.DOL -# % gui, FSCN2.over, demand, Y Size 7, S03SIM-EA-FSCN-02:OVER:7:SizeY -# % gui, FSCN2.over, readback, Y Size 7, S03SIM-EA-FSCN-02:OVER:7:SizeY_RBV -# % gui, FSCN2.over, demand, Y Size Link 7, S03SIM-EA-FSCN-02:OVER:7:SizeYLink.DOL -# Overlay 8 -# % gui, FSCN2.over, groupHeading, Overlay 8 Settings -# % gui, FSCN2.over, demand, Overlay 8, S03SIM-EA-FSCN-02:OVER:8:Name -# % gui, FSCN2.over, enum, Use 8, S03SIM-EA-FSCN-02:OVER:8:Use -# % gui, FSCN2.over, readback, Use 8, S03SIM-EA-FSCN-02:OVER:8:Use_RBV -# % gui, FSCN2.over, enum, Shape 8, S03SIM-EA-FSCN-02:OVER:8:Shape -# % gui, FSCN2.over, readback, Shape 8, S03SIM-EA-FSCN-02:OVER:8:Shape_RBV -# % gui, FSCN2.over, enum, Mode 8, S03SIM-EA-FSCN-02:OVER:8:DrawMode -# % gui, FSCN2.over, readback, Mode 8, S03SIM-EA-FSCN-02:OVER:8:DrawMode_RBV -# % gui, FSCN2.over, demand, Red 8, S03SIM-EA-FSCN-02:OVER:8:Red -# % gui, FSCN2.over, readback, Red 8, S03SIM-EA-FSCN-02:OVER:8:Red_RBV -# % gui, FSCN2.over, demand, Green 8, S03SIM-EA-FSCN-02:OVER:8:Green -# % gui, FSCN2.over, readback, Green 8, S03SIM-EA-FSCN-02:OVER:8:Green_RBV -# % gui, FSCN2.over, demand, Blue 8, S03SIM-EA-FSCN-02:OVER:8:Blue -# % gui, FSCN2.over, readback, Blue 8, S03SIM-EA-FSCN-02:OVER:8:Blue_RBV -# % gui, FSCN2.over, demand, X Position 8, S03SIM-EA-FSCN-02:OVER:8:PositionX -# % gui, FSCN2.over, readback, X Position 8, S03SIM-EA-FSCN-02:OVER:8:PositionX_RBV -# % gui, FSCN2.over, demand, X Position Link 8, S03SIM-EA-FSCN-02:OVER:8:PositionXLink.DOL -# % gui, FSCN2.over, demand, X Center 8, S03SIM-EA-FSCN-02:OVER:8:CenterX -# % gui, FSCN2.over, readback, X Center 8, S03SIM-EA-FSCN-02:OVER:8:CenterX_RBV -# % gui, FSCN2.over, demand, X Center Link 8, S03SIM-EA-FSCN-02:OVER:8:CenterXLink.DOL -# % gui, FSCN2.over, demand, X Size 8, S03SIM-EA-FSCN-02:OVER:8:SizeX -# % gui, FSCN2.over, readback, X Size 8, S03SIM-EA-FSCN-02:OVER:8:SizeX_RBV -# % gui, FSCN2.over, demand, X Size Link 8, S03SIM-EA-FSCN-02:OVER:8:SizeXLink.DOL -# % gui, FSCN2.over, demand, Y Position 8, S03SIM-EA-FSCN-02:OVER:8:PositionY -# % gui, FSCN2.over, readback, Y Position 8, S03SIM-EA-FSCN-02:OVER:8:PositionY_RBV -# % gui, FSCN2.over, demand, Y Position Link 8, S03SIM-EA-FSCN-02:OVER:8:PositionYLink.DOL -# % gui, FSCN2.over, demand, Y Center 8, S03SIM-EA-FSCN-02:OVER:8:CenterY -# % gui, FSCN2.over, readback, Y Center 8, S03SIM-EA-FSCN-02:OVER:8:CenterY_RBV -# % gui, FSCN2.over, demand, Y Center Link 8, S03SIM-EA-FSCN-02:OVER:8:CenterYLink.DOL -# % gui, FSCN2.over, demand, Y Size 8, S03SIM-EA-FSCN-02:OVER:8:SizeY -# % gui, FSCN2.over, readback, Y Size 8, S03SIM-EA-FSCN-02:OVER:8:SizeY_RBV -# % gui, FSCN2.over, demand, Y Size Link 8, S03SIM-EA-FSCN-02:OVER:8:SizeYLink.DOL -# Memory -# % gui, FSCN2.over, groupHeading, Memory -# % gui, FSCN2.over, readback, Max memory, S03SIM-EA-FSCN-02:OVER:PoolMaxMem -# % gui, FSCN2.over, readback, Max buffers, S03SIM-EA-FSCN-02:OVER:PoolMaxBuffers -# % gui, FSCN2.over, readback, Used memory, S03SIM-EA-FSCN-02:OVER:PoolUsedMem -# % gui, FSCN2.over, readback, Allocated buffers, S03SIM-EA-FSCN-02:OVER:PoolAllocBuffers -# % gui, FSCN2.over, readback, Free buffers, S03SIM-EA-FSCN-02:OVER:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:OVER:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:OVER:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:OVER:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:OVER:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:OVER:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:OVER:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:OVER:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:OVER:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:OVER:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-02:OVER:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:OVER:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-02:OVER:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:OVER:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-02:OVER:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-02:OVER:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:OVER:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:OVER:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:OVER:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-02:OVER:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:OVER:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:OVER:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN2.over,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN2.over,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:OVER:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-02:OVER:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-02:OVER:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:OVER:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.over,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-02:OVER:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:OVER:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:OVER:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:OVER:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:OVER:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:OVER:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:OVER:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:OVER:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.over,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:OVER:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.over,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-02:OVER:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.over,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-02:OVER:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.over,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-02:OVER:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-02:OVER:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:OVER:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-02:OVER:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:OVER:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-02:OVER:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.over,0,1)NDARRAY_PORT") - field(VAL, "FSCN2.proc") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:OVER:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:OVER:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:OVER:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:OVER:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.over,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:OVER:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.over,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:OVER:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:OVER:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-02:OVER:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-02:OVER:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:OVER:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-02:OVER:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:OVER:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-02:OVER:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.over,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:OVER:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.over,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-02:OVER:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.over,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:OVER:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:OVER:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:OVER:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-02:OVER:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:OVER:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:OVER:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:OVER:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:OVER:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:OVER:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:OVER:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:OVER:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:OVER:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:OVER:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:OVER:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:OVER:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:OVER:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:OVER:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:OVER:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.over,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-02:OVER:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.over,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:OVER:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:OVER:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:OVER:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:OVER:AsynIO") -{ - field(PORT, "FSCN2.over") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -# These are the array dimensions in X, Y order. Used for setting HOPR on sliders -record(longin, "S03SIM-EA-FSCN-02:OVER:MaxSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)MAX_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:MaxSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)MAX_SIZE_Y") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-DI-OAV-01:OVER:1:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.over,0,1)NAME") - field(VAL, "Overlay 1") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:OVER:1:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,0,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-DI-OAV-01:OVER:1:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:OVER:1:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-DI-OAV-01:OVER:1:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:1:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:1:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:1:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:1:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:1:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:1:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:1:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:1:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:1:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:1:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:1:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:1:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:1:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:1:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:1:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:1:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:1:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:1:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:1:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:1:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:1:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:1:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:1:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:1:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:1:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:1:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:1:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:1:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:1:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:1:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:1:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:1:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:1:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:1:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:1:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:1:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:1:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:1:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:1:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:1:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:1:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-DI-OAV-01:OVER:1:MaxSizeX") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:OVER:1:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:OVER:1:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:OVER:1:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:OVER:1:PositionX.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:OVER:1:CenterX.HOPR NPP") - field(OUTC, "S03SIM-DI-OAV-01:OVER:1:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:1:MaxSizeY") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:OVER:1:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:OVER:1:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:OVER:1:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:OVER:1:PositionY.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:OVER:1:CenterY.HOPR NPP") - field(OUTC, "S03SIM-DI-OAV-01:OVER:1:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:OVER:1:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.over,0,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-DI-OAV-01:OVER:1:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,0,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:OVER:1:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.over,0,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:OVER:1:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,0,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:1:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,0,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:1:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,0,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-DI-OAV-01:OVER:2:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.over,1,1)NAME") - field(VAL, "Overlay 2") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:OVER:2:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,1,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-DI-OAV-01:OVER:2:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,1,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:OVER:2:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,1,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-DI-OAV-01:OVER:2:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:2:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:2:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,1,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:2:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,1,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:2:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:2:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:2:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,1,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:2:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,1,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:2:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:2:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:2:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,1,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:2:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,1,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:2:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:2:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:2:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,1,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:2:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,1,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:2:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:2:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:2:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,1,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:2:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,1,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:2:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:2:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:2:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,1,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:2:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,1,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:2:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:2:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:2:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,1,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:2:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,1,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:2:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:2:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:2:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,1,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:2:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,1,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:2:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,1,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:2:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,1,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:2:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,1,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:2:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,1,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:2:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,1,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:2:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,1,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:2:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,1,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:2:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,1,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:2:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,1,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:2:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,1,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-DI-OAV-01:OVER:2:MaxSizeX") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:OVER:2:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:OVER:2:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:OVER:2:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:OVER:2:PositionX.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:OVER:2:CenterX.HOPR NPP") - field(OUTC, "S03SIM-DI-OAV-01:OVER:2:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:2:MaxSizeY") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:OVER:2:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:OVER:2:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:OVER:2:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:OVER:2:PositionY.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:OVER:2:CenterY.HOPR NPP") - field(OUTC, "S03SIM-DI-OAV-01:OVER:2:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:OVER:2:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.over,1,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-DI-OAV-01:OVER:2:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,1,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:OVER:2:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.over,1,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:OVER:2:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,1,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:2:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,1,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:2:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,1,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-DI-OAV-01:OVER:3:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.over,2,1)NAME") - field(VAL, "Overlay 3") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:OVER:3:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,2,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-DI-OAV-01:OVER:3:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,2,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:OVER:3:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,2,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-DI-OAV-01:OVER:3:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:3:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:3:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,2,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:3:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,2,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:3:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:3:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:3:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,2,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:3:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,2,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:3:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:3:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:3:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,2,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:3:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,2,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:3:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:3:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:3:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,2,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:3:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,2,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:3:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:3:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:3:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,2,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:3:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,2,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:3:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:3:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:3:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,2,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:3:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,2,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:3:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:3:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:3:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,2,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:3:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,2,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:3:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:3:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:3:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,2,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:3:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,2,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:3:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,2,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:3:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,2,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:3:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,2,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:3:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,2,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:3:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,2,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:3:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,2,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:3:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,2,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:3:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,2,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:3:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,2,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:3:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,2,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-DI-OAV-01:OVER:3:MaxSizeX") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:OVER:3:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:OVER:3:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:OVER:3:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:OVER:3:PositionX.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:OVER:3:CenterX.HOPR NPP") - field(OUTC, "S03SIM-DI-OAV-01:OVER:3:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:3:MaxSizeY") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:OVER:3:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:OVER:3:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:OVER:3:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:OVER:3:PositionY.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:OVER:3:CenterY.HOPR NPP") - field(OUTC, "S03SIM-DI-OAV-01:OVER:3:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:OVER:3:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.over,2,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-DI-OAV-01:OVER:3:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,2,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:OVER:3:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.over,2,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:OVER:3:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,2,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:3:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,2,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:3:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,2,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-DI-OAV-01:OVER:4:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.over,3,1)NAME") - field(VAL, "Overlay 4") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:OVER:4:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,3,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-DI-OAV-01:OVER:4:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,3,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:OVER:4:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,3,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-DI-OAV-01:OVER:4:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:4:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:4:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,3,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:4:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,3,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:4:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:4:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:4:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,3,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:4:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,3,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:4:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:4:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:4:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,3,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:4:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,3,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:4:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:4:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:4:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,3,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:4:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,3,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:4:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:4:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:4:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,3,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:4:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,3,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:4:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:4:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:4:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,3,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:4:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,3,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:4:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:4:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:4:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,3,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:4:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,3,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:4:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:4:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:4:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,3,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:4:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,3,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:4:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,3,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:4:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,3,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:4:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,3,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:4:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,3,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:4:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,3,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:4:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,3,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:4:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,3,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:4:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,3,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:4:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,3,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:4:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,3,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-DI-OAV-01:OVER:4:MaxSizeX") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:OVER:4:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:OVER:4:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:OVER:4:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:OVER:4:PositionX.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:OVER:4:CenterX.HOPR NPP") - field(OUTC, "S03SIM-DI-OAV-01:OVER:4:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:4:MaxSizeY") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:OVER:4:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:OVER:4:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:OVER:4:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:OVER:4:PositionY.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:OVER:4:CenterY.HOPR NPP") - field(OUTC, "S03SIM-DI-OAV-01:OVER:4:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:OVER:4:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.over,3,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-DI-OAV-01:OVER:4:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,3,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:OVER:4:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.over,3,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:OVER:4:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,3,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:4:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,3,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:4:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,3,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-DI-OAV-01:OVER:5:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.over,4,1)NAME") - field(VAL, "Overlay 5") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:OVER:5:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,4,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-DI-OAV-01:OVER:5:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,4,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:OVER:5:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,4,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-DI-OAV-01:OVER:5:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:5:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:5:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,4,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:5:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,4,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:5:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:5:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:5:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,4,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:5:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,4,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:5:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:5:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:5:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,4,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:5:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,4,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:5:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:5:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:5:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,4,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:5:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,4,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:5:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:5:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:5:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,4,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:5:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,4,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:5:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:5:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:5:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,4,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:5:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,4,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:5:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:5:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:5:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,4,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:5:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,4,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:5:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:5:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:5:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,4,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:5:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,4,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:5:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,4,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:5:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,4,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:5:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,4,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:5:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,4,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:5:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,4,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:5:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,4,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:5:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,4,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:5:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,4,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:5:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,4,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:5:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,4,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-DI-OAV-01:OVER:5:MaxSizeX") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:OVER:5:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:OVER:5:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:OVER:5:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:OVER:5:PositionX.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:OVER:5:CenterX.HOPR NPP") - field(OUTC, "S03SIM-DI-OAV-01:OVER:5:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:5:MaxSizeY") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:OVER:5:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:OVER:5:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:OVER:5:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:OVER:5:PositionY.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:OVER:5:CenterY.HOPR NPP") - field(OUTC, "S03SIM-DI-OAV-01:OVER:5:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:OVER:5:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.over,4,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-DI-OAV-01:OVER:5:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,4,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:OVER:5:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.over,4,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:OVER:5:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,4,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:5:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,4,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:5:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,4,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-DI-OAV-01:OVER:6:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.over,5,1)NAME") - field(VAL, "Overlay 6") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:OVER:6:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,5,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-DI-OAV-01:OVER:6:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,5,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:OVER:6:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,5,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-DI-OAV-01:OVER:6:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:6:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:6:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,5,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:6:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,5,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:6:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:6:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:6:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,5,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:6:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,5,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:6:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:6:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:6:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,5,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:6:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,5,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:6:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:6:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:6:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,5,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:6:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,5,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:6:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:6:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:6:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,5,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:6:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,5,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:6:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:6:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:6:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,5,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:6:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,5,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:6:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:6:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:6:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,5,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:6:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,5,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:6:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:6:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:6:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,5,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:6:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,5,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:6:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,5,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:6:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,5,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:6:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,5,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:6:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,5,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:6:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,5,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:6:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,5,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:6:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,5,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:6:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,5,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:6:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,5,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:6:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,5,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-DI-OAV-01:OVER:6:MaxSizeX") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:OVER:6:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:OVER:6:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:OVER:6:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:OVER:6:PositionX.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:OVER:6:CenterX.HOPR NPP") - field(OUTC, "S03SIM-DI-OAV-01:OVER:6:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:6:MaxSizeY") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:OVER:6:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:OVER:6:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:OVER:6:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:OVER:6:PositionY.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:OVER:6:CenterY.HOPR NPP") - field(OUTC, "S03SIM-DI-OAV-01:OVER:6:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:OVER:6:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.over,5,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-DI-OAV-01:OVER:6:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,5,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:OVER:6:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.over,5,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:OVER:6:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,5,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:6:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,5,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:6:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,5,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-DI-OAV-01:OVER:7:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.over,6,1)NAME") - field(VAL, "Overlay 7") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:OVER:7:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,6,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-DI-OAV-01:OVER:7:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,6,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:OVER:7:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,6,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-DI-OAV-01:OVER:7:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:7:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:7:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,6,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:7:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,6,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:7:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:7:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:7:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,6,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:7:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,6,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:7:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:7:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:7:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,6,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:7:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,6,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:7:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:7:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:7:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,6,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:7:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,6,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:7:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:7:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:7:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,6,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:7:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,6,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:7:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:7:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:7:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,6,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:7:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,6,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:7:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:7:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:7:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,6,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:7:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,6,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:7:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:7:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:7:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,6,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:7:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,6,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:7:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,6,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:7:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,6,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:7:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,6,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:7:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,6,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:7:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,6,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:7:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,6,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:7:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,6,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:7:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,6,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:7:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,6,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:7:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,6,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-DI-OAV-01:OVER:7:MaxSizeX") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:OVER:7:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:OVER:7:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:OVER:7:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:OVER:7:PositionX.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:OVER:7:CenterX.HOPR NPP") - field(OUTC, "S03SIM-DI-OAV-01:OVER:7:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:7:MaxSizeY") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:OVER:7:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:OVER:7:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:OVER:7:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:OVER:7:PositionY.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:OVER:7:CenterY.HOPR NPP") - field(OUTC, "S03SIM-DI-OAV-01:OVER:7:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:OVER:7:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.over,6,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-DI-OAV-01:OVER:7:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,6,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:OVER:7:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.over,6,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:OVER:7:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,6,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:7:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,6,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:7:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,6,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-DI-OAV-01:OVER:8:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.over,7,1)NAME") - field(VAL, "Overlay 8") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:OVER:8:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,7,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-DI-OAV-01:OVER:8:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,7,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:OVER:8:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,7,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-DI-OAV-01:OVER:8:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:8:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:8:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,7,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:8:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,7,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:8:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:8:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:8:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,7,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:8:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,7,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:8:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:8:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:8:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,7,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:8:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,7,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:8:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:8:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:8:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,7,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:8:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,7,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:8:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:8:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:8:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,7,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:8:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,7,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:8:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:8:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:8:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,7,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:8:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,7,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:8:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:8:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:8:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,7,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:8:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,7,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:8:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:8:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:8:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,7,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:8:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,7,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:8:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,7,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:8:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,7,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:8:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,7,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:8:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,7,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:8:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,7,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:8:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,7,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:8:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,7,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:8:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,7,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:OVER:8:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,7,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:8:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,7,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-DI-OAV-01:OVER:8:MaxSizeX") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:OVER:8:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:OVER:8:SetXHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:OVER:8:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:OVER:8:PositionX.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:OVER:8:CenterX.HOPR NPP") - field(OUTC, "S03SIM-DI-OAV-01:OVER:8:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-DI-OAV-01:OVER:8:MaxSizeY") -{ - field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:OVER:8:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-DI-OAV-01:OVER:8:SetYHOPR") -{ - field(DOL, "S03SIM-DI-OAV-01:OVER:8:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:OVER:8:PositionY.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:OVER:8:CenterY.HOPR NPP") - field(OUTC, "S03SIM-DI-OAV-01:OVER:8:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:OVER:8:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.over,7,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-DI-OAV-01:OVER:8:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,7,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:OVER:8:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.over,7,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:OVER:8:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.over,7,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:OVER:8:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.over,7,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:OVER:8:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.over,7,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-EA-FSCN-01:OVER:1:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.over,0,1)NAME") - field(VAL, "Overlay 1") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:OVER:1:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,0,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:OVER:1:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:OVER:1:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-EA-FSCN-01:OVER:1:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:1:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:1:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:1:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:1:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:1:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:1:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:1:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:1:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:1:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:1:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:1:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:1:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:1:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:1:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:1:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:1:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:1:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:1:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:1:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:1:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:1:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:1:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:1:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:1:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:1:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:1:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:1:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:1:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:1:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:1:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:1:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:1:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:1:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:1:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:1:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:1:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:1:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:1:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:1:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:1:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:1:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-01:OVER:1:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:1:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:OVER:1:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:OVER:1:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:OVER:1:PositionX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:OVER:1:CenterX.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-01:OVER:1:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:1:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:1:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:OVER:1:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:OVER:1:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:OVER:1:PositionY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:OVER:1:CenterY.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-01:OVER:1:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:OVER:1:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-01:OVER:1:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:OVER:1:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:OVER:1:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:1:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,0,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:1:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,0,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-EA-FSCN-01:OVER:2:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.over,1,1)NAME") - field(VAL, "Overlay 2") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:OVER:2:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,1,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:OVER:2:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,1,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:OVER:2:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,1,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-EA-FSCN-01:OVER:2:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:2:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:2:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:2:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:2:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:2:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:2:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:2:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:2:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:2:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:2:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:2:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:2:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:2:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:2:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:2:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:2:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:2:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:2:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:2:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:2:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:2:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:2:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:2:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:2:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:2:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:2:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:2:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:2:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:2:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:2:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:2:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:2:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:2:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:2:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:2:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:2:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:2:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:2:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:2:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:2:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:2:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-01:OVER:2:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:2:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:OVER:2:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:OVER:2:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:OVER:2:PositionX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:OVER:2:CenterX.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-01:OVER:2:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:2:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:2:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:OVER:2:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:OVER:2:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:OVER:2:PositionY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:OVER:2:CenterY.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-01:OVER:2:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:OVER:2:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-01:OVER:2:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:OVER:2:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:OVER:2:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:2:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,1,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:2:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,1,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-EA-FSCN-01:OVER:3:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.over,2,1)NAME") - field(VAL, "Overlay 3") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:OVER:3:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,2,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:OVER:3:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,2,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:OVER:3:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,2,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-EA-FSCN-01:OVER:3:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:3:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:3:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:3:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:3:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:3:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:3:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:3:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:3:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:3:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:3:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:3:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:3:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:3:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:3:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:3:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:3:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:3:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:3:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:3:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:3:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:3:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:3:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:3:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:3:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:3:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:3:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:3:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:3:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:3:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:3:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:3:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:3:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:3:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:3:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:3:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:3:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:3:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:3:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:3:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:3:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:3:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-01:OVER:3:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:3:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:OVER:3:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:OVER:3:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:OVER:3:PositionX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:OVER:3:CenterX.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-01:OVER:3:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:3:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:3:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:OVER:3:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:OVER:3:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:OVER:3:PositionY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:OVER:3:CenterY.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-01:OVER:3:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:OVER:3:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-01:OVER:3:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:OVER:3:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:OVER:3:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:3:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,2,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:3:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,2,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-EA-FSCN-01:OVER:4:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.over,3,1)NAME") - field(VAL, "Overlay 4") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:OVER:4:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,3,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:OVER:4:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,3,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:OVER:4:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,3,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-EA-FSCN-01:OVER:4:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:4:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:4:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:4:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:4:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:4:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:4:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:4:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:4:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:4:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:4:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:4:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:4:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:4:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:4:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:4:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:4:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:4:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:4:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:4:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:4:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:4:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:4:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:4:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:4:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:4:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:4:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:4:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:4:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:4:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:4:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:4:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:4:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:4:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:4:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:4:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:4:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:4:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:4:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:4:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:4:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:4:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-01:OVER:4:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:4:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:OVER:4:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:OVER:4:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:OVER:4:PositionX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:OVER:4:CenterX.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-01:OVER:4:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:4:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:4:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:OVER:4:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:OVER:4:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:OVER:4:PositionY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:OVER:4:CenterY.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-01:OVER:4:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:OVER:4:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-01:OVER:4:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:OVER:4:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:OVER:4:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:4:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,3,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:4:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,3,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-EA-FSCN-01:OVER:5:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.over,4,1)NAME") - field(VAL, "Overlay 5") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:OVER:5:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,4,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:OVER:5:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,4,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:OVER:5:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,4,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-EA-FSCN-01:OVER:5:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:5:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:5:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:5:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:5:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:5:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:5:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:5:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:5:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:5:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:5:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:5:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:5:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:5:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:5:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:5:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:5:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:5:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:5:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:5:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:5:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:5:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:5:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:5:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:5:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:5:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:5:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:5:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:5:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:5:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:5:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:5:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:5:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:5:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:5:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:5:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:5:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:5:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:5:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:5:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:5:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:5:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-01:OVER:5:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:5:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:OVER:5:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:OVER:5:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:OVER:5:PositionX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:OVER:5:CenterX.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-01:OVER:5:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:5:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:5:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:OVER:5:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:OVER:5:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:OVER:5:PositionY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:OVER:5:CenterY.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-01:OVER:5:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:OVER:5:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-01:OVER:5:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:OVER:5:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:OVER:5:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:5:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,4,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:5:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,4,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-EA-FSCN-01:OVER:6:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.over,5,1)NAME") - field(VAL, "Overlay 6") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:OVER:6:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,5,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:OVER:6:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,5,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:OVER:6:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,5,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-EA-FSCN-01:OVER:6:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:6:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:6:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:6:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:6:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:6:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:6:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:6:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:6:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:6:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:6:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:6:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:6:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:6:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:6:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:6:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:6:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:6:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:6:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:6:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:6:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:6:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:6:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:6:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:6:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:6:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:6:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:6:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:6:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:6:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:6:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:6:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:6:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:6:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:6:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:6:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:6:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:6:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:6:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:6:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:6:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:6:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-01:OVER:6:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:6:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:OVER:6:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:OVER:6:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:OVER:6:PositionX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:OVER:6:CenterX.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-01:OVER:6:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:6:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:6:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:OVER:6:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:OVER:6:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:OVER:6:PositionY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:OVER:6:CenterY.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-01:OVER:6:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:OVER:6:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-01:OVER:6:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:OVER:6:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:OVER:6:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:6:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,5,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:6:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,5,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-EA-FSCN-01:OVER:7:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.over,6,1)NAME") - field(VAL, "Overlay 7") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:OVER:7:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,6,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:OVER:7:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,6,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:OVER:7:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,6,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-EA-FSCN-01:OVER:7:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:7:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:7:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:7:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:7:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:7:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:7:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:7:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:7:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:7:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:7:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:7:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:7:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:7:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:7:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:7:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:7:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:7:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:7:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:7:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:7:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:7:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:7:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:7:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:7:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:7:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:7:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:7:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:7:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:7:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:7:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:7:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:7:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:7:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:7:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:7:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:7:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:7:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:7:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:7:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:7:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:7:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-01:OVER:7:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:7:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:OVER:7:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:OVER:7:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:OVER:7:PositionX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:OVER:7:CenterX.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-01:OVER:7:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:7:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:7:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:OVER:7:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:OVER:7:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:OVER:7:PositionY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:OVER:7:CenterY.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-01:OVER:7:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:OVER:7:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-01:OVER:7:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:OVER:7:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:OVER:7:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:7:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,6,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:7:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,6,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-EA-FSCN-01:OVER:8:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.over,7,1)NAME") - field(VAL, "Overlay 8") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:OVER:8:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,7,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:OVER:8:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,7,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:OVER:8:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,7,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-EA-FSCN-01:OVER:8:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:8:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:8:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:8:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:8:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:8:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:8:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:8:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:8:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:8:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:8:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:8:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:8:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:8:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:8:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:8:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:8:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:8:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:8:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:8:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:8:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:8:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:8:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:8:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:8:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:8:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:8:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:8:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:8:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-01:OVER:8:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:8:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:8:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:8:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:8:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:8:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:8:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:8:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:8:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:8:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:8:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:OVER:8:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:8:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-01:OVER:8:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:8:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:OVER:8:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:OVER:8:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:OVER:8:PositionX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:OVER:8:CenterX.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-01:OVER:8:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-01:OVER:8:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-01:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-01:OVER:8:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-01:OVER:8:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-01:OVER:8:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-01:OVER:8:PositionY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-01:OVER:8:CenterY.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-01:OVER:8:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:OVER:8:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-01:OVER:8:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:OVER:8:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:OVER:8:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:OVER:8:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.over,7,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:OVER:8:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.over,7,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-EA-FSCN-02:OVER:1:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.over,0,1)NAME") - field(VAL, "Overlay 1") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:OVER:1:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,0,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:OVER:1:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:OVER:1:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-EA-FSCN-02:OVER:1:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:1:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:1:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:1:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:1:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:1:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:1:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:1:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:1:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:1:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:1:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:1:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:1:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:1:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:1:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:1:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:1:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:1:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:1:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:1:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:1:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:1:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:1:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:1:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:1:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:1:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:1:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:1:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:1:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:1:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:1:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:1:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:1:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:1:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:1:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:1:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:1:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:1:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:1:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:1:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:1:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:1:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-02:OVER:1:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:1:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:OVER:1:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:OVER:1:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:OVER:1:PositionX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:OVER:1:CenterX.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-02:OVER:1:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:1:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:1:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:OVER:1:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:OVER:1:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:OVER:1:PositionY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:OVER:1:CenterY.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-02:OVER:1:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:OVER:1:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-02:OVER:1:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:OVER:1:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:OVER:1:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:1:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,0,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:1:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,0,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-EA-FSCN-02:OVER:2:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.over,1,1)NAME") - field(VAL, "Overlay 2") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:OVER:2:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,1,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:OVER:2:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,1,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:OVER:2:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,1,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-EA-FSCN-02:OVER:2:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:2:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:2:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:2:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:2:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:2:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:2:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:2:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:2:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:2:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:2:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:2:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:2:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:2:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:2:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:2:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:2:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:2:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:2:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:2:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:2:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:2:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:2:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:2:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:2:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:2:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:2:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:2:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:2:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:2:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:2:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:2:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:2:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:2:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:2:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:2:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:2:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:2:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:2:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:2:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:2:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:2:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-02:OVER:2:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:2:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:OVER:2:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:OVER:2:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:OVER:2:PositionX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:OVER:2:CenterX.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-02:OVER:2:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:2:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:2:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:OVER:2:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:OVER:2:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:OVER:2:PositionY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:OVER:2:CenterY.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-02:OVER:2:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:OVER:2:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-02:OVER:2:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:OVER:2:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:OVER:2:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:2:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,1,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:2:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,1,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-EA-FSCN-02:OVER:3:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.over,2,1)NAME") - field(VAL, "Overlay 3") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:OVER:3:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,2,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:OVER:3:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,2,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:OVER:3:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,2,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-EA-FSCN-02:OVER:3:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:3:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:3:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:3:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:3:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:3:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:3:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:3:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:3:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:3:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:3:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:3:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:3:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:3:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:3:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:3:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:3:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:3:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:3:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:3:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:3:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:3:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:3:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:3:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:3:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:3:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:3:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:3:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:3:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:3:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:3:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:3:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:3:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:3:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:3:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:3:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:3:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:3:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:3:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:3:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:3:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:3:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-02:OVER:3:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:3:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:OVER:3:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:OVER:3:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:OVER:3:PositionX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:OVER:3:CenterX.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-02:OVER:3:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:3:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:3:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:OVER:3:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:OVER:3:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:OVER:3:PositionY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:OVER:3:CenterY.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-02:OVER:3:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:OVER:3:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-02:OVER:3:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:OVER:3:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:OVER:3:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:3:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,2,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:3:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,2,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-EA-FSCN-02:OVER:4:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.over,3,1)NAME") - field(VAL, "Overlay 4") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:OVER:4:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,3,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:OVER:4:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,3,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:OVER:4:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,3,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-EA-FSCN-02:OVER:4:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:4:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:4:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:4:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:4:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:4:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:4:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:4:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:4:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:4:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:4:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:4:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:4:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:4:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:4:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:4:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:4:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:4:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:4:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:4:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:4:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:4:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:4:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:4:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:4:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:4:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:4:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:4:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:4:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:4:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:4:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:4:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:4:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:4:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:4:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:4:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:4:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:4:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:4:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:4:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:4:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:4:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-02:OVER:4:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:4:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:OVER:4:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:OVER:4:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:OVER:4:PositionX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:OVER:4:CenterX.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-02:OVER:4:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:4:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:4:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:OVER:4:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:OVER:4:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:OVER:4:PositionY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:OVER:4:CenterY.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-02:OVER:4:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:OVER:4:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-02:OVER:4:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:OVER:4:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:OVER:4:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:4:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,3,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:4:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,3,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-EA-FSCN-02:OVER:5:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.over,4,1)NAME") - field(VAL, "Overlay 5") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:OVER:5:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,4,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:OVER:5:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,4,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:OVER:5:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,4,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-EA-FSCN-02:OVER:5:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:5:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:5:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:5:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:5:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:5:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:5:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:5:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:5:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:5:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:5:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:5:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:5:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:5:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:5:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:5:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:5:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:5:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:5:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:5:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:5:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:5:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:5:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:5:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:5:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:5:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:5:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:5:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:5:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:5:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:5:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:5:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:5:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:5:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:5:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:5:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:5:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:5:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:5:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:5:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:5:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:5:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-02:OVER:5:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:5:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:OVER:5:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:OVER:5:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:OVER:5:PositionX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:OVER:5:CenterX.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-02:OVER:5:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:5:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:5:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:OVER:5:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:OVER:5:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:OVER:5:PositionY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:OVER:5:CenterY.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-02:OVER:5:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:OVER:5:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-02:OVER:5:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:OVER:5:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:OVER:5:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:5:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,4,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:5:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,4,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-EA-FSCN-02:OVER:6:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.over,5,1)NAME") - field(VAL, "Overlay 6") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:OVER:6:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,5,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:OVER:6:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,5,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:OVER:6:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,5,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-EA-FSCN-02:OVER:6:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:6:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:6:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:6:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:6:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:6:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:6:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:6:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:6:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:6:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:6:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:6:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:6:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:6:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:6:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:6:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:6:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:6:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:6:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:6:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:6:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:6:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:6:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:6:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:6:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:6:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:6:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:6:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:6:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:6:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:6:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:6:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:6:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:6:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:6:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:6:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:6:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:6:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:6:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:6:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:6:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:6:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-02:OVER:6:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:6:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:OVER:6:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:OVER:6:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:OVER:6:PositionX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:OVER:6:CenterX.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-02:OVER:6:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:6:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:6:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:OVER:6:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:OVER:6:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:OVER:6:PositionY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:OVER:6:CenterY.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-02:OVER:6:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:OVER:6:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-02:OVER:6:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:OVER:6:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:OVER:6:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:6:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,5,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:6:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,5,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-EA-FSCN-02:OVER:7:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.over,6,1)NAME") - field(VAL, "Overlay 7") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:OVER:7:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,6,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:OVER:7:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,6,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:OVER:7:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,6,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-EA-FSCN-02:OVER:7:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:7:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:7:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:7:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:7:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:7:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:7:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:7:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:7:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:7:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:7:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:7:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:7:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:7:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:7:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:7:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:7:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:7:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:7:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:7:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:7:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:7:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:7:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:7:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:7:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:7:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:7:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:7:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:7:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:7:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:7:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:7:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:7:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:7:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:7:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:7:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:7:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:7:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:7:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:7:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:7:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:7:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-02:OVER:7:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:7:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:OVER:7:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:OVER:7:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:OVER:7:PositionX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:OVER:7:CenterX.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-02:OVER:7:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:7:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:7:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:OVER:7:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:OVER:7:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:OVER:7:PositionY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:OVER:7:CenterY.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-02:OVER:7:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:OVER:7:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-02:OVER:7:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:OVER:7:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:OVER:7:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:7:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,6,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:7:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,6,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDOverlayN.template -# Database for NDOverlays -# Mark Rivers -# March 22, 2010 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, O, NDOverlay Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NAME, Name for the overlay -# % macro, XPOS, Link for the XPos of the overlay -# % macro, YPOS, Link for the YPos of the overlay -# % macro, XCENT, Link for the XCent of the overlay -# % macro, YCENT, Link for the YCent of the overlay -# % macro, XSIZE, Link for the XSize of the overlay -# % macro, YSIZE, Link for the YSize of the overlay -# % macro, XWIDTH, Link for the XWidth of the overlay -# % macro, YWIDTH, Link for the YWdith of the overlay -# % macro, SHAPE, Shape of the overlay - -################################################################### -# These records control the label for the overlay # -################################################################### -record(stringout, "S03SIM-EA-FSCN-02:OVER:8:Name") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.over,7,1)NAME") - field(VAL, "Overlay 8") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:OVER:8:Name_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,7,1)NAME") - field(SCAN, "I/O Intr") -} - - -################################################################### -# These records control whether this overlay is used # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:OVER:8:Use") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,7,1)USE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:OVER:8:Use_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,7,1)USE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the overlay definition # -################################################################### - -record(longout, "S03SIM-EA-FSCN-02:OVER:8:PositionXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:8:PositionX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:8:PositionX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_POSITION_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:8:PositionX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_POSITION_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:8:PositionYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:8:PositionY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:8:PositionY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_POSITION_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:8:PositionY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_POSITION_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:8:CenterXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:8:CenterX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:8:CenterX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_CENTER_X") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:8:CenterX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_CENTER_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:8:CenterYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:8:CenterY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:8:CenterY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_CENTER_Y") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:8:CenterY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_CENTER_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:8:SizeXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:8:SizeX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:8:SizeX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_SIZE_X") - field(LOPR, "1") - field(HOPR, "1024") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:8:SizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:8:SizeYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:8:SizeY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:8:SizeY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_SIZE_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:8:SizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:8:WidthXLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:8:WidthX PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:8:WidthX") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_WIDTH_X") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:8:WidthX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_WIDTH_X") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:8:WidthYLink") -{ - field(DOL, " CP MS") - field(OMSL, "closed_loop") - field(OUT, "S03SIM-EA-FSCN-02:OVER:8:WidthY PP") - info(autosaveFields, "DOL") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:8:WidthY") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_WIDTH_Y") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:8:WidthY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_WIDTH_Y") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:8:Shape") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:8:Shape_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_SHAPE") - field(ZRST, "Cross") - field(ZRVL, "0") - field(ONST, "Rectangle") - field(ONVL, "1") - field(TWST, "Ellipse") - field(TWVL, "3") - field(THST, "Text") - field(THVL, "2") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:8:DrawMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:8:DrawMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_DRAW_MODE") - field(ZRST, "Set") - field(ZRVL, "0") - field(ONST, "XOR") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:8:Red") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_RED") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:8:Red_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_RED") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:8:Green") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_GREEN") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:8:Green_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_GREEN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:OVER:8:Blue") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_BLUE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:8:Blue_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_BLUE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records set the HOPR and LOPR values for the position # -# and size to the maximum for the input array # -################################################################### - -record(longin, "S03SIM-EA-FSCN-02:OVER:8:MaxSizeX") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:8:SetXHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:OVER:8:SetXHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:OVER:8:MaxSizeX NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:OVER:8:PositionX.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:OVER:8:CenterX.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-02:OVER:8:SizeX.HOPR NPP") -} - -record(longin, "S03SIM-EA-FSCN-02:OVER:8:MaxSizeY") -{ - field(INP, "S03SIM-EA-FSCN-02:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-EA-FSCN-02:OVER:8:SetYHOPR.PROC PP") -} - -record(dfanout, "S03SIM-EA-FSCN-02:OVER:8:SetYHOPR") -{ - field(DOL, "S03SIM-EA-FSCN-02:OVER:8:MaxSizeY NPP") - field(OMSL, "closed_loop") - field(OUTA, "S03SIM-EA-FSCN-02:OVER:8:PositionY.HOPR NPP") - field(OUTB, "S03SIM-EA-FSCN-02:OVER:8:CenterY.HOPR NPP") - field(OUTC, "S03SIM-EA-FSCN-02:OVER:8:SizeY.HOPR NPP") -} - -################################################################### -# Text overlay (Keith Brister 2014-06-26) -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:OVER:8:DisplayText") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-02:OVER:8:DisplayText_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_DISPLAY_TEXT") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:OVER:8:TimeStampFormat") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_TIMESTAMP_FORMAT") - field(VAL, "%Y-%m-%d %H:%M:%S.%03f") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:OVER:8:TimeStampFormat_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_TIMESTAMP_FORMAT") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:OVER:8:Font") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.over,7,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:OVER:8:Font_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.over,7,1)OVERLAY_FONT") - field(ZRST, "6x13") - field(ZRVL, "0") - field(ONST, "6x13 Bold") - field(ONVL, "1") - field(TWST, "9x15") - field(TWVL, "2") - field(THST, "9x15 Bold") - field(THVL, "3") - field(SCAN, "I/O Intr") -} -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % gui, OAV.fimg, edmtab, ffmpegFile.edl, P=S03SIM-DI-OAV-01,R=:FIMG: - -# # \file -# # ffmpegFile wraps the ffmpeg compression libraries in an areaDetector plugin. -# # It works in much the same way as the other NDFile plugins. By default, it -# # will try to guess the file format from the file extension, but you can force -# # it to a particular file format with the FileFormat record. -# # \section ffmpegStream_setup Setup -# # - In the database, an instance of NDPluginBase is required, followed by an -# # instance of NDFile, then an instance of this template. -# # - In the startup scripts, call ffmpegFileConfigure() once per ffmpegStream -# # instance to setup the areadetector plugin -# # - see \ref build_instructions -# # \section ffmpegStream_screenshots Screenshots -# # \htmlinclude flashvideo.html -# # \image html ffmpegFileEdm.png "Edm screen for ffmpegFile" - -# This associates a BOY screen with the template -# % gui, OAV.fimg, boydetail,ffmpegServerApp_opi/fimg_detail.opi, P=S03SIM-DI-OAV-01, R=:FIMG:, DESC=MPEG File -# % gui, OAV.fimg, boyembed, ffmpegServerApp_opi/fimg_embed_box.opi, P=S03SIM-DI-OAV-01, R=:FIMG:, DESC=MPEG File -# % gui, OAV.fimg, boyembed, ffmpegServerApp_opi/fimg_embed.opi, P=S03SIM-DI-OAV-01, R=:FIMG:, DESC=MPEG File - -# Info -# % gui, OAV.fimg, groupHeading, Info -# % gui, OAV.fimg, readback, Port name, S03SIM-DI-OAV-01:FIMG:PortName_RBV -# % gui, OAV.fimg, readback, Plugin type, S03SIM-DI-OAV-01:FIMG:PluginType_RBV -# Input -# % gui, OAV.fimg, demandString, Input, S03SIM-DI-OAV-01:FIMG:NDArrayPort -# % gui, OAV.fimg, readback, Input, S03SIM-DI-OAV-01:FIMG:NDArrayPort_RBV - -# % gui, OAV.fimg, groupHeading, Callback -# % gui, OAV.fimg, enum, Callbacks, S03SIM-DI-OAV-01:FIMG:EnableCallbacks -# % gui, OAV.fimg, statusbits, Callbacks, S03SIM-DI-OAV-01:FIMG:EnableCallbacks_RBV -# % gui, OAV.fimg, demand, Min Callback Time, S03SIM-DI-OAV-01:FIMG:MinCallbackTime -# % gui, OAV.fimg, readback, Min Callback Time, S03SIM-DI-OAV-01:FIMG:MinCallbackTime_RBV -# % gui, OAV.fimg, enum, Block Callbacks, S03SIM-DI-OAV-01:FIMG:BlockingCallbacks -# % gui, OAV.fimg, statusbits, Block Callbacks, S03SIM-DI-OAV-01:FIMG:BlockingCallbacks_RBV - -# % gui, OAV.fimg, groupHeading, Counters -# % gui, OAV.fimg, demand, Array Counter, S03SIM-DI-OAV-01:FIMG:ArrayCounter -# % gui, OAV.fimg, readback, Array Counter, S03SIM-DI-OAV-01:FIMG:ArrayCounter_RBV -# % gui, OAV.fimg, readback, Array Rate (fps), S03SIM-DI-OAV-01:FIMG:ArrayRate_RBV -# % gui, OAV.fimg, readback, Queue Use, S03SIM-DI-OAV-01:FIMG:QueueUse -# % gui, OAV.fimg, readback, Queue Size, S03SIM-DI-OAV-01:FIMG:QueueSize -# % gui, OAV.fimg, demand, Dropped Arrays, S03SIM-DI-OAV-01:FIMG:DroppedArrays -# % gui, OAV.fimg, readback, Dropped Arrays, S03SIM-DI-OAV-01:FIMG:DroppedArrays_RBV - -# % gui, OAV.fimg, groupHeading, Array Settings -# % gui, OAV.fimg, readback, Num Dimensions, S03SIM-DI-OAV-01:FIMG:NDimensions_RBV -# % gui, OAV.fimg, readback, Dim 0 Size, S03SIM-DI-OAV-01:FIMG:ArraySize0_RBV -# % gui, OAV.fimg, readback, Dim 1 Size, S03SIM-DI-OAV-01:FIMG:ArraySize1_RBV -# % gui, OAV.fimg, readback, Dim 2 Size, S03SIM-DI-OAV-01:FIMG:ArraySize2_RBV -# % gui, OAV.fimg, readback, Input Data Type, S03SIM-DI-OAV-01:FIMG:DataType_RBV -# % gui, OAV.fimg, readback, Colour Mode, S03SIM-DI-OAV-01:FIMG:ColorMode_RBV -# % gui, OAV.fimg, readback, Bayer Pattern, S03SIM-DI-OAV-01:FIMG:BayerPattern_RBV -# % gui, OAV.fimg, readback, Unique id, S03SIM-DI-OAV-01:FIMG:UniqueId_RBV -# % gui, OAV.fimg, readback, Timestamp, S03SIM-DI-OAV-01:FIMG:TimeStamp_RBV - -# File -# % gui, OAV.fimg, groupHeading, File -# % gui, OAV.fimg, demandString, File Path, S03SIM-DI-OAV-01:FIMG:FilePath -# % gui, OAV.fimg, readback, File Path, S03SIM-DI-OAV-01:FIMG:FilePath_RBV -# % gui, OAV.fimg, statusbits, File Path Exists, S03SIM-DI-OAV-01:FIMG:FilePathExists_RBV -# % gui, OAV.fimg, demand, File Name, S03SIM-DI-OAV-01:FIMG:FileName -# % gui, OAV.fimg, readback, File Name, S03SIM-DI-OAV-01:FIMG:FileName_RBV -# % gui, OAV.fimg, demand, File Number, S03SIM-DI-OAV-01:FIMG:FileNumber -# % gui, OAV.fimg, readback, File Number, S03SIM-DI-OAV-01:FIMG:FileNumber_RBV -# % gui, OAV.fimg, enum, Auto Increment, S03SIM-DI-OAV-01:FIMG:AutoIncrement -# % gui, OAV.fimg, statusbits, Auto Increment, S03SIM-DI-OAV-01:FIMG:AutoIncrement_RBV -# % gui, OAV.fimg, demand, File Format, S03SIM-DI-OAV-01:FIMG:FileTemplate -# % gui, OAV.fimg, readback, File Format, S03SIM-DI-OAV-01:FIMG:FileTemplate_RBV -# % gui, OAV.fimg, demand, N to Capture, S03SIM-DI-OAV-01:FIMG:NumCapture -# % gui, OAV.fimg, readback, N to Capture, S03SIM-DI-OAV-01:FIMG:NumCapture_RBV -# % gui, OAV.fimg, readback, N Captured, S03SIM-DI-OAV-01:FIMG:NumCaptured_RBV -# % gui, OAV.fimg, enum, Auto Save, S03SIM-DI-OAV-01:FIMG:AutoSave -# % gui, OAV.fimg, statusbits, Auto Save , S03SIM-DI-OAV-01:FIMG:AutoSave_RBV -# % gui, OAV.fimg, enum, Capture mode, S03SIM-DI-OAV-01:FIMG:FileWriteMode -# % gui, OAV.fimg, readback, Capture mode, S03SIM-DI-OAV-01:FIMG:FileWriteMode_RBV -# % gui, OAV.fimg, enum, Capture, S03SIM-DI-OAV-01:FIMG:Capture -# % gui, OAV.fimg, readback, Capture, S03SIM-DI-OAV-01:FIMG:Capture_RBV -# % gui, OAV.fimg, readback, Write Message, S03SIM-DI-OAV-01:FIMG:WriteMessage -# % gui, OAV.fimg, readback, Write Status, S03SIM-DI-OAV-01:FIMG:WriteStatus -# % gui, OAV.fimg, readback, Write Filename, S03SIM-DI-OAV-01:FIMG:FullFileName_RBV -# % gui, OAV.fimg, enum, Lazy Open, S03SIM-DI-OAV-01:FIMG:LazyOpen -# % gui, OAV.fimg, readback, Lazy Open, S03SIM-DI-OAV-01:FIMG:LazyOpen_RBV -# % gui, OAV.fimg, demand, Temporary Suffix, S03SIM-DI-OAV-01:FIMG:TempSuffix -# % gui, OAV.fimg, readback, Temporary Suffix, S03SIM-DI-OAV-01:FIMG:TempSuffix_RBV -# % gui, OAV.fimg, demand, Create Directories, S03SIM-DI-OAV-01:FIMG:CreateDirectory -# % gui, OAV.fimg, readback, Create Directories, S03SIM-DI-OAV-01:FIMG:CreateDirectory_RBV - -# Video -# % gui, OAV.fimg, groupHeading, Video Settings -# % gui, OAV.fimg, demand, Bit Rate, S03SIM-DI-OAV-01:FIMG:BITRATE -# % gui, OAV.fimg, readback, Bit Rate, S03SIM-DI-OAV-01:FIMG:BITRATE_RBV -# % gui, OAV.fimg, demand, Frame Rate, S03SIM-DI-OAV-01:FIMG:FPS -# % gui, OAV.fimg, readback, Frame Rate, S03SIM-DI-OAV-01:FIMG:FPS_RBV -# % gui, OAV.fimg, demand, Width, S03SIM-DI-OAV-01:FIMG:WIDTH -# % gui, OAV.fimg, readback, Width, S03SIM-DI-OAV-01:FIMG:WIDTH_RBV -# % gui, OAV.fimg, demand, Height, S03SIM-DI-OAV-01:FIMG:HEIGHT -# % gui, OAV.fimg, readback, Height, S03SIM-DI-OAV-01:FIMG:HEIGHT_RBV -# Memory -# % gui, OAV.fimg, groupHeading, Memory -# % gui, OAV.fimg, readback, Max memory, S03SIM-DI-OAV-01:FIMG:PoolMaxMem -# % gui, OAV.fimg, readback, Max buffers, S03SIM-DI-OAV-01:FIMG:PoolMaxBuffers -# % gui, OAV.fimg, readback, Used memory, S03SIM-DI-OAV-01:FIMG:PoolUsedMem -# % gui, OAV.fimg, readback, Allocated buffers, S03SIM-DI-OAV-01:FIMG:PoolAllocBuffers -# % gui, OAV.fimg, readback, Free buffers, S03SIM-DI-OAV-01:FIMG:PoolFreeBuffers - -#=================================================================# -# Template file: NDFile.template -# Database for NDFile driver, which saves files for NDArray data. -# Mark Rivers -# April 7, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -################################################################### -# These records control file I/O # -################################################################### - -# File path. -record(waveform, "S03SIM-DI-OAV-01:FIMG:FilePath") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.fimg,0,1)FILE_PATH") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-DI-OAV-01:FIMG:FilePath_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.fimg,0,1)FILE_PATH") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-DI-OAV-01:FIMG:FilePathExists_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)FILE_PATH_EXISTS") - field(ZNAM, "No") - field(ZSV, "MAJOR") - field(ONAM, "Yes") - field(OSV, "NO_ALARM") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:FIMG:CreateDirectory") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)CREATE_DIR") - field(VAL, "0" ) - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:CreateDirectory_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)CREATE_DIR") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -# Filename -record(waveform, "S03SIM-DI-OAV-01:FIMG:FileName") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.fimg,0,1)FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-DI-OAV-01:FIMG:FileName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.fimg,0,1)FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:FIMG:FileNumber") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)FILE_NUMBER") - field(VAL, "1") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:FileNumber_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)FILE_NUMBER") - field(SCAN, "I/O Intr") -} - -# Autoincrement flag -record(bo, "S03SIM-DI-OAV-01:FIMG:AutoIncrement") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)AUTO_INCREMENT") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:FIMG:AutoIncrement_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)AUTO_INCREMENT") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -# File template -record(waveform, "S03SIM-DI-OAV-01:FIMG:FileTemplate") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.fimg,0,1)FILE_TEMPLATE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-DI-OAV-01:FIMG:FileTemplate_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.fimg,0,1)FILE_TEMPLATE") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -# Full filename, including path -record(waveform, "S03SIM-DI-OAV-01:FIMG:FullFileName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.fimg,0,1)FULL_FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "512") - field(SCAN, "I/O Intr") -} - -# Autosave flag -record(bo, "S03SIM-DI-OAV-01:FIMG:AutoSave") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)AUTO_SAVE") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:FIMG:AutoSave_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)AUTO_SAVE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -# Write file -record(ai, "S03SIM-DI-OAV-01:FIMG:WriteFile") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)WRITE_FILE") - field(ZNAM, "Done") - field(ONAM, "Write") -} - -record(bi, "S03SIM-DI-OAV-01:FIMG:WriteFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)WRITE_FILE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Writing") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -# Read file -record(ai, "S03SIM-DI-OAV-01:FIMG:ReadFile") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)READ_FILE") - field(ZNAM, "Done") - field(ONAM, "Read") -} - -record(bi, "S03SIM-DI-OAV-01:FIMG:ReadFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)READ_FILE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Reading") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -# File data format -record(mbbo, "S03SIM-DI-OAV-01:FIMG:FileFormat") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)FILE_FORMAT") - field(VAL, "0") - field(ZRST, "Undefined") - field(ZRVL, "0") - field(ONST, "Invalid") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:FIMG:FileFormat_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)FILE_FORMAT") - field(ZRST, "netCDF") - field(ZRVL, "0") - field(ONST, "Undefined") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -# File save mode -record(mbbo, "S03SIM-DI-OAV-01:FIMG:FileWriteMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)WRITE_MODE") - field(VAL, "0") - field(ZRST, "Single") - field(ZRVL, "0") - field(ONST, "Capture") - field(ONVL, "1") - field(TWST, "Stream") - field(TWVL, "2") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:FIMG:FileWriteMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)WRITE_MODE") - field(ZRST, "Single") - field(ZRVL, "0") - field(ONST, "Capture") - field(ONVL, "1") - field(TWST, "Stream") - field(TWVL, "2") - field(SCAN, "I/O Intr") -} - -# Capture data -record(ai, "S03SIM-DI-OAV-01:FIMG:Capture") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)CAPTURE") - field(ZNAM, "Done") - field(ONAM, "Capture") -} - -record(bi, "S03SIM-DI-OAV-01:FIMG:Capture_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)CAPTURE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Capturing") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:FIMG:NumCapture") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)NUM_CAPTURE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:NumCapture_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)NUM_CAPTURE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:NumCaptured_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)NUM_CAPTURED") - field(SCAN, "I/O Intr") -} - -# Delete driver file flag -record(bo, "S03SIM-DI-OAV-01:FIMG:DeleteDriverFile") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)DELETE_DRIVER_FILE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:FIMG:DeleteDriverFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)DELETE_DRIVER_FILE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-DI-OAV-01:FIMG:WriteStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)WRITE_STATUS") - field(ZNAM, "Write OK") - field(ZSV, "NO_ALARM") - field(ONAM, "Write error") - field(OSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:FIMG:WriteMessage") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.fimg,0,1)WRITE_MESSAGE") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:FIMG:LazyOpen") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)FILE_LAZY_OPEN") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:FIMG:LazyOpen_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)FILE_LAZY_OPEN") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:FIMG:TempSuffix") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.fimg,0,1)FILE_TEMP_SUFFIX") - field(VAL, "") -} - -record(stringin, "S03SIM-DI-OAV-01:FIMG:TempSuffix_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.fimg,0,1)FILE_TEMP_SUFFIX") - field(VAL, "") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:FIMG:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.fimg,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:FIMG:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.fimg,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:FIMG:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.fimg,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:FIMG:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.fimg,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:FIMG:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.fimg,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:FIMG:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.fimg,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:FIMG:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.fimg,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:FIMG:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.fimg,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:FIMG:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:FIMG:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:FIMG:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:FIMG:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:FIMG:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:FIMG:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:FIMG:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:FIMG:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:FIMG:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:FIMG:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:FIMG:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:FIMG:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:FIMG:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.fimg,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.fimg,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:FIMG:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:FIMG:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:FIMG:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:FIMG:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.fimg,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:FIMG:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:FIMG:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:FIMG:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:FIMG:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:FIMG:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:FIMG:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.fimg,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:FIMG:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:FIMG:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:FIMG:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:FIMG:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:FIMG:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:FIMG:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:FIMG:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:FIMG:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.fimg,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:FIMG:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.fimg,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:FIMG:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-DI-OAV-01:FIMG:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.fimg,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-DI-OAV-01:FIMG:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.fimg,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:PoolFreeBuffers") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:PoolUsedBuffers") -} - -record(calc, "S03SIM-DI-OAV-01:FIMG:PoolUsedBuffers") -{ - field(INPA, "S03SIM-DI-OAV-01:FIMG:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:FIMG:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-DI-OAV-01:FIMG:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:FIMG:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.fimg,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:FIMG:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.fimg,0,1)NDARRAY_PORT") - field(VAL, "OAV.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:FIMG:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.fimg,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:FIMG:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:FIMG:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:FIMG:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:FIMG:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.fimg,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:FIMG:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.fimg,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:FIMG:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:FIMG:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-DI-OAV-01:FIMG:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-DI-OAV-01:FIMG:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:FIMG:MinCallbackTime PP") -} - -record(calc, "S03SIM-DI-OAV-01:FIMG:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:FIMG:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-DI-OAV-01:FIMG:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.fimg,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:FIMG:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.fimg,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:FIMG:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.fimg,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:FIMG:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:FIMG:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:FIMG:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-DI-OAV-01:FIMG:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:FIMG:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:FIMG:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:FIMG:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:FIMG:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:FIMG:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:FIMG:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:FIMG:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:FIMG:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:FIMG:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:FIMG:QueueUse.HIHI") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:FIMG:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:FIMG:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:FIMG:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-DI-OAV-01:FIMG:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:FIMG:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-DI-OAV-01:FIMG:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:FIMG:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.fimg,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-DI-OAV-01:FIMG:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.fimg,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:FIMG:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:FIMG:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:FIMG:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:FIMG:SortSize") - field(OUT, "S03SIM-DI-OAV-01:FIMG:SortFree.LOW") -} - -record(longout, "S03SIM-DI-OAV-01:FIMG:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:FIMG:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:FIMG:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:FIMG:AsynIO") -{ - field(PORT, "OAV.fimg") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -# # File data format -record(mbbo, "S03SIM-DI-OAV-01:FIMG:FileFormat") -{ - field(ZRST, "Auto") - field(ZRVL, "0") -} - -# # File data format from driver -record(mbbi, "S03SIM-DI-OAV-01:FIMG:FileFormat_RBV") -{ - field(ZRST, "Auto") - field(ZRVL, "0") -} - -record(bo, "S03SIM-DI-OAV-01:FIMG:AutoSave") -{ - field(VAL, "0") -} - -record(mbbo, "S03SIM-DI-OAV-01:FIMG:FileWriteMode") -{ - field(VAL, "2") -} - -record(longout, "S03SIM-DI-OAV-01:FIMG:NumCapture") -{ - field(VAL, "-1") -} - -# # FFMPEG Bitrate -record(ao, "S03SIM-DI-OAV-01:FIMG:BITRATE") { - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.fimg 0)FFMPEG_BITRATE") - field(VAL, "10000000") - field(PINI, "YES") -} - -# # FFMPEG Bitrate from driver -record(ai, "S03SIM-DI-OAV-01:FIMG:BITRATE_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.fimg 0)FFMPEG_BITRATE") -} - -# # FFMPEG Frames Per Second -record(ao, "S03SIM-DI-OAV-01:FIMG:FPS") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg 0)FFMPEG_FPS") - field(VAL, "25") - field(PINI, "YES") -} - -# # FFMPEG Frames Per Second from driver -record(ai, "S03SIM-DI-OAV-01:FIMG:FPS_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg 0)FFMPEG_FPS") -} - -# # FFMPEG Width -record(ao, "S03SIM-DI-OAV-01:FIMG:WIDTH") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg 0)FFMPEG_WIDTH") - field(VAL, "640") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -# # FFMPEG Width from driver -record(ai, "S03SIM-DI-OAV-01:FIMG:WIDTH_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg 0)FFMPEG_WIDTH") -} - -# # FFMPEG Height -record(ao, "S03SIM-DI-OAV-01:FIMG:HEIGHT") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.fimg 0)FFMPEG_HEIGHT") - field(VAL, "480") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -# # FFMPEG Height from driver -record(ai, "S03SIM-DI-OAV-01:FIMG:HEIGHT_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.fimg 0)FFMPEG_HEIGHT") -} -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % gui, FSCN1.fimg, edmtab, ffmpegFile.edl, P=S03SIM-EA-FSCN-01,R=:FIMG: - -# # \file -# # ffmpegFile wraps the ffmpeg compression libraries in an areaDetector plugin. -# # It works in much the same way as the other NDFile plugins. By default, it -# # will try to guess the file format from the file extension, but you can force -# # it to a particular file format with the FileFormat record. -# # \section ffmpegStream_setup Setup -# # - In the database, an instance of NDPluginBase is required, followed by an -# # instance of NDFile, then an instance of this template. -# # - In the startup scripts, call ffmpegFileConfigure() once per ffmpegStream -# # instance to setup the areadetector plugin -# # - see \ref build_instructions -# # \section ffmpegStream_screenshots Screenshots -# # \htmlinclude flashvideo.html -# # \image html ffmpegFileEdm.png "Edm screen for ffmpegFile" - -# This associates a BOY screen with the template -# % gui, FSCN1.fimg, boydetail,ffmpegServerApp_opi/fimg_detail.opi, P=S03SIM-EA-FSCN-01, R=:FIMG:, DESC=MPEG File -# % gui, FSCN1.fimg, boyembed, ffmpegServerApp_opi/fimg_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:FIMG:, DESC=MPEG File -# % gui, FSCN1.fimg, boyembed, ffmpegServerApp_opi/fimg_embed.opi, P=S03SIM-EA-FSCN-01, R=:FIMG:, DESC=MPEG File - -# Info -# % gui, FSCN1.fimg, groupHeading, Info -# % gui, FSCN1.fimg, readback, Port name, S03SIM-EA-FSCN-01:FIMG:PortName_RBV -# % gui, FSCN1.fimg, readback, Plugin type, S03SIM-EA-FSCN-01:FIMG:PluginType_RBV -# Input -# % gui, FSCN1.fimg, demandString, Input, S03SIM-EA-FSCN-01:FIMG:NDArrayPort -# % gui, FSCN1.fimg, readback, Input, S03SIM-EA-FSCN-01:FIMG:NDArrayPort_RBV - -# % gui, FSCN1.fimg, groupHeading, Callback -# % gui, FSCN1.fimg, enum, Callbacks, S03SIM-EA-FSCN-01:FIMG:EnableCallbacks -# % gui, FSCN1.fimg, statusbits, Callbacks, S03SIM-EA-FSCN-01:FIMG:EnableCallbacks_RBV -# % gui, FSCN1.fimg, demand, Min Callback Time, S03SIM-EA-FSCN-01:FIMG:MinCallbackTime -# % gui, FSCN1.fimg, readback, Min Callback Time, S03SIM-EA-FSCN-01:FIMG:MinCallbackTime_RBV -# % gui, FSCN1.fimg, enum, Block Callbacks, S03SIM-EA-FSCN-01:FIMG:BlockingCallbacks -# % gui, FSCN1.fimg, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:FIMG:BlockingCallbacks_RBV - -# % gui, FSCN1.fimg, groupHeading, Counters -# % gui, FSCN1.fimg, demand, Array Counter, S03SIM-EA-FSCN-01:FIMG:ArrayCounter -# % gui, FSCN1.fimg, readback, Array Counter, S03SIM-EA-FSCN-01:FIMG:ArrayCounter_RBV -# % gui, FSCN1.fimg, readback, Array Rate (fps), S03SIM-EA-FSCN-01:FIMG:ArrayRate_RBV -# % gui, FSCN1.fimg, readback, Queue Use, S03SIM-EA-FSCN-01:FIMG:QueueUse -# % gui, FSCN1.fimg, readback, Queue Size, S03SIM-EA-FSCN-01:FIMG:QueueSize -# % gui, FSCN1.fimg, demand, Dropped Arrays, S03SIM-EA-FSCN-01:FIMG:DroppedArrays -# % gui, FSCN1.fimg, readback, Dropped Arrays, S03SIM-EA-FSCN-01:FIMG:DroppedArrays_RBV - -# % gui, FSCN1.fimg, groupHeading, Array Settings -# % gui, FSCN1.fimg, readback, Num Dimensions, S03SIM-EA-FSCN-01:FIMG:NDimensions_RBV -# % gui, FSCN1.fimg, readback, Dim 0 Size, S03SIM-EA-FSCN-01:FIMG:ArraySize0_RBV -# % gui, FSCN1.fimg, readback, Dim 1 Size, S03SIM-EA-FSCN-01:FIMG:ArraySize1_RBV -# % gui, FSCN1.fimg, readback, Dim 2 Size, S03SIM-EA-FSCN-01:FIMG:ArraySize2_RBV -# % gui, FSCN1.fimg, readback, Input Data Type, S03SIM-EA-FSCN-01:FIMG:DataType_RBV -# % gui, FSCN1.fimg, readback, Colour Mode, S03SIM-EA-FSCN-01:FIMG:ColorMode_RBV -# % gui, FSCN1.fimg, readback, Bayer Pattern, S03SIM-EA-FSCN-01:FIMG:BayerPattern_RBV -# % gui, FSCN1.fimg, readback, Unique id, S03SIM-EA-FSCN-01:FIMG:UniqueId_RBV -# % gui, FSCN1.fimg, readback, Timestamp, S03SIM-EA-FSCN-01:FIMG:TimeStamp_RBV - -# File -# % gui, FSCN1.fimg, groupHeading, File -# % gui, FSCN1.fimg, demandString, File Path, S03SIM-EA-FSCN-01:FIMG:FilePath -# % gui, FSCN1.fimg, readback, File Path, S03SIM-EA-FSCN-01:FIMG:FilePath_RBV -# % gui, FSCN1.fimg, statusbits, File Path Exists, S03SIM-EA-FSCN-01:FIMG:FilePathExists_RBV -# % gui, FSCN1.fimg, demand, File Name, S03SIM-EA-FSCN-01:FIMG:FileName -# % gui, FSCN1.fimg, readback, File Name, S03SIM-EA-FSCN-01:FIMG:FileName_RBV -# % gui, FSCN1.fimg, demand, File Number, S03SIM-EA-FSCN-01:FIMG:FileNumber -# % gui, FSCN1.fimg, readback, File Number, S03SIM-EA-FSCN-01:FIMG:FileNumber_RBV -# % gui, FSCN1.fimg, enum, Auto Increment, S03SIM-EA-FSCN-01:FIMG:AutoIncrement -# % gui, FSCN1.fimg, statusbits, Auto Increment, S03SIM-EA-FSCN-01:FIMG:AutoIncrement_RBV -# % gui, FSCN1.fimg, demand, File Format, S03SIM-EA-FSCN-01:FIMG:FileTemplate -# % gui, FSCN1.fimg, readback, File Format, S03SIM-EA-FSCN-01:FIMG:FileTemplate_RBV -# % gui, FSCN1.fimg, demand, N to Capture, S03SIM-EA-FSCN-01:FIMG:NumCapture -# % gui, FSCN1.fimg, readback, N to Capture, S03SIM-EA-FSCN-01:FIMG:NumCapture_RBV -# % gui, FSCN1.fimg, readback, N Captured, S03SIM-EA-FSCN-01:FIMG:NumCaptured_RBV -# % gui, FSCN1.fimg, enum, Auto Save, S03SIM-EA-FSCN-01:FIMG:AutoSave -# % gui, FSCN1.fimg, statusbits, Auto Save , S03SIM-EA-FSCN-01:FIMG:AutoSave_RBV -# % gui, FSCN1.fimg, enum, Capture mode, S03SIM-EA-FSCN-01:FIMG:FileWriteMode -# % gui, FSCN1.fimg, readback, Capture mode, S03SIM-EA-FSCN-01:FIMG:FileWriteMode_RBV -# % gui, FSCN1.fimg, enum, Capture, S03SIM-EA-FSCN-01:FIMG:Capture -# % gui, FSCN1.fimg, readback, Capture, S03SIM-EA-FSCN-01:FIMG:Capture_RBV -# % gui, FSCN1.fimg, readback, Write Message, S03SIM-EA-FSCN-01:FIMG:WriteMessage -# % gui, FSCN1.fimg, readback, Write Status, S03SIM-EA-FSCN-01:FIMG:WriteStatus -# % gui, FSCN1.fimg, readback, Write Filename, S03SIM-EA-FSCN-01:FIMG:FullFileName_RBV -# % gui, FSCN1.fimg, enum, Lazy Open, S03SIM-EA-FSCN-01:FIMG:LazyOpen -# % gui, FSCN1.fimg, readback, Lazy Open, S03SIM-EA-FSCN-01:FIMG:LazyOpen_RBV -# % gui, FSCN1.fimg, demand, Temporary Suffix, S03SIM-EA-FSCN-01:FIMG:TempSuffix -# % gui, FSCN1.fimg, readback, Temporary Suffix, S03SIM-EA-FSCN-01:FIMG:TempSuffix_RBV -# % gui, FSCN1.fimg, demand, Create Directories, S03SIM-EA-FSCN-01:FIMG:CreateDirectory -# % gui, FSCN1.fimg, readback, Create Directories, S03SIM-EA-FSCN-01:FIMG:CreateDirectory_RBV - -# Video -# % gui, FSCN1.fimg, groupHeading, Video Settings -# % gui, FSCN1.fimg, demand, Bit Rate, S03SIM-EA-FSCN-01:FIMG:BITRATE -# % gui, FSCN1.fimg, readback, Bit Rate, S03SIM-EA-FSCN-01:FIMG:BITRATE_RBV -# % gui, FSCN1.fimg, demand, Frame Rate, S03SIM-EA-FSCN-01:FIMG:FPS -# % gui, FSCN1.fimg, readback, Frame Rate, S03SIM-EA-FSCN-01:FIMG:FPS_RBV -# % gui, FSCN1.fimg, demand, Width, S03SIM-EA-FSCN-01:FIMG:WIDTH -# % gui, FSCN1.fimg, readback, Width, S03SIM-EA-FSCN-01:FIMG:WIDTH_RBV -# % gui, FSCN1.fimg, demand, Height, S03SIM-EA-FSCN-01:FIMG:HEIGHT -# % gui, FSCN1.fimg, readback, Height, S03SIM-EA-FSCN-01:FIMG:HEIGHT_RBV -# Memory -# % gui, FSCN1.fimg, groupHeading, Memory -# % gui, FSCN1.fimg, readback, Max memory, S03SIM-EA-FSCN-01:FIMG:PoolMaxMem -# % gui, FSCN1.fimg, readback, Max buffers, S03SIM-EA-FSCN-01:FIMG:PoolMaxBuffers -# % gui, FSCN1.fimg, readback, Used memory, S03SIM-EA-FSCN-01:FIMG:PoolUsedMem -# % gui, FSCN1.fimg, readback, Allocated buffers, S03SIM-EA-FSCN-01:FIMG:PoolAllocBuffers -# % gui, FSCN1.fimg, readback, Free buffers, S03SIM-EA-FSCN-01:FIMG:PoolFreeBuffers - -#=================================================================# -# Template file: NDFile.template -# Database for NDFile driver, which saves files for NDArray data. -# Mark Rivers -# April 7, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -################################################################### -# These records control file I/O # -################################################################### - -# File path. -record(waveform, "S03SIM-EA-FSCN-01:FIMG:FilePath") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.fimg,0,1)FILE_PATH") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-01:FIMG:FilePath_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.fimg,0,1)FILE_PATH") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-EA-FSCN-01:FIMG:FilePathExists_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)FILE_PATH_EXISTS") - field(ZNAM, "No") - field(ZSV, "MAJOR") - field(ONAM, "Yes") - field(OSV, "NO_ALARM") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:FIMG:CreateDirectory") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)CREATE_DIR") - field(VAL, "0" ) - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:CreateDirectory_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)CREATE_DIR") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -# Filename -record(waveform, "S03SIM-EA-FSCN-01:FIMG:FileName") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.fimg,0,1)FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-01:FIMG:FileName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.fimg,0,1)FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:FIMG:FileNumber") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)FILE_NUMBER") - field(VAL, "1") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:FileNumber_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)FILE_NUMBER") - field(SCAN, "I/O Intr") -} - -# Autoincrement flag -record(bo, "S03SIM-EA-FSCN-01:FIMG:AutoIncrement") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)AUTO_INCREMENT") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:FIMG:AutoIncrement_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)AUTO_INCREMENT") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -# File template -record(waveform, "S03SIM-EA-FSCN-01:FIMG:FileTemplate") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.fimg,0,1)FILE_TEMPLATE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-01:FIMG:FileTemplate_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.fimg,0,1)FILE_TEMPLATE") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -# Full filename, including path -record(waveform, "S03SIM-EA-FSCN-01:FIMG:FullFileName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.fimg,0,1)FULL_FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "512") - field(SCAN, "I/O Intr") -} - -# Autosave flag -record(bo, "S03SIM-EA-FSCN-01:FIMG:AutoSave") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)AUTO_SAVE") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:FIMG:AutoSave_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)AUTO_SAVE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -# Write file -record(ai, "S03SIM-EA-FSCN-01:FIMG:WriteFile") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)WRITE_FILE") - field(ZNAM, "Done") - field(ONAM, "Write") -} - -record(bi, "S03SIM-EA-FSCN-01:FIMG:WriteFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)WRITE_FILE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Writing") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -# Read file -record(ai, "S03SIM-EA-FSCN-01:FIMG:ReadFile") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)READ_FILE") - field(ZNAM, "Done") - field(ONAM, "Read") -} - -record(bi, "S03SIM-EA-FSCN-01:FIMG:ReadFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)READ_FILE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Reading") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -# File data format -record(mbbo, "S03SIM-EA-FSCN-01:FIMG:FileFormat") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)FILE_FORMAT") - field(VAL, "0") - field(ZRST, "Undefined") - field(ZRVL, "0") - field(ONST, "Invalid") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:FIMG:FileFormat_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)FILE_FORMAT") - field(ZRST, "netCDF") - field(ZRVL, "0") - field(ONST, "Undefined") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -# File save mode -record(mbbo, "S03SIM-EA-FSCN-01:FIMG:FileWriteMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)WRITE_MODE") - field(VAL, "0") - field(ZRST, "Single") - field(ZRVL, "0") - field(ONST, "Capture") - field(ONVL, "1") - field(TWST, "Stream") - field(TWVL, "2") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:FIMG:FileWriteMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)WRITE_MODE") - field(ZRST, "Single") - field(ZRVL, "0") - field(ONST, "Capture") - field(ONVL, "1") - field(TWST, "Stream") - field(TWVL, "2") - field(SCAN, "I/O Intr") -} - -# Capture data -record(ai, "S03SIM-EA-FSCN-01:FIMG:Capture") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)CAPTURE") - field(ZNAM, "Done") - field(ONAM, "Capture") -} - -record(bi, "S03SIM-EA-FSCN-01:FIMG:Capture_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)CAPTURE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Capturing") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:FIMG:NumCapture") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)NUM_CAPTURE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:NumCapture_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)NUM_CAPTURE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:NumCaptured_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)NUM_CAPTURED") - field(SCAN, "I/O Intr") -} - -# Delete driver file flag -record(bo, "S03SIM-EA-FSCN-01:FIMG:DeleteDriverFile") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)DELETE_DRIVER_FILE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:FIMG:DeleteDriverFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)DELETE_DRIVER_FILE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-EA-FSCN-01:FIMG:WriteStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)WRITE_STATUS") - field(ZNAM, "Write OK") - field(ZSV, "NO_ALARM") - field(ONAM, "Write error") - field(OSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:FIMG:WriteMessage") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.fimg,0,1)WRITE_MESSAGE") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:FIMG:LazyOpen") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)FILE_LAZY_OPEN") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:FIMG:LazyOpen_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)FILE_LAZY_OPEN") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:FIMG:TempSuffix") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.fimg,0,1)FILE_TEMP_SUFFIX") - field(VAL, "") -} - -record(stringin, "S03SIM-EA-FSCN-01:FIMG:TempSuffix_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.fimg,0,1)FILE_TEMP_SUFFIX") - field(VAL, "") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:FIMG:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.fimg,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:FIMG:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.fimg,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:FIMG:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.fimg,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:FIMG:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.fimg,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:FIMG:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.fimg,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:FIMG:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.fimg,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:FIMG:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.fimg,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:FIMG:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.fimg,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:FIMG:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-01:FIMG:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:FIMG:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-01:FIMG:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:FIMG:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-01:FIMG:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-01:FIMG:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:FIMG:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:FIMG:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:FIMG:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-01:FIMG:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:FIMG:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:FIMG:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN1.fimg,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN1.fimg,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:FIMG:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:FIMG:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-01:FIMG:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-01:FIMG:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.fimg,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:FIMG:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:FIMG:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:FIMG:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:FIMG:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-01:FIMG:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:FIMG:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.fimg,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-01:FIMG:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:FIMG:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:FIMG:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:FIMG:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:FIMG:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:FIMG:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:FIMG:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:FIMG:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.fimg,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:FIMG:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.fimg,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-01:FIMG:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-01:FIMG:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.fimg,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-01:FIMG:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.fimg,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-01:FIMG:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-01:FIMG:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:FIMG:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-01:FIMG:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:FIMG:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.fimg,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-01:FIMG:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.fimg,0,1)NDARRAY_PORT") - field(VAL, "FSCN1.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:FIMG:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.fimg,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:FIMG:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:FIMG:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:FIMG:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:FIMG:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.fimg,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:FIMG:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.fimg,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:FIMG:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:FIMG:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-01:FIMG:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-01:FIMG:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:FIMG:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-01:FIMG:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:FIMG:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-01:FIMG:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.fimg,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:FIMG:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.fimg,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-01:FIMG:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.fimg,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:FIMG:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:FIMG:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:FIMG:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-01:FIMG:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:FIMG:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:FIMG:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:FIMG:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:FIMG:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:FIMG:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:FIMG:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:FIMG:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:FIMG:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:FIMG:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:FIMG:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:FIMG:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:FIMG:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:FIMG:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:FIMG:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:FIMG:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-01:FIMG:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:FIMG:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.fimg,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-01:FIMG:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.fimg,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:FIMG:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:FIMG:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:FIMG:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:FIMG:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:FIMG:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-01:FIMG:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:FIMG:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:FIMG:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:FIMG:AsynIO") -{ - field(PORT, "FSCN1.fimg") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -# # File data format -record(mbbo, "S03SIM-EA-FSCN-01:FIMG:FileFormat") -{ - field(ZRST, "Auto") - field(ZRVL, "0") -} - -# # File data format from driver -record(mbbi, "S03SIM-EA-FSCN-01:FIMG:FileFormat_RBV") -{ - field(ZRST, "Auto") - field(ZRVL, "0") -} - -record(bo, "S03SIM-EA-FSCN-01:FIMG:AutoSave") -{ - field(VAL, "0") -} - -record(mbbo, "S03SIM-EA-FSCN-01:FIMG:FileWriteMode") -{ - field(VAL, "2") -} - -record(longout, "S03SIM-EA-FSCN-01:FIMG:NumCapture") -{ - field(VAL, "-1") -} - -# # FFMPEG Bitrate -record(ao, "S03SIM-EA-FSCN-01:FIMG:BITRATE") { - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.fimg 0)FFMPEG_BITRATE") - field(VAL, "10000000") - field(PINI, "YES") -} - -# # FFMPEG Bitrate from driver -record(ai, "S03SIM-EA-FSCN-01:FIMG:BITRATE_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.fimg 0)FFMPEG_BITRATE") -} - -# # FFMPEG Frames Per Second -record(ao, "S03SIM-EA-FSCN-01:FIMG:FPS") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg 0)FFMPEG_FPS") - field(VAL, "25") - field(PINI, "YES") -} - -# # FFMPEG Frames Per Second from driver -record(ai, "S03SIM-EA-FSCN-01:FIMG:FPS_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg 0)FFMPEG_FPS") -} - -# # FFMPEG Width -record(ao, "S03SIM-EA-FSCN-01:FIMG:WIDTH") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg 0)FFMPEG_WIDTH") - field(VAL, "640") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -# # FFMPEG Width from driver -record(ai, "S03SIM-EA-FSCN-01:FIMG:WIDTH_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg 0)FFMPEG_WIDTH") -} - -# # FFMPEG Height -record(ao, "S03SIM-EA-FSCN-01:FIMG:HEIGHT") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.fimg 0)FFMPEG_HEIGHT") - field(VAL, "480") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -# # FFMPEG Height from driver -record(ai, "S03SIM-EA-FSCN-01:FIMG:HEIGHT_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.fimg 0)FFMPEG_HEIGHT") -} -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % gui, FSCN2.fimg, edmtab, ffmpegFile.edl, P=S03SIM-EA-FSCN-02,R=:FIMG: - -# # \file -# # ffmpegFile wraps the ffmpeg compression libraries in an areaDetector plugin. -# # It works in much the same way as the other NDFile plugins. By default, it -# # will try to guess the file format from the file extension, but you can force -# # it to a particular file format with the FileFormat record. -# # \section ffmpegStream_setup Setup -# # - In the database, an instance of NDPluginBase is required, followed by an -# # instance of NDFile, then an instance of this template. -# # - In the startup scripts, call ffmpegFileConfigure() once per ffmpegStream -# # instance to setup the areadetector plugin -# # - see \ref build_instructions -# # \section ffmpegStream_screenshots Screenshots -# # \htmlinclude flashvideo.html -# # \image html ffmpegFileEdm.png "Edm screen for ffmpegFile" - -# This associates a BOY screen with the template -# % gui, FSCN2.fimg, boydetail,ffmpegServerApp_opi/fimg_detail.opi, P=S03SIM-EA-FSCN-02, R=:FIMG:, DESC=MPEG File -# % gui, FSCN2.fimg, boyembed, ffmpegServerApp_opi/fimg_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:FIMG:, DESC=MPEG File -# % gui, FSCN2.fimg, boyembed, ffmpegServerApp_opi/fimg_embed.opi, P=S03SIM-EA-FSCN-02, R=:FIMG:, DESC=MPEG File - -# Info -# % gui, FSCN2.fimg, groupHeading, Info -# % gui, FSCN2.fimg, readback, Port name, S03SIM-EA-FSCN-02:FIMG:PortName_RBV -# % gui, FSCN2.fimg, readback, Plugin type, S03SIM-EA-FSCN-02:FIMG:PluginType_RBV -# Input -# % gui, FSCN2.fimg, demandString, Input, S03SIM-EA-FSCN-02:FIMG:NDArrayPort -# % gui, FSCN2.fimg, readback, Input, S03SIM-EA-FSCN-02:FIMG:NDArrayPort_RBV - -# % gui, FSCN2.fimg, groupHeading, Callback -# % gui, FSCN2.fimg, enum, Callbacks, S03SIM-EA-FSCN-02:FIMG:EnableCallbacks -# % gui, FSCN2.fimg, statusbits, Callbacks, S03SIM-EA-FSCN-02:FIMG:EnableCallbacks_RBV -# % gui, FSCN2.fimg, demand, Min Callback Time, S03SIM-EA-FSCN-02:FIMG:MinCallbackTime -# % gui, FSCN2.fimg, readback, Min Callback Time, S03SIM-EA-FSCN-02:FIMG:MinCallbackTime_RBV -# % gui, FSCN2.fimg, enum, Block Callbacks, S03SIM-EA-FSCN-02:FIMG:BlockingCallbacks -# % gui, FSCN2.fimg, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:FIMG:BlockingCallbacks_RBV - -# % gui, FSCN2.fimg, groupHeading, Counters -# % gui, FSCN2.fimg, demand, Array Counter, S03SIM-EA-FSCN-02:FIMG:ArrayCounter -# % gui, FSCN2.fimg, readback, Array Counter, S03SIM-EA-FSCN-02:FIMG:ArrayCounter_RBV -# % gui, FSCN2.fimg, readback, Array Rate (fps), S03SIM-EA-FSCN-02:FIMG:ArrayRate_RBV -# % gui, FSCN2.fimg, readback, Queue Use, S03SIM-EA-FSCN-02:FIMG:QueueUse -# % gui, FSCN2.fimg, readback, Queue Size, S03SIM-EA-FSCN-02:FIMG:QueueSize -# % gui, FSCN2.fimg, demand, Dropped Arrays, S03SIM-EA-FSCN-02:FIMG:DroppedArrays -# % gui, FSCN2.fimg, readback, Dropped Arrays, S03SIM-EA-FSCN-02:FIMG:DroppedArrays_RBV - -# % gui, FSCN2.fimg, groupHeading, Array Settings -# % gui, FSCN2.fimg, readback, Num Dimensions, S03SIM-EA-FSCN-02:FIMG:NDimensions_RBV -# % gui, FSCN2.fimg, readback, Dim 0 Size, S03SIM-EA-FSCN-02:FIMG:ArraySize0_RBV -# % gui, FSCN2.fimg, readback, Dim 1 Size, S03SIM-EA-FSCN-02:FIMG:ArraySize1_RBV -# % gui, FSCN2.fimg, readback, Dim 2 Size, S03SIM-EA-FSCN-02:FIMG:ArraySize2_RBV -# % gui, FSCN2.fimg, readback, Input Data Type, S03SIM-EA-FSCN-02:FIMG:DataType_RBV -# % gui, FSCN2.fimg, readback, Colour Mode, S03SIM-EA-FSCN-02:FIMG:ColorMode_RBV -# % gui, FSCN2.fimg, readback, Bayer Pattern, S03SIM-EA-FSCN-02:FIMG:BayerPattern_RBV -# % gui, FSCN2.fimg, readback, Unique id, S03SIM-EA-FSCN-02:FIMG:UniqueId_RBV -# % gui, FSCN2.fimg, readback, Timestamp, S03SIM-EA-FSCN-02:FIMG:TimeStamp_RBV - -# File -# % gui, FSCN2.fimg, groupHeading, File -# % gui, FSCN2.fimg, demandString, File Path, S03SIM-EA-FSCN-02:FIMG:FilePath -# % gui, FSCN2.fimg, readback, File Path, S03SIM-EA-FSCN-02:FIMG:FilePath_RBV -# % gui, FSCN2.fimg, statusbits, File Path Exists, S03SIM-EA-FSCN-02:FIMG:FilePathExists_RBV -# % gui, FSCN2.fimg, demand, File Name, S03SIM-EA-FSCN-02:FIMG:FileName -# % gui, FSCN2.fimg, readback, File Name, S03SIM-EA-FSCN-02:FIMG:FileName_RBV -# % gui, FSCN2.fimg, demand, File Number, S03SIM-EA-FSCN-02:FIMG:FileNumber -# % gui, FSCN2.fimg, readback, File Number, S03SIM-EA-FSCN-02:FIMG:FileNumber_RBV -# % gui, FSCN2.fimg, enum, Auto Increment, S03SIM-EA-FSCN-02:FIMG:AutoIncrement -# % gui, FSCN2.fimg, statusbits, Auto Increment, S03SIM-EA-FSCN-02:FIMG:AutoIncrement_RBV -# % gui, FSCN2.fimg, demand, File Format, S03SIM-EA-FSCN-02:FIMG:FileTemplate -# % gui, FSCN2.fimg, readback, File Format, S03SIM-EA-FSCN-02:FIMG:FileTemplate_RBV -# % gui, FSCN2.fimg, demand, N to Capture, S03SIM-EA-FSCN-02:FIMG:NumCapture -# % gui, FSCN2.fimg, readback, N to Capture, S03SIM-EA-FSCN-02:FIMG:NumCapture_RBV -# % gui, FSCN2.fimg, readback, N Captured, S03SIM-EA-FSCN-02:FIMG:NumCaptured_RBV -# % gui, FSCN2.fimg, enum, Auto Save, S03SIM-EA-FSCN-02:FIMG:AutoSave -# % gui, FSCN2.fimg, statusbits, Auto Save , S03SIM-EA-FSCN-02:FIMG:AutoSave_RBV -# % gui, FSCN2.fimg, enum, Capture mode, S03SIM-EA-FSCN-02:FIMG:FileWriteMode -# % gui, FSCN2.fimg, readback, Capture mode, S03SIM-EA-FSCN-02:FIMG:FileWriteMode_RBV -# % gui, FSCN2.fimg, enum, Capture, S03SIM-EA-FSCN-02:FIMG:Capture -# % gui, FSCN2.fimg, readback, Capture, S03SIM-EA-FSCN-02:FIMG:Capture_RBV -# % gui, FSCN2.fimg, readback, Write Message, S03SIM-EA-FSCN-02:FIMG:WriteMessage -# % gui, FSCN2.fimg, readback, Write Status, S03SIM-EA-FSCN-02:FIMG:WriteStatus -# % gui, FSCN2.fimg, readback, Write Filename, S03SIM-EA-FSCN-02:FIMG:FullFileName_RBV -# % gui, FSCN2.fimg, enum, Lazy Open, S03SIM-EA-FSCN-02:FIMG:LazyOpen -# % gui, FSCN2.fimg, readback, Lazy Open, S03SIM-EA-FSCN-02:FIMG:LazyOpen_RBV -# % gui, FSCN2.fimg, demand, Temporary Suffix, S03SIM-EA-FSCN-02:FIMG:TempSuffix -# % gui, FSCN2.fimg, readback, Temporary Suffix, S03SIM-EA-FSCN-02:FIMG:TempSuffix_RBV -# % gui, FSCN2.fimg, demand, Create Directories, S03SIM-EA-FSCN-02:FIMG:CreateDirectory -# % gui, FSCN2.fimg, readback, Create Directories, S03SIM-EA-FSCN-02:FIMG:CreateDirectory_RBV - -# Video -# % gui, FSCN2.fimg, groupHeading, Video Settings -# % gui, FSCN2.fimg, demand, Bit Rate, S03SIM-EA-FSCN-02:FIMG:BITRATE -# % gui, FSCN2.fimg, readback, Bit Rate, S03SIM-EA-FSCN-02:FIMG:BITRATE_RBV -# % gui, FSCN2.fimg, demand, Frame Rate, S03SIM-EA-FSCN-02:FIMG:FPS -# % gui, FSCN2.fimg, readback, Frame Rate, S03SIM-EA-FSCN-02:FIMG:FPS_RBV -# % gui, FSCN2.fimg, demand, Width, S03SIM-EA-FSCN-02:FIMG:WIDTH -# % gui, FSCN2.fimg, readback, Width, S03SIM-EA-FSCN-02:FIMG:WIDTH_RBV -# % gui, FSCN2.fimg, demand, Height, S03SIM-EA-FSCN-02:FIMG:HEIGHT -# % gui, FSCN2.fimg, readback, Height, S03SIM-EA-FSCN-02:FIMG:HEIGHT_RBV -# Memory -# % gui, FSCN2.fimg, groupHeading, Memory -# % gui, FSCN2.fimg, readback, Max memory, S03SIM-EA-FSCN-02:FIMG:PoolMaxMem -# % gui, FSCN2.fimg, readback, Max buffers, S03SIM-EA-FSCN-02:FIMG:PoolMaxBuffers -# % gui, FSCN2.fimg, readback, Used memory, S03SIM-EA-FSCN-02:FIMG:PoolUsedMem -# % gui, FSCN2.fimg, readback, Allocated buffers, S03SIM-EA-FSCN-02:FIMG:PoolAllocBuffers -# % gui, FSCN2.fimg, readback, Free buffers, S03SIM-EA-FSCN-02:FIMG:PoolFreeBuffers - -#=================================================================# -# Template file: NDFile.template -# Database for NDFile driver, which saves files for NDArray data. -# Mark Rivers -# April 7, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -################################################################### -# These records control file I/O # -################################################################### - -# File path. -record(waveform, "S03SIM-EA-FSCN-02:FIMG:FilePath") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.fimg,0,1)FILE_PATH") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-02:FIMG:FilePath_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.fimg,0,1)FILE_PATH") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-EA-FSCN-02:FIMG:FilePathExists_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)FILE_PATH_EXISTS") - field(ZNAM, "No") - field(ZSV, "MAJOR") - field(ONAM, "Yes") - field(OSV, "NO_ALARM") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:FIMG:CreateDirectory") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)CREATE_DIR") - field(VAL, "0" ) - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:CreateDirectory_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)CREATE_DIR") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -# Filename -record(waveform, "S03SIM-EA-FSCN-02:FIMG:FileName") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.fimg,0,1)FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-02:FIMG:FileName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.fimg,0,1)FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:FIMG:FileNumber") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)FILE_NUMBER") - field(VAL, "1") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:FileNumber_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)FILE_NUMBER") - field(SCAN, "I/O Intr") -} - -# Autoincrement flag -record(bo, "S03SIM-EA-FSCN-02:FIMG:AutoIncrement") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)AUTO_INCREMENT") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:FIMG:AutoIncrement_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)AUTO_INCREMENT") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -# File template -record(waveform, "S03SIM-EA-FSCN-02:FIMG:FileTemplate") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.fimg,0,1)FILE_TEMPLATE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-02:FIMG:FileTemplate_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.fimg,0,1)FILE_TEMPLATE") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -# Full filename, including path -record(waveform, "S03SIM-EA-FSCN-02:FIMG:FullFileName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.fimg,0,1)FULL_FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "512") - field(SCAN, "I/O Intr") -} - -# Autosave flag -record(bo, "S03SIM-EA-FSCN-02:FIMG:AutoSave") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)AUTO_SAVE") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:FIMG:AutoSave_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)AUTO_SAVE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -# Write file -record(ai, "S03SIM-EA-FSCN-02:FIMG:WriteFile") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)WRITE_FILE") - field(ZNAM, "Done") - field(ONAM, "Write") -} - -record(bi, "S03SIM-EA-FSCN-02:FIMG:WriteFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)WRITE_FILE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Writing") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -# Read file -record(ai, "S03SIM-EA-FSCN-02:FIMG:ReadFile") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)READ_FILE") - field(ZNAM, "Done") - field(ONAM, "Read") -} - -record(bi, "S03SIM-EA-FSCN-02:FIMG:ReadFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)READ_FILE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Reading") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -# File data format -record(mbbo, "S03SIM-EA-FSCN-02:FIMG:FileFormat") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)FILE_FORMAT") - field(VAL, "0") - field(ZRST, "Undefined") - field(ZRVL, "0") - field(ONST, "Invalid") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:FIMG:FileFormat_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)FILE_FORMAT") - field(ZRST, "netCDF") - field(ZRVL, "0") - field(ONST, "Undefined") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -# File save mode -record(mbbo, "S03SIM-EA-FSCN-02:FIMG:FileWriteMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)WRITE_MODE") - field(VAL, "0") - field(ZRST, "Single") - field(ZRVL, "0") - field(ONST, "Capture") - field(ONVL, "1") - field(TWST, "Stream") - field(TWVL, "2") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:FIMG:FileWriteMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)WRITE_MODE") - field(ZRST, "Single") - field(ZRVL, "0") - field(ONST, "Capture") - field(ONVL, "1") - field(TWST, "Stream") - field(TWVL, "2") - field(SCAN, "I/O Intr") -} - -# Capture data -record(ai, "S03SIM-EA-FSCN-02:FIMG:Capture") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)CAPTURE") - field(ZNAM, "Done") - field(ONAM, "Capture") -} - -record(bi, "S03SIM-EA-FSCN-02:FIMG:Capture_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)CAPTURE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Capturing") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:FIMG:NumCapture") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)NUM_CAPTURE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:NumCapture_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)NUM_CAPTURE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:NumCaptured_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)NUM_CAPTURED") - field(SCAN, "I/O Intr") -} - -# Delete driver file flag -record(bo, "S03SIM-EA-FSCN-02:FIMG:DeleteDriverFile") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)DELETE_DRIVER_FILE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:FIMG:DeleteDriverFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)DELETE_DRIVER_FILE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-EA-FSCN-02:FIMG:WriteStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)WRITE_STATUS") - field(ZNAM, "Write OK") - field(ZSV, "NO_ALARM") - field(ONAM, "Write error") - field(OSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:FIMG:WriteMessage") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.fimg,0,1)WRITE_MESSAGE") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:FIMG:LazyOpen") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)FILE_LAZY_OPEN") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:FIMG:LazyOpen_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)FILE_LAZY_OPEN") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:FIMG:TempSuffix") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.fimg,0,1)FILE_TEMP_SUFFIX") - field(VAL, "") -} - -record(stringin, "S03SIM-EA-FSCN-02:FIMG:TempSuffix_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.fimg,0,1)FILE_TEMP_SUFFIX") - field(VAL, "") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:FIMG:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.fimg,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:FIMG:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.fimg,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:FIMG:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.fimg,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:FIMG:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.fimg,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:FIMG:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.fimg,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:FIMG:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.fimg,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:FIMG:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.fimg,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:FIMG:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.fimg,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:FIMG:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-02:FIMG:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:FIMG:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-02:FIMG:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:FIMG:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-02:FIMG:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-02:FIMG:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:FIMG:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:FIMG:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:FIMG:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-02:FIMG:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:FIMG:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:FIMG:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN2.fimg,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN2.fimg,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:FIMG:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:FIMG:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:FIMG:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-02:FIMG:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.fimg,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:FIMG:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:FIMG:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:FIMG:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:FIMG:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-02:FIMG:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:FIMG:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.fimg,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-02:FIMG:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:FIMG:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:FIMG:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:FIMG:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:FIMG:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:FIMG:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:FIMG:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:FIMG:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.fimg,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:FIMG:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.fimg,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-02:FIMG:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-02:FIMG:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.fimg,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-02:FIMG:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.fimg,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-02:FIMG:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-02:FIMG:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:FIMG:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-02:FIMG:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:FIMG:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.fimg,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-02:FIMG:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.fimg,0,1)NDARRAY_PORT") - field(VAL, "FSCN2.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:FIMG:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.fimg,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:FIMG:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:FIMG:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:FIMG:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:FIMG:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.fimg,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:FIMG:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.fimg,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:FIMG:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:FIMG:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-02:FIMG:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-02:FIMG:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:FIMG:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-02:FIMG:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:FIMG:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-02:FIMG:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.fimg,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:FIMG:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.fimg,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-02:FIMG:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.fimg,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:FIMG:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:FIMG:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:FIMG:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-02:FIMG:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:FIMG:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:FIMG:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:FIMG:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:FIMG:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:FIMG:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:FIMG:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:FIMG:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:FIMG:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:FIMG:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:FIMG:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:FIMG:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:FIMG:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:FIMG:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:FIMG:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:FIMG:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-02:FIMG:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:FIMG:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.fimg,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-02:FIMG:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.fimg,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:FIMG:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:FIMG:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:FIMG:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:FIMG:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:FIMG:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-02:FIMG:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:FIMG:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:FIMG:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:FIMG:AsynIO") -{ - field(PORT, "FSCN2.fimg") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -# # File data format -record(mbbo, "S03SIM-EA-FSCN-02:FIMG:FileFormat") -{ - field(ZRST, "Auto") - field(ZRVL, "0") -} - -# # File data format from driver -record(mbbi, "S03SIM-EA-FSCN-02:FIMG:FileFormat_RBV") -{ - field(ZRST, "Auto") - field(ZRVL, "0") -} - -record(bo, "S03SIM-EA-FSCN-02:FIMG:AutoSave") -{ - field(VAL, "0") -} - -record(mbbo, "S03SIM-EA-FSCN-02:FIMG:FileWriteMode") -{ - field(VAL, "2") -} - -record(longout, "S03SIM-EA-FSCN-02:FIMG:NumCapture") -{ - field(VAL, "-1") -} - -# # FFMPEG Bitrate -record(ao, "S03SIM-EA-FSCN-02:FIMG:BITRATE") { - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.fimg 0)FFMPEG_BITRATE") - field(VAL, "10000000") - field(PINI, "YES") -} - -# # FFMPEG Bitrate from driver -record(ai, "S03SIM-EA-FSCN-02:FIMG:BITRATE_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.fimg 0)FFMPEG_BITRATE") -} - -# # FFMPEG Frames Per Second -record(ao, "S03SIM-EA-FSCN-02:FIMG:FPS") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg 0)FFMPEG_FPS") - field(VAL, "25") - field(PINI, "YES") -} - -# # FFMPEG Frames Per Second from driver -record(ai, "S03SIM-EA-FSCN-02:FIMG:FPS_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg 0)FFMPEG_FPS") -} - -# # FFMPEG Width -record(ao, "S03SIM-EA-FSCN-02:FIMG:WIDTH") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg 0)FFMPEG_WIDTH") - field(VAL, "640") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -# # FFMPEG Width from driver -record(ai, "S03SIM-EA-FSCN-02:FIMG:WIDTH_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg 0)FFMPEG_WIDTH") -} - -# # FFMPEG Height -record(ao, "S03SIM-EA-FSCN-02:FIMG:HEIGHT") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.fimg 0)FFMPEG_HEIGHT") - field(VAL, "480") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -# # FFMPEG Height from driver -record(ai, "S03SIM-EA-FSCN-02:FIMG:HEIGHT_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.fimg 0)FFMPEG_HEIGHT") -} -#=================================================================# -# Template file: NDFileTIFF.template -# Database for NDFileTIFF driver, which saves NDArray data -# in the TIFF file format -# Mark Rivers -# May 10, 2009 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name - -# This associates the template with an edm screen -# % gui, OAV.tiff, edmtab, NDFileTIFF.edl, P=S03SIM-DI-OAV-01,R=:TIFF: - -# This associates a BOY screen with the template -# % gui, OAV.tiff, boydetail,ADApp_opi/dls/tiff_detail.opi, P=S03SIM-DI-OAV-01, R=:TIFF:, DESC=TIFF File -# % gui, OAV.tiff, boyembed, ADApp_opi/dls/tiff_embed_box.opi, P=S03SIM-DI-OAV-01, R=:TIFF:, DESC=TIFF File -# % gui, OAV.tiff, boyembed, ADApp_opi/dls/tiff_embed.opi, P=S03SIM-DI-OAV-01, R=:TIFF:, DESC=TIFF File - -# Info -# % gui, OAV.tiff, groupHeading, Info -# % gui, OAV.tiff, readback, Port name, S03SIM-DI-OAV-01:TIFF:PortName_RBV -# % gui, OAV.tiff, readback, Plugin type, S03SIM-DI-OAV-01:TIFF:PluginType_RBV -# Input -# % gui, OAV.tiff, demandString, Input, S03SIM-DI-OAV-01:TIFF:NDArrayPort -# % gui, OAV.tiff, readback, Input, S03SIM-DI-OAV-01:TIFF:NDArrayPort_RBV - -# % gui, OAV.tiff, groupHeading, Callback -# % gui, OAV.tiff, enum, Callbacks, S03SIM-DI-OAV-01:TIFF:EnableCallbacks -# % gui, OAV.tiff, statusbits, Callbacks, S03SIM-DI-OAV-01:TIFF:EnableCallbacks_RBV -# % gui, OAV.tiff, demand, Min Callback Time, S03SIM-DI-OAV-01:TIFF:MinCallbackTime -# % gui, OAV.tiff, readback, Min Callback Time, S03SIM-DI-OAV-01:TIFF:MinCallbackTime_RBV -# % gui, OAV.tiff, enum, Block Callbacks, S03SIM-DI-OAV-01:TIFF:BlockingCallbacks -# % gui, OAV.tiff, statusbits, Block Callbacks, S03SIM-DI-OAV-01:TIFF:BlockingCallbacks_RBV - -# % gui, OAV.tiff, groupHeading, Counters -# % gui, OAV.tiff, demand, Array Counter, S03SIM-DI-OAV-01:TIFF:ArrayCounter -# % gui, OAV.tiff, readback, Array Counter, S03SIM-DI-OAV-01:TIFF:ArrayCounter_RBV -# % gui, OAV.tiff, readback, Array Rate (fps), S03SIM-DI-OAV-01:TIFF:ArrayRate_RBV -# % gui, OAV.tiff, readback, Queue Use, S03SIM-DI-OAV-01:TIFF:QueueUse -# % gui, OAV.tiff, readback, Queue Size, S03SIM-DI-OAV-01:TIFF:QueueSize -# % gui, OAV.tiff, demand, Dropped Arrays, S03SIM-DI-OAV-01:TIFF:DroppedArrays -# % gui, OAV.tiff, readback, Dropped Arrays, S03SIM-DI-OAV-01:TIFF:DroppedArrays_RBV - -# % gui, OAV.tiff, groupHeading, Array Settings -# % gui, OAV.tiff, readback, Num Dimensions, S03SIM-DI-OAV-01:TIFF:NDimensions_RBV -# % gui, OAV.tiff, readback, Dim 0 Size, S03SIM-DI-OAV-01:TIFF:ArraySize0_RBV -# % gui, OAV.tiff, readback, Dim 1 Size, S03SIM-DI-OAV-01:TIFF:ArraySize1_RBV -# % gui, OAV.tiff, readback, Dim 2 Size, S03SIM-DI-OAV-01:TIFF:ArraySize2_RBV -# % gui, OAV.tiff, readback, Input Data Type, S03SIM-DI-OAV-01:TIFF:DataType_RBV -# % gui, OAV.tiff, readback, Colour Mode, S03SIM-DI-OAV-01:TIFF:ColorMode_RBV -# % gui, OAV.tiff, readback, Bayer Pattern, S03SIM-DI-OAV-01:TIFF:BayerPattern_RBV -# % gui, OAV.tiff, readback, Unique id, S03SIM-DI-OAV-01:TIFF:UniqueId_RBV -# % gui, OAV.tiff, readback, Timestamp, S03SIM-DI-OAV-01:TIFF:TimeStamp_RBV -# File -# % gui, OAV.tiff, groupHeading, File -# % gui, OAV.tiff, demandString, File Path, S03SIM-DI-OAV-01:TIFF:FilePath -# % gui, OAV.tiff, readback, File Path, S03SIM-DI-OAV-01:TIFF:FilePath_RBV -# % gui, OAV.tiff, statusbits, File Path Exists, S03SIM-DI-OAV-01:TIFF:FilePathExists_RBV -# % gui, OAV.tiff, demand, File Name, S03SIM-DI-OAV-01:TIFF:FileName -# % gui, OAV.tiff, readback, File Name, S03SIM-DI-OAV-01:TIFF:FileName_RBV -# % gui, OAV.tiff, demand, File Number, S03SIM-DI-OAV-01:TIFF:FileNumber -# % gui, OAV.tiff, readback, File Number, S03SIM-DI-OAV-01:TIFF:FileNumber_RBV -# % gui, OAV.tiff, enum, Auto Increment, S03SIM-DI-OAV-01:TIFF:AutoIncrement -# % gui, OAV.tiff, statusbits, Auto Increment, S03SIM-DI-OAV-01:TIFF:AutoIncrement_RBV -# % gui, OAV.tiff, demand, File Format, S03SIM-DI-OAV-01:TIFF:FileTemplate -# % gui, OAV.tiff, readback, File Format, S03SIM-DI-OAV-01:TIFF:FileTemplate_RBV -# % gui, OAV.tiff, demand, N to Capture, S03SIM-DI-OAV-01:TIFF:NumCapture -# % gui, OAV.tiff, readback, N to Capture, S03SIM-DI-OAV-01:TIFF:NumCapture_RBV -# % gui, OAV.tiff, readback, N Captured, S03SIM-DI-OAV-01:TIFF:NumCaptured_RBV -# % gui, OAV.tiff, enum, Auto Save, S03SIM-DI-OAV-01:TIFF:AutoSave -# % gui, OAV.tiff, statusbits, Auto Save , S03SIM-DI-OAV-01:TIFF:AutoSave_RBV -# % gui, OAV.tiff, enum, Capture mode, S03SIM-DI-OAV-01:TIFF:FileWriteMode -# % gui, OAV.tiff, readback, Capture mode, S03SIM-DI-OAV-01:TIFF:FileWriteMode_RBV -# % gui, OAV.tiff, enum, Capture, S03SIM-DI-OAV-01:TIFF:Capture -# % gui, OAV.tiff, readback, Capture, S03SIM-DI-OAV-01:TIFF:Capture_RBV -# % gui, OAV.tiff, readback, Write Message, S03SIM-DI-OAV-01:TIFF:WriteMessage -# % gui, OAV.tiff, readback, Write Status, S03SIM-DI-OAV-01:TIFF:WriteStatus -# % gui, OAV.tiff, readback, Write Filename, S03SIM-DI-OAV-01:TIFF:FullFileName_RBV -# % gui, OAV.tiff, enum, Lazy Open, S03SIM-DI-OAV-01:TIFF:LazyOpen -# % gui, OAV.tiff, readback, Lazy Open, S03SIM-DI-OAV-01:TIFF:LazyOpen_RBV -# % gui, OAV.tiff, demand, Temporary Suffix, S03SIM-DI-OAV-01:TIFF:TempSuffix -# % gui, OAV.tiff, readback, Temporary Suffix, S03SIM-DI-OAV-01:TIFF:TempSuffix_RBV -# % gui, OAV.tiff, demand, Create Directories, S03SIM-DI-OAV-01:TIFF:CreateDirectory -# % gui, OAV.tiff, readback, Create Directories, S03SIM-DI-OAV-01:TIFF:CreateDirectory_RBV -# Memory -# % gui, OAV.tiff, groupHeading, Memory -# % gui, OAV.tiff, readback, Max memory, S03SIM-DI-OAV-01:TIFF:PoolMaxMem -# % gui, OAV.tiff, readback, Max buffers, S03SIM-DI-OAV-01:TIFF:PoolMaxBuffers -# % gui, OAV.tiff, readback, Used memory, S03SIM-DI-OAV-01:TIFF:PoolUsedMem -# % gui, OAV.tiff, readback, Allocated buffers, S03SIM-DI-OAV-01:TIFF:PoolAllocBuffers -# % gui, OAV.tiff, readback, Free buffers, S03SIM-DI-OAV-01:TIFF:PoolFreeBuffers -#=================================================================# -# Template file: NDFile.template -# Database for NDFile driver, which saves files for NDArray data. -# Mark Rivers -# April 7, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -################################################################### -# These records control file I/O # -################################################################### - -# File path. -record(waveform, "S03SIM-DI-OAV-01:TIFF:FilePath") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.tiff,0,1)FILE_PATH") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-DI-OAV-01:TIFF:FilePath_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.tiff,0,1)FILE_PATH") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-DI-OAV-01:TIFF:FilePathExists_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)FILE_PATH_EXISTS") - field(ZNAM, "No") - field(ZSV, "MAJOR") - field(ONAM, "Yes") - field(OSV, "NO_ALARM") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:TIFF:CreateDirectory") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)CREATE_DIR") - field(VAL, "0" ) - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:CreateDirectory_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)CREATE_DIR") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -# Filename -record(waveform, "S03SIM-DI-OAV-01:TIFF:FileName") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.tiff,0,1)FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-DI-OAV-01:TIFF:FileName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.tiff,0,1)FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:TIFF:FileNumber") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)FILE_NUMBER") - field(VAL, "1") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:FileNumber_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)FILE_NUMBER") - field(SCAN, "I/O Intr") -} - -# Autoincrement flag -record(bo, "S03SIM-DI-OAV-01:TIFF:AutoIncrement") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)AUTO_INCREMENT") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:TIFF:AutoIncrement_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)AUTO_INCREMENT") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -# File template -record(waveform, "S03SIM-DI-OAV-01:TIFF:FileTemplate") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.tiff,0,1)FILE_TEMPLATE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-DI-OAV-01:TIFF:FileTemplate_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.tiff,0,1)FILE_TEMPLATE") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -# Full filename, including path -record(waveform, "S03SIM-DI-OAV-01:TIFF:FullFileName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.tiff,0,1)FULL_FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "512") - field(SCAN, "I/O Intr") -} - -# Autosave flag -record(bo, "S03SIM-DI-OAV-01:TIFF:AutoSave") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)AUTO_SAVE") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:TIFF:AutoSave_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)AUTO_SAVE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -# Write file -record(ai, "S03SIM-DI-OAV-01:TIFF:WriteFile") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)WRITE_FILE") - field(ZNAM, "Done") - field(ONAM, "Write") -} - -record(bi, "S03SIM-DI-OAV-01:TIFF:WriteFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)WRITE_FILE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Writing") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -# Read file -record(ai, "S03SIM-DI-OAV-01:TIFF:ReadFile") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)READ_FILE") - field(ZNAM, "Done") - field(ONAM, "Read") -} - -record(bi, "S03SIM-DI-OAV-01:TIFF:ReadFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)READ_FILE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Reading") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -# File data format -record(mbbo, "S03SIM-DI-OAV-01:TIFF:FileFormat") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)FILE_FORMAT") - field(VAL, "0") - field(ZRST, "Undefined") - field(ZRVL, "0") - field(ONST, "Invalid") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:TIFF:FileFormat_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)FILE_FORMAT") - field(ZRST, "netCDF") - field(ZRVL, "0") - field(ONST, "Undefined") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -# File save mode -record(mbbo, "S03SIM-DI-OAV-01:TIFF:FileWriteMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)WRITE_MODE") - field(VAL, "0") - field(ZRST, "Single") - field(ZRVL, "0") - field(ONST, "Capture") - field(ONVL, "1") - field(TWST, "Stream") - field(TWVL, "2") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:TIFF:FileWriteMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)WRITE_MODE") - field(ZRST, "Single") - field(ZRVL, "0") - field(ONST, "Capture") - field(ONVL, "1") - field(TWST, "Stream") - field(TWVL, "2") - field(SCAN, "I/O Intr") -} - -# Capture data -record(ai, "S03SIM-DI-OAV-01:TIFF:Capture") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)CAPTURE") - field(ZNAM, "Done") - field(ONAM, "Capture") -} - -record(bi, "S03SIM-DI-OAV-01:TIFF:Capture_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)CAPTURE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Capturing") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:TIFF:NumCapture") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)NUM_CAPTURE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:NumCapture_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)NUM_CAPTURE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:NumCaptured_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)NUM_CAPTURED") - field(SCAN, "I/O Intr") -} - -# Delete driver file flag -record(bo, "S03SIM-DI-OAV-01:TIFF:DeleteDriverFile") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)DELETE_DRIVER_FILE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:TIFF:DeleteDriverFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)DELETE_DRIVER_FILE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-DI-OAV-01:TIFF:WriteStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)WRITE_STATUS") - field(ZNAM, "Write OK") - field(ZSV, "NO_ALARM") - field(ONAM, "Write error") - field(OSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:TIFF:WriteMessage") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.tiff,0,1)WRITE_MESSAGE") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:TIFF:LazyOpen") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)FILE_LAZY_OPEN") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:TIFF:LazyOpen_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)FILE_LAZY_OPEN") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:TIFF:TempSuffix") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.tiff,0,1)FILE_TEMP_SUFFIX") - field(VAL, "") -} - -record(stringin, "S03SIM-DI-OAV-01:TIFF:TempSuffix_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.tiff,0,1)FILE_TEMP_SUFFIX") - field(VAL, "") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:TIFF:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.tiff,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:TIFF:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.tiff,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:TIFF:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.tiff,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:TIFF:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.tiff,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:TIFF:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.tiff,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:TIFF:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.tiff,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:TIFF:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.tiff,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:TIFF:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.tiff,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:TIFF:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:TIFF:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:TIFF:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:TIFF:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:TIFF:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:TIFF:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:TIFF:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:TIFF:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:TIFF:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:TIFF:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:TIFF:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:TIFF:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:TIFF:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.tiff,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.tiff,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:TIFF:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:TIFF:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:TIFF:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:TIFF:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.tiff,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:TIFF:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:TIFF:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:TIFF:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:TIFF:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:TIFF:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:TIFF:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.tiff,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:TIFF:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:TIFF:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:TIFF:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:TIFF:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:TIFF:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:TIFF:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:TIFF:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:TIFF:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.tiff,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:TIFF:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.tiff,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:TIFF:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-DI-OAV-01:TIFF:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.tiff,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-DI-OAV-01:TIFF:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.tiff,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:PoolFreeBuffers") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:PoolUsedBuffers") -} - -record(calc, "S03SIM-DI-OAV-01:TIFF:PoolUsedBuffers") -{ - field(INPA, "S03SIM-DI-OAV-01:TIFF:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:TIFF:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-DI-OAV-01:TIFF:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:TIFF:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.tiff,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:TIFF:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.tiff,0,1)NDARRAY_PORT") - field(VAL, "OAV.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:TIFF:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.tiff,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:TIFF:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:TIFF:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:TIFF:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:TIFF:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.tiff,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:TIFF:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.tiff,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:TIFF:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:TIFF:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-DI-OAV-01:TIFF:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-DI-OAV-01:TIFF:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:TIFF:MinCallbackTime PP") -} - -record(calc, "S03SIM-DI-OAV-01:TIFF:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:TIFF:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-DI-OAV-01:TIFF:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.tiff,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:TIFF:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.tiff,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:TIFF:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.tiff,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:TIFF:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:TIFF:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:TIFF:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-DI-OAV-01:TIFF:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:TIFF:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:TIFF:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:TIFF:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:TIFF:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:TIFF:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:TIFF:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:TIFF:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:TIFF:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:TIFF:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:TIFF:QueueUse.HIHI") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:TIFF:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:TIFF:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:TIFF:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-DI-OAV-01:TIFF:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:TIFF:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-DI-OAV-01:TIFF:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:TIFF:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.tiff,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-DI-OAV-01:TIFF:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.tiff,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:TIFF:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:TIFF:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:TIFF:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:TIFF:SortSize") - field(OUT, "S03SIM-DI-OAV-01:TIFF:SortFree.LOW") -} - -record(longout, "S03SIM-DI-OAV-01:TIFF:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:TIFF:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.tiff,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:TIFF:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.tiff,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:TIFF:AsynIO") -{ - field(PORT, "OAV.tiff") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -# We replace some fields in records defined in NDFile.template -# File data format -record(mbbo, "S03SIM-DI-OAV-01:TIFF:FileFormat") -{ - field(ZRST, "TIFF") - field(ZRVL, "0") - field(ONST, "Invalid") - field(ONVL, "1") -} - -record(mbbi, "S03SIM-DI-OAV-01:TIFF:FileFormat_RBV") -{ - field(ZRST, "TIFF") - field(ZRVL, "0") - field(ONST, "Undefined") - field(ONVL, "1") -} - -#=================================================================# -# Template file: NDFileTIFF.template -# Database for NDFileTIFF driver, which saves NDArray data -# in the TIFF file format -# Mark Rivers -# May 10, 2009 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name - -# This associates the template with an edm screen -# % gui, FSCN1.tiff, edmtab, NDFileTIFF.edl, P=S03SIM-EA-FSCN-01,R=:TIFF: - -# This associates a BOY screen with the template -# % gui, FSCN1.tiff, boydetail,ADApp_opi/dls/tiff_detail.opi, P=S03SIM-EA-FSCN-01, R=:TIFF:, DESC=TIFF File -# % gui, FSCN1.tiff, boyembed, ADApp_opi/dls/tiff_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:TIFF:, DESC=TIFF File -# % gui, FSCN1.tiff, boyembed, ADApp_opi/dls/tiff_embed.opi, P=S03SIM-EA-FSCN-01, R=:TIFF:, DESC=TIFF File - -# Info -# % gui, FSCN1.tiff, groupHeading, Info -# % gui, FSCN1.tiff, readback, Port name, S03SIM-EA-FSCN-01:TIFF:PortName_RBV -# % gui, FSCN1.tiff, readback, Plugin type, S03SIM-EA-FSCN-01:TIFF:PluginType_RBV -# Input -# % gui, FSCN1.tiff, demandString, Input, S03SIM-EA-FSCN-01:TIFF:NDArrayPort -# % gui, FSCN1.tiff, readback, Input, S03SIM-EA-FSCN-01:TIFF:NDArrayPort_RBV - -# % gui, FSCN1.tiff, groupHeading, Callback -# % gui, FSCN1.tiff, enum, Callbacks, S03SIM-EA-FSCN-01:TIFF:EnableCallbacks -# % gui, FSCN1.tiff, statusbits, Callbacks, S03SIM-EA-FSCN-01:TIFF:EnableCallbacks_RBV -# % gui, FSCN1.tiff, demand, Min Callback Time, S03SIM-EA-FSCN-01:TIFF:MinCallbackTime -# % gui, FSCN1.tiff, readback, Min Callback Time, S03SIM-EA-FSCN-01:TIFF:MinCallbackTime_RBV -# % gui, FSCN1.tiff, enum, Block Callbacks, S03SIM-EA-FSCN-01:TIFF:BlockingCallbacks -# % gui, FSCN1.tiff, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:TIFF:BlockingCallbacks_RBV - -# % gui, FSCN1.tiff, groupHeading, Counters -# % gui, FSCN1.tiff, demand, Array Counter, S03SIM-EA-FSCN-01:TIFF:ArrayCounter -# % gui, FSCN1.tiff, readback, Array Counter, S03SIM-EA-FSCN-01:TIFF:ArrayCounter_RBV -# % gui, FSCN1.tiff, readback, Array Rate (fps), S03SIM-EA-FSCN-01:TIFF:ArrayRate_RBV -# % gui, FSCN1.tiff, readback, Queue Use, S03SIM-EA-FSCN-01:TIFF:QueueUse -# % gui, FSCN1.tiff, readback, Queue Size, S03SIM-EA-FSCN-01:TIFF:QueueSize -# % gui, FSCN1.tiff, demand, Dropped Arrays, S03SIM-EA-FSCN-01:TIFF:DroppedArrays -# % gui, FSCN1.tiff, readback, Dropped Arrays, S03SIM-EA-FSCN-01:TIFF:DroppedArrays_RBV - -# % gui, FSCN1.tiff, groupHeading, Array Settings -# % gui, FSCN1.tiff, readback, Num Dimensions, S03SIM-EA-FSCN-01:TIFF:NDimensions_RBV -# % gui, FSCN1.tiff, readback, Dim 0 Size, S03SIM-EA-FSCN-01:TIFF:ArraySize0_RBV -# % gui, FSCN1.tiff, readback, Dim 1 Size, S03SIM-EA-FSCN-01:TIFF:ArraySize1_RBV -# % gui, FSCN1.tiff, readback, Dim 2 Size, S03SIM-EA-FSCN-01:TIFF:ArraySize2_RBV -# % gui, FSCN1.tiff, readback, Input Data Type, S03SIM-EA-FSCN-01:TIFF:DataType_RBV -# % gui, FSCN1.tiff, readback, Colour Mode, S03SIM-EA-FSCN-01:TIFF:ColorMode_RBV -# % gui, FSCN1.tiff, readback, Bayer Pattern, S03SIM-EA-FSCN-01:TIFF:BayerPattern_RBV -# % gui, FSCN1.tiff, readback, Unique id, S03SIM-EA-FSCN-01:TIFF:UniqueId_RBV -# % gui, FSCN1.tiff, readback, Timestamp, S03SIM-EA-FSCN-01:TIFF:TimeStamp_RBV -# File -# % gui, FSCN1.tiff, groupHeading, File -# % gui, FSCN1.tiff, demandString, File Path, S03SIM-EA-FSCN-01:TIFF:FilePath -# % gui, FSCN1.tiff, readback, File Path, S03SIM-EA-FSCN-01:TIFF:FilePath_RBV -# % gui, FSCN1.tiff, statusbits, File Path Exists, S03SIM-EA-FSCN-01:TIFF:FilePathExists_RBV -# % gui, FSCN1.tiff, demand, File Name, S03SIM-EA-FSCN-01:TIFF:FileName -# % gui, FSCN1.tiff, readback, File Name, S03SIM-EA-FSCN-01:TIFF:FileName_RBV -# % gui, FSCN1.tiff, demand, File Number, S03SIM-EA-FSCN-01:TIFF:FileNumber -# % gui, FSCN1.tiff, readback, File Number, S03SIM-EA-FSCN-01:TIFF:FileNumber_RBV -# % gui, FSCN1.tiff, enum, Auto Increment, S03SIM-EA-FSCN-01:TIFF:AutoIncrement -# % gui, FSCN1.tiff, statusbits, Auto Increment, S03SIM-EA-FSCN-01:TIFF:AutoIncrement_RBV -# % gui, FSCN1.tiff, demand, File Format, S03SIM-EA-FSCN-01:TIFF:FileTemplate -# % gui, FSCN1.tiff, readback, File Format, S03SIM-EA-FSCN-01:TIFF:FileTemplate_RBV -# % gui, FSCN1.tiff, demand, N to Capture, S03SIM-EA-FSCN-01:TIFF:NumCapture -# % gui, FSCN1.tiff, readback, N to Capture, S03SIM-EA-FSCN-01:TIFF:NumCapture_RBV -# % gui, FSCN1.tiff, readback, N Captured, S03SIM-EA-FSCN-01:TIFF:NumCaptured_RBV -# % gui, FSCN1.tiff, enum, Auto Save, S03SIM-EA-FSCN-01:TIFF:AutoSave -# % gui, FSCN1.tiff, statusbits, Auto Save , S03SIM-EA-FSCN-01:TIFF:AutoSave_RBV -# % gui, FSCN1.tiff, enum, Capture mode, S03SIM-EA-FSCN-01:TIFF:FileWriteMode -# % gui, FSCN1.tiff, readback, Capture mode, S03SIM-EA-FSCN-01:TIFF:FileWriteMode_RBV -# % gui, FSCN1.tiff, enum, Capture, S03SIM-EA-FSCN-01:TIFF:Capture -# % gui, FSCN1.tiff, readback, Capture, S03SIM-EA-FSCN-01:TIFF:Capture_RBV -# % gui, FSCN1.tiff, readback, Write Message, S03SIM-EA-FSCN-01:TIFF:WriteMessage -# % gui, FSCN1.tiff, readback, Write Status, S03SIM-EA-FSCN-01:TIFF:WriteStatus -# % gui, FSCN1.tiff, readback, Write Filename, S03SIM-EA-FSCN-01:TIFF:FullFileName_RBV -# % gui, FSCN1.tiff, enum, Lazy Open, S03SIM-EA-FSCN-01:TIFF:LazyOpen -# % gui, FSCN1.tiff, readback, Lazy Open, S03SIM-EA-FSCN-01:TIFF:LazyOpen_RBV -# % gui, FSCN1.tiff, demand, Temporary Suffix, S03SIM-EA-FSCN-01:TIFF:TempSuffix -# % gui, FSCN1.tiff, readback, Temporary Suffix, S03SIM-EA-FSCN-01:TIFF:TempSuffix_RBV -# % gui, FSCN1.tiff, demand, Create Directories, S03SIM-EA-FSCN-01:TIFF:CreateDirectory -# % gui, FSCN1.tiff, readback, Create Directories, S03SIM-EA-FSCN-01:TIFF:CreateDirectory_RBV -# Memory -# % gui, FSCN1.tiff, groupHeading, Memory -# % gui, FSCN1.tiff, readback, Max memory, S03SIM-EA-FSCN-01:TIFF:PoolMaxMem -# % gui, FSCN1.tiff, readback, Max buffers, S03SIM-EA-FSCN-01:TIFF:PoolMaxBuffers -# % gui, FSCN1.tiff, readback, Used memory, S03SIM-EA-FSCN-01:TIFF:PoolUsedMem -# % gui, FSCN1.tiff, readback, Allocated buffers, S03SIM-EA-FSCN-01:TIFF:PoolAllocBuffers -# % gui, FSCN1.tiff, readback, Free buffers, S03SIM-EA-FSCN-01:TIFF:PoolFreeBuffers -#=================================================================# -# Template file: NDFile.template -# Database for NDFile driver, which saves files for NDArray data. -# Mark Rivers -# April 7, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -################################################################### -# These records control file I/O # -################################################################### - -# File path. -record(waveform, "S03SIM-EA-FSCN-01:TIFF:FilePath") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.tiff,0,1)FILE_PATH") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-01:TIFF:FilePath_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.tiff,0,1)FILE_PATH") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-EA-FSCN-01:TIFF:FilePathExists_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)FILE_PATH_EXISTS") - field(ZNAM, "No") - field(ZSV, "MAJOR") - field(ONAM, "Yes") - field(OSV, "NO_ALARM") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:TIFF:CreateDirectory") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)CREATE_DIR") - field(VAL, "0" ) - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:CreateDirectory_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)CREATE_DIR") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -# Filename -record(waveform, "S03SIM-EA-FSCN-01:TIFF:FileName") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.tiff,0,1)FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-01:TIFF:FileName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.tiff,0,1)FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:TIFF:FileNumber") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)FILE_NUMBER") - field(VAL, "1") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:FileNumber_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)FILE_NUMBER") - field(SCAN, "I/O Intr") -} - -# Autoincrement flag -record(bo, "S03SIM-EA-FSCN-01:TIFF:AutoIncrement") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)AUTO_INCREMENT") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:TIFF:AutoIncrement_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)AUTO_INCREMENT") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -# File template -record(waveform, "S03SIM-EA-FSCN-01:TIFF:FileTemplate") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.tiff,0,1)FILE_TEMPLATE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-01:TIFF:FileTemplate_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.tiff,0,1)FILE_TEMPLATE") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -# Full filename, including path -record(waveform, "S03SIM-EA-FSCN-01:TIFF:FullFileName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.tiff,0,1)FULL_FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "512") - field(SCAN, "I/O Intr") -} - -# Autosave flag -record(bo, "S03SIM-EA-FSCN-01:TIFF:AutoSave") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)AUTO_SAVE") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:TIFF:AutoSave_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)AUTO_SAVE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -# Write file -record(ai, "S03SIM-EA-FSCN-01:TIFF:WriteFile") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)WRITE_FILE") - field(ZNAM, "Done") - field(ONAM, "Write") -} - -record(bi, "S03SIM-EA-FSCN-01:TIFF:WriteFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)WRITE_FILE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Writing") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -# Read file -record(ai, "S03SIM-EA-FSCN-01:TIFF:ReadFile") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)READ_FILE") - field(ZNAM, "Done") - field(ONAM, "Read") -} - -record(bi, "S03SIM-EA-FSCN-01:TIFF:ReadFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)READ_FILE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Reading") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -# File data format -record(mbbo, "S03SIM-EA-FSCN-01:TIFF:FileFormat") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)FILE_FORMAT") - field(VAL, "0") - field(ZRST, "Undefined") - field(ZRVL, "0") - field(ONST, "Invalid") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:TIFF:FileFormat_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)FILE_FORMAT") - field(ZRST, "netCDF") - field(ZRVL, "0") - field(ONST, "Undefined") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -# File save mode -record(mbbo, "S03SIM-EA-FSCN-01:TIFF:FileWriteMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)WRITE_MODE") - field(VAL, "0") - field(ZRST, "Single") - field(ZRVL, "0") - field(ONST, "Capture") - field(ONVL, "1") - field(TWST, "Stream") - field(TWVL, "2") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:TIFF:FileWriteMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)WRITE_MODE") - field(ZRST, "Single") - field(ZRVL, "0") - field(ONST, "Capture") - field(ONVL, "1") - field(TWST, "Stream") - field(TWVL, "2") - field(SCAN, "I/O Intr") -} - -# Capture data -record(ai, "S03SIM-EA-FSCN-01:TIFF:Capture") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)CAPTURE") - field(ZNAM, "Done") - field(ONAM, "Capture") -} - -record(bi, "S03SIM-EA-FSCN-01:TIFF:Capture_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)CAPTURE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Capturing") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:TIFF:NumCapture") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)NUM_CAPTURE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:NumCapture_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)NUM_CAPTURE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:NumCaptured_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)NUM_CAPTURED") - field(SCAN, "I/O Intr") -} - -# Delete driver file flag -record(bo, "S03SIM-EA-FSCN-01:TIFF:DeleteDriverFile") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)DELETE_DRIVER_FILE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:TIFF:DeleteDriverFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)DELETE_DRIVER_FILE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-EA-FSCN-01:TIFF:WriteStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)WRITE_STATUS") - field(ZNAM, "Write OK") - field(ZSV, "NO_ALARM") - field(ONAM, "Write error") - field(OSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:TIFF:WriteMessage") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.tiff,0,1)WRITE_MESSAGE") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:TIFF:LazyOpen") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)FILE_LAZY_OPEN") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:TIFF:LazyOpen_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)FILE_LAZY_OPEN") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:TIFF:TempSuffix") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.tiff,0,1)FILE_TEMP_SUFFIX") - field(VAL, "") -} - -record(stringin, "S03SIM-EA-FSCN-01:TIFF:TempSuffix_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.tiff,0,1)FILE_TEMP_SUFFIX") - field(VAL, "") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:TIFF:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.tiff,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:TIFF:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.tiff,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:TIFF:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.tiff,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:TIFF:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.tiff,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:TIFF:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.tiff,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:TIFF:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.tiff,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:TIFF:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.tiff,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:TIFF:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.tiff,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:TIFF:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-01:TIFF:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:TIFF:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-01:TIFF:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:TIFF:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-01:TIFF:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-01:TIFF:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:TIFF:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:TIFF:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:TIFF:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-01:TIFF:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:TIFF:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:TIFF:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN1.tiff,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN1.tiff,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:TIFF:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:TIFF:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-01:TIFF:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-01:TIFF:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.tiff,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:TIFF:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:TIFF:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:TIFF:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:TIFF:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-01:TIFF:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:TIFF:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.tiff,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-01:TIFF:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:TIFF:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:TIFF:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:TIFF:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:TIFF:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:TIFF:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:TIFF:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:TIFF:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.tiff,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:TIFF:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.tiff,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-01:TIFF:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-01:TIFF:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.tiff,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-01:TIFF:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.tiff,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-01:TIFF:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-01:TIFF:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:TIFF:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-01:TIFF:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:TIFF:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.tiff,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-01:TIFF:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.tiff,0,1)NDARRAY_PORT") - field(VAL, "FSCN1.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:TIFF:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.tiff,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:TIFF:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:TIFF:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:TIFF:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:TIFF:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.tiff,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:TIFF:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.tiff,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:TIFF:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:TIFF:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-01:TIFF:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-01:TIFF:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:TIFF:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-01:TIFF:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:TIFF:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-01:TIFF:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.tiff,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:TIFF:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.tiff,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-01:TIFF:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.tiff,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:TIFF:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:TIFF:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:TIFF:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-01:TIFF:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:TIFF:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:TIFF:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:TIFF:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:TIFF:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:TIFF:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:TIFF:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:TIFF:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:TIFF:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:TIFF:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:TIFF:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:TIFF:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:TIFF:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:TIFF:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:TIFF:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:TIFF:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-01:TIFF:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:TIFF:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.tiff,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-01:TIFF:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.tiff,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:TIFF:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:TIFF:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:TIFF:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:TIFF:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:TIFF:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-01:TIFF:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:TIFF:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.tiff,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:TIFF:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.tiff,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:TIFF:AsynIO") -{ - field(PORT, "FSCN1.tiff") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -# We replace some fields in records defined in NDFile.template -# File data format -record(mbbo, "S03SIM-EA-FSCN-01:TIFF:FileFormat") -{ - field(ZRST, "TIFF") - field(ZRVL, "0") - field(ONST, "Invalid") - field(ONVL, "1") -} - -record(mbbi, "S03SIM-EA-FSCN-01:TIFF:FileFormat_RBV") -{ - field(ZRST, "TIFF") - field(ZRVL, "0") - field(ONST, "Undefined") - field(ONVL, "1") -} - -#=================================================================# -# Template file: NDFileTIFF.template -# Database for NDFileTIFF driver, which saves NDArray data -# in the TIFF file format -# Mark Rivers -# May 10, 2009 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name - -# This associates the template with an edm screen -# % gui, FSCN2.tiff, edmtab, NDFileTIFF.edl, P=S03SIM-EA-FSCN-02,R=:TIFF: - -# This associates a BOY screen with the template -# % gui, FSCN2.tiff, boydetail,ADApp_opi/dls/tiff_detail.opi, P=S03SIM-EA-FSCN-02, R=:TIFF:, DESC=TIFF File -# % gui, FSCN2.tiff, boyembed, ADApp_opi/dls/tiff_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:TIFF:, DESC=TIFF File -# % gui, FSCN2.tiff, boyembed, ADApp_opi/dls/tiff_embed.opi, P=S03SIM-EA-FSCN-02, R=:TIFF:, DESC=TIFF File - -# Info -# % gui, FSCN2.tiff, groupHeading, Info -# % gui, FSCN2.tiff, readback, Port name, S03SIM-EA-FSCN-02:TIFF:PortName_RBV -# % gui, FSCN2.tiff, readback, Plugin type, S03SIM-EA-FSCN-02:TIFF:PluginType_RBV -# Input -# % gui, FSCN2.tiff, demandString, Input, S03SIM-EA-FSCN-02:TIFF:NDArrayPort -# % gui, FSCN2.tiff, readback, Input, S03SIM-EA-FSCN-02:TIFF:NDArrayPort_RBV - -# % gui, FSCN2.tiff, groupHeading, Callback -# % gui, FSCN2.tiff, enum, Callbacks, S03SIM-EA-FSCN-02:TIFF:EnableCallbacks -# % gui, FSCN2.tiff, statusbits, Callbacks, S03SIM-EA-FSCN-02:TIFF:EnableCallbacks_RBV -# % gui, FSCN2.tiff, demand, Min Callback Time, S03SIM-EA-FSCN-02:TIFF:MinCallbackTime -# % gui, FSCN2.tiff, readback, Min Callback Time, S03SIM-EA-FSCN-02:TIFF:MinCallbackTime_RBV -# % gui, FSCN2.tiff, enum, Block Callbacks, S03SIM-EA-FSCN-02:TIFF:BlockingCallbacks -# % gui, FSCN2.tiff, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:TIFF:BlockingCallbacks_RBV - -# % gui, FSCN2.tiff, groupHeading, Counters -# % gui, FSCN2.tiff, demand, Array Counter, S03SIM-EA-FSCN-02:TIFF:ArrayCounter -# % gui, FSCN2.tiff, readback, Array Counter, S03SIM-EA-FSCN-02:TIFF:ArrayCounter_RBV -# % gui, FSCN2.tiff, readback, Array Rate (fps), S03SIM-EA-FSCN-02:TIFF:ArrayRate_RBV -# % gui, FSCN2.tiff, readback, Queue Use, S03SIM-EA-FSCN-02:TIFF:QueueUse -# % gui, FSCN2.tiff, readback, Queue Size, S03SIM-EA-FSCN-02:TIFF:QueueSize -# % gui, FSCN2.tiff, demand, Dropped Arrays, S03SIM-EA-FSCN-02:TIFF:DroppedArrays -# % gui, FSCN2.tiff, readback, Dropped Arrays, S03SIM-EA-FSCN-02:TIFF:DroppedArrays_RBV - -# % gui, FSCN2.tiff, groupHeading, Array Settings -# % gui, FSCN2.tiff, readback, Num Dimensions, S03SIM-EA-FSCN-02:TIFF:NDimensions_RBV -# % gui, FSCN2.tiff, readback, Dim 0 Size, S03SIM-EA-FSCN-02:TIFF:ArraySize0_RBV -# % gui, FSCN2.tiff, readback, Dim 1 Size, S03SIM-EA-FSCN-02:TIFF:ArraySize1_RBV -# % gui, FSCN2.tiff, readback, Dim 2 Size, S03SIM-EA-FSCN-02:TIFF:ArraySize2_RBV -# % gui, FSCN2.tiff, readback, Input Data Type, S03SIM-EA-FSCN-02:TIFF:DataType_RBV -# % gui, FSCN2.tiff, readback, Colour Mode, S03SIM-EA-FSCN-02:TIFF:ColorMode_RBV -# % gui, FSCN2.tiff, readback, Bayer Pattern, S03SIM-EA-FSCN-02:TIFF:BayerPattern_RBV -# % gui, FSCN2.tiff, readback, Unique id, S03SIM-EA-FSCN-02:TIFF:UniqueId_RBV -# % gui, FSCN2.tiff, readback, Timestamp, S03SIM-EA-FSCN-02:TIFF:TimeStamp_RBV -# File -# % gui, FSCN2.tiff, groupHeading, File -# % gui, FSCN2.tiff, demandString, File Path, S03SIM-EA-FSCN-02:TIFF:FilePath -# % gui, FSCN2.tiff, readback, File Path, S03SIM-EA-FSCN-02:TIFF:FilePath_RBV -# % gui, FSCN2.tiff, statusbits, File Path Exists, S03SIM-EA-FSCN-02:TIFF:FilePathExists_RBV -# % gui, FSCN2.tiff, demand, File Name, S03SIM-EA-FSCN-02:TIFF:FileName -# % gui, FSCN2.tiff, readback, File Name, S03SIM-EA-FSCN-02:TIFF:FileName_RBV -# % gui, FSCN2.tiff, demand, File Number, S03SIM-EA-FSCN-02:TIFF:FileNumber -# % gui, FSCN2.tiff, readback, File Number, S03SIM-EA-FSCN-02:TIFF:FileNumber_RBV -# % gui, FSCN2.tiff, enum, Auto Increment, S03SIM-EA-FSCN-02:TIFF:AutoIncrement -# % gui, FSCN2.tiff, statusbits, Auto Increment, S03SIM-EA-FSCN-02:TIFF:AutoIncrement_RBV -# % gui, FSCN2.tiff, demand, File Format, S03SIM-EA-FSCN-02:TIFF:FileTemplate -# % gui, FSCN2.tiff, readback, File Format, S03SIM-EA-FSCN-02:TIFF:FileTemplate_RBV -# % gui, FSCN2.tiff, demand, N to Capture, S03SIM-EA-FSCN-02:TIFF:NumCapture -# % gui, FSCN2.tiff, readback, N to Capture, S03SIM-EA-FSCN-02:TIFF:NumCapture_RBV -# % gui, FSCN2.tiff, readback, N Captured, S03SIM-EA-FSCN-02:TIFF:NumCaptured_RBV -# % gui, FSCN2.tiff, enum, Auto Save, S03SIM-EA-FSCN-02:TIFF:AutoSave -# % gui, FSCN2.tiff, statusbits, Auto Save , S03SIM-EA-FSCN-02:TIFF:AutoSave_RBV -# % gui, FSCN2.tiff, enum, Capture mode, S03SIM-EA-FSCN-02:TIFF:FileWriteMode -# % gui, FSCN2.tiff, readback, Capture mode, S03SIM-EA-FSCN-02:TIFF:FileWriteMode_RBV -# % gui, FSCN2.tiff, enum, Capture, S03SIM-EA-FSCN-02:TIFF:Capture -# % gui, FSCN2.tiff, readback, Capture, S03SIM-EA-FSCN-02:TIFF:Capture_RBV -# % gui, FSCN2.tiff, readback, Write Message, S03SIM-EA-FSCN-02:TIFF:WriteMessage -# % gui, FSCN2.tiff, readback, Write Status, S03SIM-EA-FSCN-02:TIFF:WriteStatus -# % gui, FSCN2.tiff, readback, Write Filename, S03SIM-EA-FSCN-02:TIFF:FullFileName_RBV -# % gui, FSCN2.tiff, enum, Lazy Open, S03SIM-EA-FSCN-02:TIFF:LazyOpen -# % gui, FSCN2.tiff, readback, Lazy Open, S03SIM-EA-FSCN-02:TIFF:LazyOpen_RBV -# % gui, FSCN2.tiff, demand, Temporary Suffix, S03SIM-EA-FSCN-02:TIFF:TempSuffix -# % gui, FSCN2.tiff, readback, Temporary Suffix, S03SIM-EA-FSCN-02:TIFF:TempSuffix_RBV -# % gui, FSCN2.tiff, demand, Create Directories, S03SIM-EA-FSCN-02:TIFF:CreateDirectory -# % gui, FSCN2.tiff, readback, Create Directories, S03SIM-EA-FSCN-02:TIFF:CreateDirectory_RBV -# Memory -# % gui, FSCN2.tiff, groupHeading, Memory -# % gui, FSCN2.tiff, readback, Max memory, S03SIM-EA-FSCN-02:TIFF:PoolMaxMem -# % gui, FSCN2.tiff, readback, Max buffers, S03SIM-EA-FSCN-02:TIFF:PoolMaxBuffers -# % gui, FSCN2.tiff, readback, Used memory, S03SIM-EA-FSCN-02:TIFF:PoolUsedMem -# % gui, FSCN2.tiff, readback, Allocated buffers, S03SIM-EA-FSCN-02:TIFF:PoolAllocBuffers -# % gui, FSCN2.tiff, readback, Free buffers, S03SIM-EA-FSCN-02:TIFF:PoolFreeBuffers -#=================================================================# -# Template file: NDFile.template -# Database for NDFile driver, which saves files for NDArray data. -# Mark Rivers -# April 7, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -################################################################### -# These records control file I/O # -################################################################### - -# File path. -record(waveform, "S03SIM-EA-FSCN-02:TIFF:FilePath") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.tiff,0,1)FILE_PATH") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-02:TIFF:FilePath_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.tiff,0,1)FILE_PATH") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-EA-FSCN-02:TIFF:FilePathExists_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)FILE_PATH_EXISTS") - field(ZNAM, "No") - field(ZSV, "MAJOR") - field(ONAM, "Yes") - field(OSV, "NO_ALARM") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:TIFF:CreateDirectory") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)CREATE_DIR") - field(VAL, "0" ) - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:CreateDirectory_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)CREATE_DIR") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -# Filename -record(waveform, "S03SIM-EA-FSCN-02:TIFF:FileName") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.tiff,0,1)FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-02:TIFF:FileName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.tiff,0,1)FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:TIFF:FileNumber") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)FILE_NUMBER") - field(VAL, "1") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:FileNumber_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)FILE_NUMBER") - field(SCAN, "I/O Intr") -} - -# Autoincrement flag -record(bo, "S03SIM-EA-FSCN-02:TIFF:AutoIncrement") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)AUTO_INCREMENT") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:TIFF:AutoIncrement_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)AUTO_INCREMENT") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -# File template -record(waveform, "S03SIM-EA-FSCN-02:TIFF:FileTemplate") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.tiff,0,1)FILE_TEMPLATE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-02:TIFF:FileTemplate_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.tiff,0,1)FILE_TEMPLATE") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -# Full filename, including path -record(waveform, "S03SIM-EA-FSCN-02:TIFF:FullFileName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.tiff,0,1)FULL_FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "512") - field(SCAN, "I/O Intr") -} - -# Autosave flag -record(bo, "S03SIM-EA-FSCN-02:TIFF:AutoSave") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)AUTO_SAVE") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:TIFF:AutoSave_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)AUTO_SAVE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -# Write file -record(ai, "S03SIM-EA-FSCN-02:TIFF:WriteFile") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)WRITE_FILE") - field(ZNAM, "Done") - field(ONAM, "Write") -} - -record(bi, "S03SIM-EA-FSCN-02:TIFF:WriteFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)WRITE_FILE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Writing") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -# Read file -record(ai, "S03SIM-EA-FSCN-02:TIFF:ReadFile") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)READ_FILE") - field(ZNAM, "Done") - field(ONAM, "Read") -} - -record(bi, "S03SIM-EA-FSCN-02:TIFF:ReadFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)READ_FILE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Reading") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -# File data format -record(mbbo, "S03SIM-EA-FSCN-02:TIFF:FileFormat") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)FILE_FORMAT") - field(VAL, "0") - field(ZRST, "Undefined") - field(ZRVL, "0") - field(ONST, "Invalid") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:TIFF:FileFormat_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)FILE_FORMAT") - field(ZRST, "netCDF") - field(ZRVL, "0") - field(ONST, "Undefined") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -# File save mode -record(mbbo, "S03SIM-EA-FSCN-02:TIFF:FileWriteMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)WRITE_MODE") - field(VAL, "0") - field(ZRST, "Single") - field(ZRVL, "0") - field(ONST, "Capture") - field(ONVL, "1") - field(TWST, "Stream") - field(TWVL, "2") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:TIFF:FileWriteMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)WRITE_MODE") - field(ZRST, "Single") - field(ZRVL, "0") - field(ONST, "Capture") - field(ONVL, "1") - field(TWST, "Stream") - field(TWVL, "2") - field(SCAN, "I/O Intr") -} - -# Capture data -record(ai, "S03SIM-EA-FSCN-02:TIFF:Capture") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)CAPTURE") - field(ZNAM, "Done") - field(ONAM, "Capture") -} - -record(bi, "S03SIM-EA-FSCN-02:TIFF:Capture_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)CAPTURE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Capturing") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:TIFF:NumCapture") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)NUM_CAPTURE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:NumCapture_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)NUM_CAPTURE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:NumCaptured_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)NUM_CAPTURED") - field(SCAN, "I/O Intr") -} - -# Delete driver file flag -record(bo, "S03SIM-EA-FSCN-02:TIFF:DeleteDriverFile") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)DELETE_DRIVER_FILE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:TIFF:DeleteDriverFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)DELETE_DRIVER_FILE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-EA-FSCN-02:TIFF:WriteStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)WRITE_STATUS") - field(ZNAM, "Write OK") - field(ZSV, "NO_ALARM") - field(ONAM, "Write error") - field(OSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:TIFF:WriteMessage") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.tiff,0,1)WRITE_MESSAGE") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:TIFF:LazyOpen") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)FILE_LAZY_OPEN") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:TIFF:LazyOpen_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)FILE_LAZY_OPEN") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:TIFF:TempSuffix") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.tiff,0,1)FILE_TEMP_SUFFIX") - field(VAL, "") -} - -record(stringin, "S03SIM-EA-FSCN-02:TIFF:TempSuffix_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.tiff,0,1)FILE_TEMP_SUFFIX") - field(VAL, "") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:TIFF:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.tiff,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:TIFF:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.tiff,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:TIFF:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.tiff,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:TIFF:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.tiff,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:TIFF:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.tiff,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:TIFF:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.tiff,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:TIFF:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.tiff,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:TIFF:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.tiff,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:TIFF:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-02:TIFF:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:TIFF:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-02:TIFF:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:TIFF:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-02:TIFF:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-02:TIFF:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:TIFF:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:TIFF:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:TIFF:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-02:TIFF:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:TIFF:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:TIFF:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN2.tiff,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN2.tiff,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:TIFF:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:TIFF:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:TIFF:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-02:TIFF:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.tiff,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:TIFF:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:TIFF:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:TIFF:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:TIFF:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-02:TIFF:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:TIFF:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.tiff,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-02:TIFF:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:TIFF:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:TIFF:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:TIFF:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:TIFF:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:TIFF:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:TIFF:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:TIFF:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.tiff,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:TIFF:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.tiff,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-02:TIFF:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-02:TIFF:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.tiff,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-02:TIFF:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.tiff,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-02:TIFF:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-02:TIFF:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:TIFF:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-02:TIFF:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:TIFF:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.tiff,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-02:TIFF:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.tiff,0,1)NDARRAY_PORT") - field(VAL, "FSCN2.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:TIFF:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.tiff,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:TIFF:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:TIFF:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:TIFF:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:TIFF:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.tiff,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:TIFF:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.tiff,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:TIFF:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:TIFF:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-02:TIFF:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-02:TIFF:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:TIFF:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-02:TIFF:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:TIFF:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-02:TIFF:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.tiff,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:TIFF:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.tiff,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-02:TIFF:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.tiff,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:TIFF:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:TIFF:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:TIFF:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-02:TIFF:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:TIFF:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:TIFF:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:TIFF:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:TIFF:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:TIFF:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:TIFF:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:TIFF:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:TIFF:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:TIFF:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:TIFF:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:TIFF:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:TIFF:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:TIFF:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:TIFF:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:TIFF:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-02:TIFF:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:TIFF:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.tiff,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-02:TIFF:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.tiff,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:TIFF:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:TIFF:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:TIFF:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:TIFF:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:TIFF:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-02:TIFF:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:TIFF:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.tiff,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:TIFF:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.tiff,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:TIFF:AsynIO") -{ - field(PORT, "FSCN2.tiff") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -# We replace some fields in records defined in NDFile.template -# File data format -record(mbbo, "S03SIM-EA-FSCN-02:TIFF:FileFormat") -{ - field(ZRST, "TIFF") - field(ZRVL, "0") - field(ONST, "Invalid") - field(ONVL, "1") -} - -record(mbbi, "S03SIM-EA-FSCN-02:TIFF:FileFormat_RBV") -{ - field(ZRST, "TIFF") - field(ZRVL, "0") - field(ONST, "Undefined") - field(ONVL, "1") -} - -#=================================================================# -# Template file: NDFileHDF5.template -# Database for NDFileHDF5 driver, which saves files for NDArray data. - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Asyn Port timeout -# % macro, XMLSIZE, Number of elements of the XML layout waveform record - -# This associates the template with an edm screen -# % gui, OAV.hdf, edmtab, NDFileHDF5.edl, P=S03SIM-DI-OAV-01,R=:HDF5: - -# This associates a BOY screen with the template -# % gui, OAV.hdf, boydetail,ADApp_opi/dls/hdf5_detail.opi, P=S03SIM-DI-OAV-01, R=:HDF5:, DESC=HDF5 File -# % gui, OAV.hdf, boyembed, ADApp_opi/dls/hdf5_embed_box.opi, P=S03SIM-DI-OAV-01, R=:HDF5:, DESC=HDF5 File -# % gui, OAV.hdf, boyembed, ADApp_opi/dls/hdf5_embed.opi, P=S03SIM-DI-OAV-01, R=:HDF5:, DESC=HDF5 File - -# Info -# % gui, OAV.hdf, groupHeading, Info -# % gui, OAV.hdf, readback, Port name, S03SIM-DI-OAV-01:HDF5:PortName_RBV -# % gui, OAV.hdf, readback, Plugin type, S03SIM-DI-OAV-01:HDF5:PluginType_RBV -# Input -# % gui, OAV.hdf, demandString, Input, S03SIM-DI-OAV-01:HDF5:NDArrayPort -# % gui, OAV.hdf, readback, Input, S03SIM-DI-OAV-01:HDF5:NDArrayPort_RBV - -# % gui, OAV.hdf, groupHeading, Callback -# % gui, OAV.hdf, enum, Callbacks, S03SIM-DI-OAV-01:HDF5:EnableCallbacks -# % gui, OAV.hdf, statusbits, Callbacks, S03SIM-DI-OAV-01:HDF5:EnableCallbacks_RBV -# % gui, OAV.hdf, demand, Min Callback Time, S03SIM-DI-OAV-01:HDF5:MinCallbackTime -# % gui, OAV.hdf, readback, Min Callback Time, S03SIM-DI-OAV-01:HDF5:MinCallbackTime_RBV -# % gui, OAV.hdf, enum, Block Callbacks, S03SIM-DI-OAV-01:HDF5:BlockingCallbacks -# % gui, OAV.hdf, statusbits, Block Callbacks, S03SIM-DI-OAV-01:HDF5:BlockingCallbacks_RBV - -# % gui, OAV.hdf, groupHeading, Counters -# % gui, OAV.hdf, demand, Array Counter, S03SIM-DI-OAV-01:HDF5:ArrayCounter -# % gui, OAV.hdf, readback, Array Counter, S03SIM-DI-OAV-01:HDF5:ArrayCounter_RBV -# % gui, OAV.hdf, readback, Array Rate (fps), S03SIM-DI-OAV-01:HDF5:ArrayRate_RBV -# % gui, OAV.hdf, readback, Queue Use, S03SIM-DI-OAV-01:HDF5:QueueUse -# % gui, OAV.hdf, readback, Queue Size, S03SIM-DI-OAV-01:HDF5:QueueSize -# % gui, OAV.hdf, demand, Dropped Arrays, S03SIM-DI-OAV-01:HDF5:DroppedArrays -# % gui, OAV.hdf, readback, Dropped Arrays, S03SIM-DI-OAV-01:HDF5:DroppedArrays_RBV - -# % gui, OAV.hdf, groupHeading, Array Settings -# % gui, OAV.hdf, readback, Num Dimensions, S03SIM-DI-OAV-01:HDF5:NDimensions_RBV -# % gui, OAV.hdf, readback, Dim 0 Size, S03SIM-DI-OAV-01:HDF5:ArraySize0_RBV -# % gui, OAV.hdf, readback, Dim 1 Size, S03SIM-DI-OAV-01:HDF5:ArraySize1_RBV -# % gui, OAV.hdf, readback, Dim 2 Size, S03SIM-DI-OAV-01:HDF5:ArraySize2_RBV -# % gui, OAV.hdf, readback, Input Data Type, S03SIM-DI-OAV-01:HDF5:DataType_RBV -# % gui, OAV.hdf, readback, Colour Mode, S03SIM-DI-OAV-01:HDF5:ColorMode_RBV -# % gui, OAV.hdf, readback, Bayer Pattern, S03SIM-DI-OAV-01:HDF5:BayerPattern_RBV -# % gui, OAV.hdf, readback, Unique id, S03SIM-DI-OAV-01:HDF5:UniqueId_RBV -# % gui, OAV.hdf, readback, Timestamp, S03SIM-DI-OAV-01:HDF5:TimeStamp_RBV -# File -# % gui, OAV.hdf, groupHeading, File -# % gui, OAV.hdf, demandString, File Path, S03SIM-DI-OAV-01:HDF5:FilePath -# % gui, OAV.hdf, readback, File Path, S03SIM-DI-OAV-01:HDF5:FilePath_RBV -# % gui, OAV.hdf, statusbits, File Path Exists, S03SIM-DI-OAV-01:HDF5:FilePathExists_RBV -# % gui, OAV.hdf, demand, File Name, S03SIM-DI-OAV-01:HDF5:FileName -# % gui, OAV.hdf, readback, File Name, S03SIM-DI-OAV-01:HDF5:FileName_RBV -# % gui, OAV.hdf, demand, File Number, S03SIM-DI-OAV-01:HDF5:FileNumber -# % gui, OAV.hdf, readback, File Number, S03SIM-DI-OAV-01:HDF5:FileNumber_RBV -# % gui, OAV.hdf, enum, Auto Increment, S03SIM-DI-OAV-01:HDF5:AutoIncrement -# % gui, OAV.hdf, statusbits, Auto Increment, S03SIM-DI-OAV-01:HDF5:AutoIncrement_RBV -# % gui, OAV.hdf, demand, File Format, S03SIM-DI-OAV-01:HDF5:FileTemplate -# % gui, OAV.hdf, readback, File Format, S03SIM-DI-OAV-01:HDF5:FileTemplate_RBV -# % gui, OAV.hdf, demand, N to Capture, S03SIM-DI-OAV-01:HDF5:NumCapture -# % gui, OAV.hdf, readback, N to Capture, S03SIM-DI-OAV-01:HDF5:NumCapture_RBV -# % gui, OAV.hdf, readback, N Captured, S03SIM-DI-OAV-01:HDF5:NumCaptured_RBV -# % gui, OAV.hdf, enum, Auto Save, S03SIM-DI-OAV-01:HDF5:AutoSave -# % gui, OAV.hdf, statusbits, Auto Save , S03SIM-DI-OAV-01:HDF5:AutoSave_RBV -# % gui, OAV.hdf, enum, Capture mode, S03SIM-DI-OAV-01:HDF5:FileWriteMode -# % gui, OAV.hdf, readback, Capture mode, S03SIM-DI-OAV-01:HDF5:FileWriteMode_RBV -# % gui, OAV.hdf, enum, Capture, S03SIM-DI-OAV-01:HDF5:Capture -# % gui, OAV.hdf, readback, Capture, S03SIM-DI-OAV-01:HDF5:Capture_RBV -# % gui, OAV.hdf, readback, Write Message, S03SIM-DI-OAV-01:HDF5:WriteMessage -# % gui, OAV.hdf, readback, Write Status, S03SIM-DI-OAV-01:HDF5:WriteStatus -# % gui, OAV.hdf, readback, Write Filename, S03SIM-DI-OAV-01:HDF5:FullFileName_RBV -# % gui, OAV.hdf, enum, Lazy Open, S03SIM-DI-OAV-01:HDF5:LazyOpen -# % gui, OAV.hdf, readback, Lazy Open, S03SIM-DI-OAV-01:HDF5:LazyOpen_RBV -# % gui, OAV.hdf, demand, Temporary Suffix, S03SIM-DI-OAV-01:HDF5:TempSuffix -# % gui, OAV.hdf, readback, Temporary Suffix, S03SIM-DI-OAV-01:HDF5:TempSuffix_RBV -# % gui, OAV.hdf, demand, Create Directories, S03SIM-DI-OAV-01:HDF5:CreateDirectory -# % gui, OAV.hdf, readback, Create Directories, S03SIM-DI-OAV-01:HDF5:CreateDirectory_RBV -# HDF5 -# % gui, OAV.hdf, groupHeading, HDF5 -# % gui, OAV.hdf, demand, Extra Dimensions, S03SIM-DI-OAV-01:HDF5:NumExtraDims -# % gui, OAV.hdf, readback, Extra Dimensions, S03SIM-DI-OAV-01:HDF5:NumExtraDims_RBV -# % gui, OAV.hdf, demand, Rows per Chunk, S03SIM-DI-OAV-01:HDF5:NumRowChunks -# % gui, OAV.hdf, readback, Rows per Chunk, S03SIM-DI-OAV-01:HDF5:NumRowChunks_RBV -# % gui, OAV.hdf, demand, Cols per Chunk, S03SIM-DI-OAV-01:HDF5:NumColChunks -# % gui, OAV.hdf, readback, Cols per Chunk, S03SIM-DI-OAV-01:HDF5:NumColChunks_RBV -# % gui, OAV.hdf, demand, Frames per Chunk, S03SIM-DI-OAV-01:HDF5:NumFramesChunks -# % gui, OAV.hdf, readback, Frames per Chunk, S03SIM-DI-OAV-01:HDF5:NumFramesChunks_RBV -# % gui, OAV.hdf, demand, Boundary Alignment, S03SIM-DI-OAV-01:HDF5:BoundaryAlign -# % gui, OAV.hdf, readback, Boundary Alignment, S03SIM-DI-OAV-01:HDF5:BoundaryAlign_RBV -# % gui, OAV.hdf, demand, Boundary Threshold, S03SIM-DI-OAV-01:HDF5:BoundaryThreshold -# % gui, OAV.hdf, readback, Boundary Threshold, S03SIM-DI-OAV-01:HDF5:BoundaryThreshold_RBV -# % gui, OAV.hdf, demand, Flush on Nth Frame, S03SIM-DI-OAV-01:HDF5:NumFramesFlush -# % gui, OAV.hdf, readback, Flush on Nth Frame, S03SIM-DI-OAV-01:HDF5:NumFramesFlush_RBV -# % gui, OAV.hdf, enum, Store Attribute Data, S03SIM-DI-OAV-01:HDF5:StoreAttr -# % gui, OAV.hdf, readback, Store Attribute Data, S03SIM-DI-OAV-01:HDF5:StoreAttr_RBV -# % gui, OAV.hdf, enum, Store Performance Data, S03SIM-DI-OAV-01:HDF5:StorePerform -# % gui, OAV.hdf, readback, Store Performance Data, S03SIM-DI-OAV-01:HDF5:StorePerform_RBV -# % gui, OAV.hdf, readback, Total Write Time, S03SIM-DI-OAV-01:HDF5:RunTime -# % gui, OAV.hdf, readback, Total Write Speed, S03SIM-DI-OAV-01:HDF5:IOSpeed -# % gui, OAV.hdf, enum, Compression Type, S03SIM-DI-OAV-01:HDF5:Compression -# % gui, OAV.hdf, readback, Compression Type, S03SIM-DI-OAV-01:HDF5:Compression_RBV -# % gui, OAV.hdf, demand, N-bit bits per Pixel, S03SIM-DI-OAV-01:HDF5:NumDataBits -# % gui, OAV.hdf, readback, N-bit bits per Pixel, S03SIM-DI-OAV-01:HDF5:NumDataBits_RBV -# % gui, OAV.hdf, demand, N-bit Offset, S03SIM-DI-OAV-01:HDF5:DataBitsOffset -# % gui, OAV.hdf, readback, N-bit Offset, S03SIM-DI-OAV-01:HDF5:DataBitsOffset_RBV -# % gui, OAV.hdf, demand, Szip Filter Size, S03SIM-DI-OAV-01:HDF5:SZipNumPixels -# % gui, OAV.hdf, readback, Szip Filter Size, S03SIM-DI-OAV-01:HDF5:SZipNumPixels_RBV -# % gui, OAV.hdf, demand, Zlib Deflate Level, S03SIM-DI-OAV-01:HDF5:ZLevel -# % gui, OAV.hdf, readback, Zlib Deflate Level, S03SIM-DI-OAV-01:HDF5:ZLevel_RBV - -# Memory -# % gui, OAV.hdf, groupHeading, Memory -# % gui, OAV.hdf, readback, Max memory, S03SIM-DI-OAV-01:HDF5:PoolMaxMem -# % gui, OAV.hdf, readback, Max buffers, S03SIM-DI-OAV-01:HDF5:PoolMaxBuffers -# % gui, OAV.hdf, readback, Used memory, S03SIM-DI-OAV-01:HDF5:PoolUsedMem -# % gui, OAV.hdf, readback, Allocated buffers, S03SIM-DI-OAV-01:HDF5:PoolAllocBuffers -# % gui, OAV.hdf, readback, Free buffers, S03SIM-DI-OAV-01:HDF5:PoolFreeBuffers - -#=================================================================# -# Template file: NDFile.template -# Database for NDFile driver, which saves files for NDArray data. -# Mark Rivers -# April 7, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -################################################################### -# These records control file I/O # -################################################################### - -# File path. -record(waveform, "S03SIM-DI-OAV-01:HDF5:FilePath") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.hdf,0,1)FILE_PATH") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-DI-OAV-01:HDF5:FilePath_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)FILE_PATH") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:FilePathExists_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)FILE_PATH_EXISTS") - field(ZNAM, "No") - field(ZSV, "MAJOR") - field(ONAM, "Yes") - field(OSV, "NO_ALARM") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:CreateDirectory") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)CREATE_DIR") - field(VAL, "0" ) - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:CreateDirectory_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)CREATE_DIR") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -# Filename -record(waveform, "S03SIM-DI-OAV-01:HDF5:FileName") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.hdf,0,1)FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-DI-OAV-01:HDF5:FileName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:FileNumber") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)FILE_NUMBER") - field(VAL, "1") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:FileNumber_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)FILE_NUMBER") - field(SCAN, "I/O Intr") -} - -# Autoincrement flag -record(bo, "S03SIM-DI-OAV-01:HDF5:AutoIncrement") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)AUTO_INCREMENT") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:AutoIncrement_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)AUTO_INCREMENT") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -# File template -record(waveform, "S03SIM-DI-OAV-01:HDF5:FileTemplate") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.hdf,0,1)FILE_TEMPLATE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-DI-OAV-01:HDF5:FileTemplate_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)FILE_TEMPLATE") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -# Full filename, including path -record(waveform, "S03SIM-DI-OAV-01:HDF5:FullFileName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)FULL_FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "512") - field(SCAN, "I/O Intr") -} - -# Autosave flag -record(bo, "S03SIM-DI-OAV-01:HDF5:AutoSave") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)AUTO_SAVE") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:AutoSave_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)AUTO_SAVE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -# Write file -record(ai, "S03SIM-DI-OAV-01:HDF5:WriteFile") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)WRITE_FILE") - field(ZNAM, "Done") - field(ONAM, "Write") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:WriteFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)WRITE_FILE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Writing") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -# Read file -record(ai, "S03SIM-DI-OAV-01:HDF5:ReadFile") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)READ_FILE") - field(ZNAM, "Done") - field(ONAM, "Read") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:ReadFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)READ_FILE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Reading") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -# File data format -record(mbbo, "S03SIM-DI-OAV-01:HDF5:FileFormat") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)FILE_FORMAT") - field(VAL, "0") - field(ZRST, "Undefined") - field(ZRVL, "0") - field(ONST, "Invalid") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:HDF5:FileFormat_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)FILE_FORMAT") - field(ZRST, "netCDF") - field(ZRVL, "0") - field(ONST, "Undefined") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -# File save mode -record(mbbo, "S03SIM-DI-OAV-01:HDF5:FileWriteMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)WRITE_MODE") - field(VAL, "0") - field(ZRST, "Single") - field(ZRVL, "0") - field(ONST, "Capture") - field(ONVL, "1") - field(TWST, "Stream") - field(TWVL, "2") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:HDF5:FileWriteMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)WRITE_MODE") - field(ZRST, "Single") - field(ZRVL, "0") - field(ONST, "Capture") - field(ONVL, "1") - field(TWST, "Stream") - field(TWVL, "2") - field(SCAN, "I/O Intr") -} - -# Capture data -record(ai, "S03SIM-DI-OAV-01:HDF5:Capture") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)CAPTURE") - field(ZNAM, "Done") - field(ONAM, "Capture") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:Capture_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)CAPTURE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Capturing") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:NumCapture") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)NUM_CAPTURE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:NumCapture_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)NUM_CAPTURE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:NumCaptured_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)NUM_CAPTURED") - field(SCAN, "I/O Intr") -} - -# Delete driver file flag -record(bo, "S03SIM-DI-OAV-01:HDF5:DeleteDriverFile") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)DELETE_DRIVER_FILE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:DeleteDriverFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)DELETE_DRIVER_FILE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:WriteStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)WRITE_STATUS") - field(ZNAM, "Write OK") - field(ZSV, "NO_ALARM") - field(ONAM, "Write error") - field(OSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-DI-OAV-01:HDF5:WriteMessage") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)WRITE_MESSAGE") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:HDF5:LazyOpen") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)FILE_LAZY_OPEN") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:LazyOpen_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)FILE_LAZY_OPEN") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:HDF5:TempSuffix") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)FILE_TEMP_SUFFIX") - field(VAL, "") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:TempSuffix_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)FILE_TEMP_SUFFIX") - field(VAL, "") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:HDF5:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:HDF5:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:HDF5:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:HDF5:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:HDF5:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:HDF5:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:HDF5:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:HDF5:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:HDF5:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:HDF5:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:HDF5:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:HDF5:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:HDF5:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:HDF5:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.hdf,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.hdf,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:HDF5:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:HDF5:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:HDF5:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:HDF5:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:HDF5:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:HDF5:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:HDF5:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:HDF5:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:HDF5:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:HDF5:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.hdf,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:HDF5:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:HDF5:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:HDF5:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:HDF5:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:HDF5:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:HDF5:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:HDF5:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.hdf,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:HDF5:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.hdf,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:HDF5:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-DI-OAV-01:HDF5:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.hdf,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-DI-OAV-01:HDF5:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.hdf,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:PoolFreeBuffers") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:PoolUsedBuffers") -} - -record(calc, "S03SIM-DI-OAV-01:HDF5:PoolUsedBuffers") -{ - field(INPA, "S03SIM-DI-OAV-01:HDF5:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:HDF5:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-DI-OAV-01:HDF5:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:HDF5:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)NDARRAY_PORT") - field(VAL, "OAV.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:HDF5:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:HDF5:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.hdf,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:HDF5:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.hdf,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:HDF5:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:HDF5:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-DI-OAV-01:HDF5:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-DI-OAV-01:HDF5:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:HDF5:MinCallbackTime PP") -} - -record(calc, "S03SIM-DI-OAV-01:HDF5:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:HDF5:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-DI-OAV-01:HDF5:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.hdf,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:HDF5:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.hdf,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:HDF5:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.hdf,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:HDF5:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:HDF5:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-DI-OAV-01:HDF5:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:HDF5:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:HDF5:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:HDF5:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:HDF5:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:HDF5:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:HDF5:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:HDF5:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:HDF5:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:HDF5:QueueUse.HIHI") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:HDF5:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:HDF5:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:HDF5:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:HDF5:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-DI-OAV-01:HDF5:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:HDF5:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.hdf,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-DI-OAV-01:HDF5:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.hdf,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:HDF5:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:HDF5:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:HDF5:SortSize") - field(OUT, "S03SIM-DI-OAV-01:HDF5:SortFree.LOW") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:HDF5:AsynIO") -{ - field(PORT, "OAV.hdf") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -# Flush data to file -record(ai, "S03SIM-DI-OAV-01:HDF5:FlushNow") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_SWMRFlushNow") - field(ZNAM, "Done") - field(ONAM, "Flush") -} - -# We replace some fields in records defined in NDFile.template -# File data format -record(mbbo, "S03SIM-DI-OAV-01:HDF5:FileFormat") -{ - field(ZRST, "HDF5") - field(ZRVL, "0") - field(ONST, "Invalid") - field(ONVL, "1") -} - -record(mbbi, "S03SIM-DI-OAV-01:HDF5:FileFormat_RBV") -{ - field(ZRST, "HDF5") - field(ZRVL, "0") - field(ONST, "Undefined") - field(ONVL, "1") -} - -record(bo, "S03SIM-DI-OAV-01:HDF5:ChunkSizeAuto") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkSizeAuto") - field(PINI, "YES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:ChunkSizeAuto_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkSizeAuto") - field(SCAN, "I/O Intr") - field(ZNAM, "No") - field(ONAM, "Yes") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:NumRowChunks") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_nRowChunks") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:NumRowChunks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_nRowChunks") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:NumColChunks") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_nColChunks") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:NumColChunks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_nColChunks") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ChunkSize2") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkSize2") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ChunkSize2_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkSize2") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ChunkSize3") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkSize3") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ChunkSize3_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkSize3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ChunkSize4") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkSize4") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ChunkSize4_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkSize4") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ChunkSize5") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkSize5") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ChunkSize5_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkSize5") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ChunkSize6") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkSize6") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ChunkSize6_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkSize6") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ChunkSize7") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkSize7") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ChunkSize7_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkSize7") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ChunkSize8") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkSize8") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ChunkSize8_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkSize8") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ChunkSize9") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkSize9") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ChunkSize9_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkSize9") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:NumFramesChunks") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_nFramesChunks") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:NumFramesChunks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_nFramesChunks") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:NDAttributeChunk") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_NDAttributeChunk") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:NDAttributeChunk_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_NDAttributeChunk") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:BoundaryAlign") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkBoundaryAlign") - field(PINI, "YES") - field(VAL, "0") - field(EGU, "bytes") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:BoundaryAlign_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkBoundaryAlign") - field(SCAN, "I/O Intr") - field(EGU, "bytes") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:BoundaryThreshold") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_chunkBoundaryThreshold") - field(PINI, "YES") - field(VAL, "1") - field(EGU, "bytes") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:BoundaryThreshold_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_chunkBoundaryThreshold") - field(SCAN, "I/O Intr") - field(EGU, "bytes") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:NumExtraDims") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_nExtraDims") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:NumExtraDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_nExtraDims") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimSizeN") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimSizeN") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimSizeN_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimSizeN") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:ExtraDimNameN_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimNameN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimSizeX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimSizeX") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimSizeX") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:ExtraDimNameX_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimNameX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimSizeY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimSizeY") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimSizeY") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:ExtraDimNameY_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimNameY") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize3") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize3") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize3_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize3") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:ExtraDimName3_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimName3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize4") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize4") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize4_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize4") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:ExtraDimName4_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimName4") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize5") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize5") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize5_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize5") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:ExtraDimName5_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimName5") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize6") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize6") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize6_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize6") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:ExtraDimName6_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimName6") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize7") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize7") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize7_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize7") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:ExtraDimName7_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimName7") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize8") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize8") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize8_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize8") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:ExtraDimName8_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimName8") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize9") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize9") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimSize9_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimSize9") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:ExtraDimName9_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimName9") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:HDF5:StoreAttr") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_storeAttributes") - field(PINI, "YES") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:StoreAttr_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_storeAttributes") - field(SCAN, "I/O Intr") - field(ZNAM, "No") - field(ONAM, "Yes") -} - -record(bo, "S03SIM-DI-OAV-01:HDF5:StorePerform") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_storePerformance") - field(PINI, "YES") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:StorePerform_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_storePerformance") - field(SCAN, "I/O Intr") - field(ZNAM, "No") - field(ONAM, "Yes") -} - -record(ai, "S03SIM-DI-OAV-01:HDF5:RunTime") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_totalRuntime") - field(SCAN, "I/O Intr") - field(PREC, "3") - field(EGU, "s") -} - -record(ai, "S03SIM-DI-OAV-01:HDF5:IOSpeed") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_totalIoSpeed") - field(SCAN, "I/O Intr") - field(PREC, "1") - field(EGU, "Mbit/s") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:NumFramesFlush") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_flushNthFrame") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:NumFramesFlush_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_flushNthFrame") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:HDF5:Compression") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_compressionType") - field(PINI, "YES") - field(ZRST, "None") - field(ZRVL, "0") - field(ONST, "N-bit") - field(ONVL, "1") - field(TWST, "szip") - field(TWVL, "2") - field(THST, "zlib") - field(THVL, "3") - field(FRST, "Blosc") - field(FRVL, "4") - field(FVST, "BSLZ4") - field(FVVL, "5") - field(SXST, "LZ4") - field(SXVL, "6") - field(SVST, "JPEG") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:HDF5:Compression_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_compressionType") - field(SCAN, "I/O Intr") - field(ZRST, "None") - field(ZRVL, "0") - field(ONST, "N-bit") - field(ONVL, "1") - field(TWST, "szip") - field(TWVL, "2") - field(THST, "zlib") - field(THVL, "3") - field(FRST, "Blosc") - field(FRVL, "4") - field(FVST, "BSLZ4") - field(FVVL, "5") - field(SXST, "LZ4") - field(SXVL, "6") - field(SVST, "JPEG") - field(SVVL, "7") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:NumDataBits") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_nbitsPrecision") - field(PINI, "YES") - field(EGU, "bit") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:NumDataBits_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_nbitsPrecision") - field(SCAN, "I/O Intr") - field(EGU, "bit") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:DataBitsOffset") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_nbitsOffset") - field(PINI, "YES") - field(EGU, "bit") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:DataBitsOffset_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_nbitsOffset") - field(SCAN, "I/O Intr") - field(EGU, "bit") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:SZipNumPixels") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_szipNumPixels") - field(PINI, "YES") - field(EGU, "bit") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:SZipNumPixels_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_szipNumPixels") - field(SCAN, "I/O Intr") - field(EGU, "bit") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ZLevel") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_zCompressLevel") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ZLevel_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_zCompressLevel") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-DI-OAV-01:HDF5:BloscShuffle") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_bloscShuffleType") - field(PINI, "YES") - field(ZRST, "None") - field(ZRVL, "0") - field(ONST, "Byte") - field(ONVL, "1") - field(TWST, "Bit") - field(TWVL, "2") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:HDF5:BloscShuffle_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_bloscShuffleType") - field(SCAN, "I/O Intr") - field(ZRST, "None") - field(ZRVL, "0") - field(ONST, "Byte") - field(ONVL, "1") - field(TWST, "Bit") - field(TWVL, "2") -} - -record(mbbo, "S03SIM-DI-OAV-01:HDF5:BloscCompressor") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_bloscCompressor") - field(PINI, "YES") - field(ZRST, "BloscLZ") - field(ZRVL, "0") - field(ONST, "LZ4") - field(ONVL, "1") - field(TWST, "LZ4HC") - field(TWVL, "2") - field(THST, "SNAPPY") - field(THVL, "3") - field(FRST, "ZLIB") - field(FRVL, "4") - field(FVST, "ZSTD") - field(FVVL, "5") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:HDF5:BloscCompressor_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_bloscCompressor") - field(SCAN, "I/O Intr") - field(ZRST, "BloscLZ") - field(ZRVL, "0") - field(ONST, "LZ4") - field(ONVL, "1") - field(TWST, "LZ4HC") - field(TWVL, "2") - field(THST, "SNAPPY") - field(THVL, "3") - field(FRST, "ZLIB") - field(FRVL, "4") - field(FVST, "ZSTD") - field(FVVL, "5") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:BloscLevel") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_bloscCompressLevel") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:BloscLevel_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_bloscCompressLevel") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:JPEGQuality") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_jpegQuality") - field(VAL, "90") - field(DRVL, "1") - field(DRVH, "100") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:JPEGQuality_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_jpegQuality") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:HDF5:DimAttDatasets") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_dimAttDatasets") - field(PINI, "YES") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:DimAttDatasets_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_dimAttDatasets") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -# File path. -# % autosave 2 -#record(waveform, "S03SIM-DI-OAV-01:HDF5:XMLPath") -#{ -# field(PINI, "YES") -# field(DTYP, "asynOctetWrite") -# field(INP, "@asyn(OAV.hdf,0,1)HDF5_layoutDirectory") -# field(FTVL, "CHAR") -# field(NELM, "256") -#} - -record(waveform, "S03SIM-DI-OAV-01:HDF5:XMLErrorMsg_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_layoutErrorMsg") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:XMLValid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_layoutValid") - field(ZNAM, "No") - field(ZSV, "MAJOR") - field(ONAM, "Yes") - field(OSV, "NO_ALARM") - field(SCAN, "I/O Intr") -} - -# Filename -# % autosave 2 -record(waveform, "S03SIM-DI-OAV-01:HDF5:XMLFileName") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_layoutFilename") - field(FTVL, "CHAR") - field(NELM, "2048") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-DI-OAV-01:HDF5:XMLFileName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_layoutFilename") - field(FTVL, "CHAR") - field(NELM, "2048") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:SWMRSupported_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_SWMRSupported") - field(SCAN, "I/O Intr") - field(ZNAM, "Not Supported") - field(ONAM, "Supported") -} - -record(bo, "S03SIM-DI-OAV-01:HDF5:SWMRMode") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_SWMRMode") - field(PINI, "YES") - field(ZNAM, "Off") - field(ONAM, "On") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:SWMRMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_SWMRMode") - field(SCAN, "I/O Intr") - field(ZNAM, "Off") - field(ONAM, "On") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:SWMRActive_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_SWMRRunning") - field(SCAN, "I/O Intr") - field(ZNAM, "Off") - field(ONAM, "Active") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:SWMRCbCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_SWMRCbCounter") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-DI-OAV-01:HDF5:PositionMode") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posRunning") - field(PINI, "YES") - field(ZNAM, "Off") - field(ONAM, "On") -} - -record(bi, "S03SIM-DI-OAV-01:HDF5:PositionMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_posRunning") - field(SCAN, "I/O Intr") - field(ZNAM, "Off") - field(ONAM, "On") -} - -record(stringout, "S03SIM-DI-OAV-01:HDF5:PosNameDimN") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posNameDimN") - field(PINI, "YES") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PosNameDimN_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_posNameDimN") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:HDF5:PosNameDimX") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posNameDimX") - field(PINI, "YES") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PosNameDimX_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_posNameDimX") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:HDF5:PosNameDimY") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posNameDimY") - field(PINI, "YES") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PosNameDimY_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_posNameDimY") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:HDF5:PosNameDim3") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posNameDim3") - field(PINI, "YES") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PosNameDim3_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_posNameDim3") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:HDF5:PosNameDim4") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posNameDim4") - field(PINI, "YES") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PosNameDim4_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_posNameDim4") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:HDF5:PosNameDim5") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posNameDim5") - field(PINI, "YES") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PosNameDim5_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_posNameDim5") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:HDF5:PosNameDim6") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posNameDim6") - field(PINI, "YES") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PosNameDim6_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_posNameDim6") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:HDF5:PosNameDim7") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posNameDim7") - field(PINI, "YES") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PosNameDim7_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_posNameDim7") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:HDF5:PosNameDim8") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posNameDim8") - field(PINI, "YES") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PosNameDim8_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_posNameDim8") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:HDF5:PosNameDim9") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posNameDim9") - field(PINI, "YES") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PosNameDim9_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_posNameDim9") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:HDF5:PosIndexDimN") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posIndexDimN") - field(PINI, "YES") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PosIndexDimN_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_posIndexDimN") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:HDF5:PosIndexDimX") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posIndexDimX") - field(PINI, "YES") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PosIndexDimX_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_posIndexDimX") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:HDF5:PosIndexDimY") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posIndexDimY") - field(PINI, "YES") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PosIndexDimY_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_posIndexDimY") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:HDF5:PosIndexDim3") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim3") - field(PINI, "YES") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PosIndexDim3_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim3") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:HDF5:PosIndexDim4") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim4") - field(PINI, "YES") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PosIndexDim4_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim4") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:HDF5:PosIndexDim5") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim5") - field(PINI, "YES") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PosIndexDim5_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim5") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:HDF5:PosIndexDim6") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim6") - field(PINI, "YES") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PosIndexDim6_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim6") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:HDF5:PosIndexDim7") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim7") - field(PINI, "YES") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PosIndexDim7_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim7") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:HDF5:PosIndexDim8") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim8") - field(PINI, "YES") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PosIndexDim8_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim8") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-DI-OAV-01:HDF5:PosIndexDim9") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim9") - field(PINI, "YES") -} - -record(stringin, "S03SIM-DI-OAV-01:HDF5:PosIndexDim9_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_posIndexDim9") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:HDF5:FillValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_fillValue") - field(PINI, "YES") - field(PREC, "1") -} - -record(ai, "S03SIM-DI-OAV-01:HDF5:FillValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_fillValue") - field(SCAN, "I/O Intr") - field(PREC, "1") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunkX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunkX") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunkX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunkX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunkY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunkY") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunkY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunkY") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk3") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk3") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk3_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk4") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk4") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk4_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk4") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk5") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk5") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk5_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk5") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk6") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk6") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk6_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk6") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk7") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk7") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk7_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk7") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk8") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk8") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk8_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk8") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk9") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk9") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:HDF5:ExtraDimChunk9_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.hdf,0,1)HDF5_extraDimChunk9") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDFileHDF5.template -# Database for NDFileHDF5 driver, which saves files for NDArray data. - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Asyn Port timeout -# % macro, XMLSIZE, Number of elements of the XML layout waveform record - -# This associates the template with an edm screen -# % gui, FSCN1.hdf, edmtab, NDFileHDF5.edl, P=S03SIM-EA-FSCN-01,R=:HDF5: - -# This associates a BOY screen with the template -# % gui, FSCN1.hdf, boydetail,ADApp_opi/dls/hdf5_detail.opi, P=S03SIM-EA-FSCN-01, R=:HDF5:, DESC=HDF5 File -# % gui, FSCN1.hdf, boyembed, ADApp_opi/dls/hdf5_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:HDF5:, DESC=HDF5 File -# % gui, FSCN1.hdf, boyembed, ADApp_opi/dls/hdf5_embed.opi, P=S03SIM-EA-FSCN-01, R=:HDF5:, DESC=HDF5 File - -# Info -# % gui, FSCN1.hdf, groupHeading, Info -# % gui, FSCN1.hdf, readback, Port name, S03SIM-EA-FSCN-01:HDF5:PortName_RBV -# % gui, FSCN1.hdf, readback, Plugin type, S03SIM-EA-FSCN-01:HDF5:PluginType_RBV -# Input -# % gui, FSCN1.hdf, demandString, Input, S03SIM-EA-FSCN-01:HDF5:NDArrayPort -# % gui, FSCN1.hdf, readback, Input, S03SIM-EA-FSCN-01:HDF5:NDArrayPort_RBV - -# % gui, FSCN1.hdf, groupHeading, Callback -# % gui, FSCN1.hdf, enum, Callbacks, S03SIM-EA-FSCN-01:HDF5:EnableCallbacks -# % gui, FSCN1.hdf, statusbits, Callbacks, S03SIM-EA-FSCN-01:HDF5:EnableCallbacks_RBV -# % gui, FSCN1.hdf, demand, Min Callback Time, S03SIM-EA-FSCN-01:HDF5:MinCallbackTime -# % gui, FSCN1.hdf, readback, Min Callback Time, S03SIM-EA-FSCN-01:HDF5:MinCallbackTime_RBV -# % gui, FSCN1.hdf, enum, Block Callbacks, S03SIM-EA-FSCN-01:HDF5:BlockingCallbacks -# % gui, FSCN1.hdf, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:HDF5:BlockingCallbacks_RBV - -# % gui, FSCN1.hdf, groupHeading, Counters -# % gui, FSCN1.hdf, demand, Array Counter, S03SIM-EA-FSCN-01:HDF5:ArrayCounter -# % gui, FSCN1.hdf, readback, Array Counter, S03SIM-EA-FSCN-01:HDF5:ArrayCounter_RBV -# % gui, FSCN1.hdf, readback, Array Rate (fps), S03SIM-EA-FSCN-01:HDF5:ArrayRate_RBV -# % gui, FSCN1.hdf, readback, Queue Use, S03SIM-EA-FSCN-01:HDF5:QueueUse -# % gui, FSCN1.hdf, readback, Queue Size, S03SIM-EA-FSCN-01:HDF5:QueueSize -# % gui, FSCN1.hdf, demand, Dropped Arrays, S03SIM-EA-FSCN-01:HDF5:DroppedArrays -# % gui, FSCN1.hdf, readback, Dropped Arrays, S03SIM-EA-FSCN-01:HDF5:DroppedArrays_RBV - -# % gui, FSCN1.hdf, groupHeading, Array Settings -# % gui, FSCN1.hdf, readback, Num Dimensions, S03SIM-EA-FSCN-01:HDF5:NDimensions_RBV -# % gui, FSCN1.hdf, readback, Dim 0 Size, S03SIM-EA-FSCN-01:HDF5:ArraySize0_RBV -# % gui, FSCN1.hdf, readback, Dim 1 Size, S03SIM-EA-FSCN-01:HDF5:ArraySize1_RBV -# % gui, FSCN1.hdf, readback, Dim 2 Size, S03SIM-EA-FSCN-01:HDF5:ArraySize2_RBV -# % gui, FSCN1.hdf, readback, Input Data Type, S03SIM-EA-FSCN-01:HDF5:DataType_RBV -# % gui, FSCN1.hdf, readback, Colour Mode, S03SIM-EA-FSCN-01:HDF5:ColorMode_RBV -# % gui, FSCN1.hdf, readback, Bayer Pattern, S03SIM-EA-FSCN-01:HDF5:BayerPattern_RBV -# % gui, FSCN1.hdf, readback, Unique id, S03SIM-EA-FSCN-01:HDF5:UniqueId_RBV -# % gui, FSCN1.hdf, readback, Timestamp, S03SIM-EA-FSCN-01:HDF5:TimeStamp_RBV -# File -# % gui, FSCN1.hdf, groupHeading, File -# % gui, FSCN1.hdf, demandString, File Path, S03SIM-EA-FSCN-01:HDF5:FilePath -# % gui, FSCN1.hdf, readback, File Path, S03SIM-EA-FSCN-01:HDF5:FilePath_RBV -# % gui, FSCN1.hdf, statusbits, File Path Exists, S03SIM-EA-FSCN-01:HDF5:FilePathExists_RBV -# % gui, FSCN1.hdf, demand, File Name, S03SIM-EA-FSCN-01:HDF5:FileName -# % gui, FSCN1.hdf, readback, File Name, S03SIM-EA-FSCN-01:HDF5:FileName_RBV -# % gui, FSCN1.hdf, demand, File Number, S03SIM-EA-FSCN-01:HDF5:FileNumber -# % gui, FSCN1.hdf, readback, File Number, S03SIM-EA-FSCN-01:HDF5:FileNumber_RBV -# % gui, FSCN1.hdf, enum, Auto Increment, S03SIM-EA-FSCN-01:HDF5:AutoIncrement -# % gui, FSCN1.hdf, statusbits, Auto Increment, S03SIM-EA-FSCN-01:HDF5:AutoIncrement_RBV -# % gui, FSCN1.hdf, demand, File Format, S03SIM-EA-FSCN-01:HDF5:FileTemplate -# % gui, FSCN1.hdf, readback, File Format, S03SIM-EA-FSCN-01:HDF5:FileTemplate_RBV -# % gui, FSCN1.hdf, demand, N to Capture, S03SIM-EA-FSCN-01:HDF5:NumCapture -# % gui, FSCN1.hdf, readback, N to Capture, S03SIM-EA-FSCN-01:HDF5:NumCapture_RBV -# % gui, FSCN1.hdf, readback, N Captured, S03SIM-EA-FSCN-01:HDF5:NumCaptured_RBV -# % gui, FSCN1.hdf, enum, Auto Save, S03SIM-EA-FSCN-01:HDF5:AutoSave -# % gui, FSCN1.hdf, statusbits, Auto Save , S03SIM-EA-FSCN-01:HDF5:AutoSave_RBV -# % gui, FSCN1.hdf, enum, Capture mode, S03SIM-EA-FSCN-01:HDF5:FileWriteMode -# % gui, FSCN1.hdf, readback, Capture mode, S03SIM-EA-FSCN-01:HDF5:FileWriteMode_RBV -# % gui, FSCN1.hdf, enum, Capture, S03SIM-EA-FSCN-01:HDF5:Capture -# % gui, FSCN1.hdf, readback, Capture, S03SIM-EA-FSCN-01:HDF5:Capture_RBV -# % gui, FSCN1.hdf, readback, Write Message, S03SIM-EA-FSCN-01:HDF5:WriteMessage -# % gui, FSCN1.hdf, readback, Write Status, S03SIM-EA-FSCN-01:HDF5:WriteStatus -# % gui, FSCN1.hdf, readback, Write Filename, S03SIM-EA-FSCN-01:HDF5:FullFileName_RBV -# % gui, FSCN1.hdf, enum, Lazy Open, S03SIM-EA-FSCN-01:HDF5:LazyOpen -# % gui, FSCN1.hdf, readback, Lazy Open, S03SIM-EA-FSCN-01:HDF5:LazyOpen_RBV -# % gui, FSCN1.hdf, demand, Temporary Suffix, S03SIM-EA-FSCN-01:HDF5:TempSuffix -# % gui, FSCN1.hdf, readback, Temporary Suffix, S03SIM-EA-FSCN-01:HDF5:TempSuffix_RBV -# % gui, FSCN1.hdf, demand, Create Directories, S03SIM-EA-FSCN-01:HDF5:CreateDirectory -# % gui, FSCN1.hdf, readback, Create Directories, S03SIM-EA-FSCN-01:HDF5:CreateDirectory_RBV -# HDF5 -# % gui, FSCN1.hdf, groupHeading, HDF5 -# % gui, FSCN1.hdf, demand, Extra Dimensions, S03SIM-EA-FSCN-01:HDF5:NumExtraDims -# % gui, FSCN1.hdf, readback, Extra Dimensions, S03SIM-EA-FSCN-01:HDF5:NumExtraDims_RBV -# % gui, FSCN1.hdf, demand, Rows per Chunk, S03SIM-EA-FSCN-01:HDF5:NumRowChunks -# % gui, FSCN1.hdf, readback, Rows per Chunk, S03SIM-EA-FSCN-01:HDF5:NumRowChunks_RBV -# % gui, FSCN1.hdf, demand, Cols per Chunk, S03SIM-EA-FSCN-01:HDF5:NumColChunks -# % gui, FSCN1.hdf, readback, Cols per Chunk, S03SIM-EA-FSCN-01:HDF5:NumColChunks_RBV -# % gui, FSCN1.hdf, demand, Frames per Chunk, S03SIM-EA-FSCN-01:HDF5:NumFramesChunks -# % gui, FSCN1.hdf, readback, Frames per Chunk, S03SIM-EA-FSCN-01:HDF5:NumFramesChunks_RBV -# % gui, FSCN1.hdf, demand, Boundary Alignment, S03SIM-EA-FSCN-01:HDF5:BoundaryAlign -# % gui, FSCN1.hdf, readback, Boundary Alignment, S03SIM-EA-FSCN-01:HDF5:BoundaryAlign_RBV -# % gui, FSCN1.hdf, demand, Boundary Threshold, S03SIM-EA-FSCN-01:HDF5:BoundaryThreshold -# % gui, FSCN1.hdf, readback, Boundary Threshold, S03SIM-EA-FSCN-01:HDF5:BoundaryThreshold_RBV -# % gui, FSCN1.hdf, demand, Flush on Nth Frame, S03SIM-EA-FSCN-01:HDF5:NumFramesFlush -# % gui, FSCN1.hdf, readback, Flush on Nth Frame, S03SIM-EA-FSCN-01:HDF5:NumFramesFlush_RBV -# % gui, FSCN1.hdf, enum, Store Attribute Data, S03SIM-EA-FSCN-01:HDF5:StoreAttr -# % gui, FSCN1.hdf, readback, Store Attribute Data, S03SIM-EA-FSCN-01:HDF5:StoreAttr_RBV -# % gui, FSCN1.hdf, enum, Store Performance Data, S03SIM-EA-FSCN-01:HDF5:StorePerform -# % gui, FSCN1.hdf, readback, Store Performance Data, S03SIM-EA-FSCN-01:HDF5:StorePerform_RBV -# % gui, FSCN1.hdf, readback, Total Write Time, S03SIM-EA-FSCN-01:HDF5:RunTime -# % gui, FSCN1.hdf, readback, Total Write Speed, S03SIM-EA-FSCN-01:HDF5:IOSpeed -# % gui, FSCN1.hdf, enum, Compression Type, S03SIM-EA-FSCN-01:HDF5:Compression -# % gui, FSCN1.hdf, readback, Compression Type, S03SIM-EA-FSCN-01:HDF5:Compression_RBV -# % gui, FSCN1.hdf, demand, N-bit bits per Pixel, S03SIM-EA-FSCN-01:HDF5:NumDataBits -# % gui, FSCN1.hdf, readback, N-bit bits per Pixel, S03SIM-EA-FSCN-01:HDF5:NumDataBits_RBV -# % gui, FSCN1.hdf, demand, N-bit Offset, S03SIM-EA-FSCN-01:HDF5:DataBitsOffset -# % gui, FSCN1.hdf, readback, N-bit Offset, S03SIM-EA-FSCN-01:HDF5:DataBitsOffset_RBV -# % gui, FSCN1.hdf, demand, Szip Filter Size, S03SIM-EA-FSCN-01:HDF5:SZipNumPixels -# % gui, FSCN1.hdf, readback, Szip Filter Size, S03SIM-EA-FSCN-01:HDF5:SZipNumPixels_RBV -# % gui, FSCN1.hdf, demand, Zlib Deflate Level, S03SIM-EA-FSCN-01:HDF5:ZLevel -# % gui, FSCN1.hdf, readback, Zlib Deflate Level, S03SIM-EA-FSCN-01:HDF5:ZLevel_RBV - -# Memory -# % gui, FSCN1.hdf, groupHeading, Memory -# % gui, FSCN1.hdf, readback, Max memory, S03SIM-EA-FSCN-01:HDF5:PoolMaxMem -# % gui, FSCN1.hdf, readback, Max buffers, S03SIM-EA-FSCN-01:HDF5:PoolMaxBuffers -# % gui, FSCN1.hdf, readback, Used memory, S03SIM-EA-FSCN-01:HDF5:PoolUsedMem -# % gui, FSCN1.hdf, readback, Allocated buffers, S03SIM-EA-FSCN-01:HDF5:PoolAllocBuffers -# % gui, FSCN1.hdf, readback, Free buffers, S03SIM-EA-FSCN-01:HDF5:PoolFreeBuffers - -#=================================================================# -# Template file: NDFile.template -# Database for NDFile driver, which saves files for NDArray data. -# Mark Rivers -# April 7, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -################################################################### -# These records control file I/O # -################################################################### - -# File path. -record(waveform, "S03SIM-EA-FSCN-01:HDF5:FilePath") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.hdf,0,1)FILE_PATH") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-01:HDF5:FilePath_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)FILE_PATH") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:FilePathExists_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)FILE_PATH_EXISTS") - field(ZNAM, "No") - field(ZSV, "MAJOR") - field(ONAM, "Yes") - field(OSV, "NO_ALARM") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:CreateDirectory") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)CREATE_DIR") - field(VAL, "0" ) - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:CreateDirectory_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)CREATE_DIR") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -# Filename -record(waveform, "S03SIM-EA-FSCN-01:HDF5:FileName") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.hdf,0,1)FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-01:HDF5:FileName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:FileNumber") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)FILE_NUMBER") - field(VAL, "1") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:FileNumber_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)FILE_NUMBER") - field(SCAN, "I/O Intr") -} - -# Autoincrement flag -record(bo, "S03SIM-EA-FSCN-01:HDF5:AutoIncrement") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)AUTO_INCREMENT") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:AutoIncrement_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)AUTO_INCREMENT") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -# File template -record(waveform, "S03SIM-EA-FSCN-01:HDF5:FileTemplate") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.hdf,0,1)FILE_TEMPLATE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-01:HDF5:FileTemplate_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)FILE_TEMPLATE") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -# Full filename, including path -record(waveform, "S03SIM-EA-FSCN-01:HDF5:FullFileName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)FULL_FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "512") - field(SCAN, "I/O Intr") -} - -# Autosave flag -record(bo, "S03SIM-EA-FSCN-01:HDF5:AutoSave") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)AUTO_SAVE") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:AutoSave_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)AUTO_SAVE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -# Write file -record(ai, "S03SIM-EA-FSCN-01:HDF5:WriteFile") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)WRITE_FILE") - field(ZNAM, "Done") - field(ONAM, "Write") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:WriteFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)WRITE_FILE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Writing") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -# Read file -record(ai, "S03SIM-EA-FSCN-01:HDF5:ReadFile") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)READ_FILE") - field(ZNAM, "Done") - field(ONAM, "Read") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:ReadFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)READ_FILE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Reading") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -# File data format -record(mbbo, "S03SIM-EA-FSCN-01:HDF5:FileFormat") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)FILE_FORMAT") - field(VAL, "0") - field(ZRST, "Undefined") - field(ZRVL, "0") - field(ONST, "Invalid") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:HDF5:FileFormat_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)FILE_FORMAT") - field(ZRST, "netCDF") - field(ZRVL, "0") - field(ONST, "Undefined") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -# File save mode -record(mbbo, "S03SIM-EA-FSCN-01:HDF5:FileWriteMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)WRITE_MODE") - field(VAL, "0") - field(ZRST, "Single") - field(ZRVL, "0") - field(ONST, "Capture") - field(ONVL, "1") - field(TWST, "Stream") - field(TWVL, "2") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:HDF5:FileWriteMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)WRITE_MODE") - field(ZRST, "Single") - field(ZRVL, "0") - field(ONST, "Capture") - field(ONVL, "1") - field(TWST, "Stream") - field(TWVL, "2") - field(SCAN, "I/O Intr") -} - -# Capture data -record(ai, "S03SIM-EA-FSCN-01:HDF5:Capture") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)CAPTURE") - field(ZNAM, "Done") - field(ONAM, "Capture") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:Capture_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)CAPTURE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Capturing") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:NumCapture") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)NUM_CAPTURE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:NumCapture_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)NUM_CAPTURE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:NumCaptured_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)NUM_CAPTURED") - field(SCAN, "I/O Intr") -} - -# Delete driver file flag -record(bo, "S03SIM-EA-FSCN-01:HDF5:DeleteDriverFile") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)DELETE_DRIVER_FILE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:DeleteDriverFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)DELETE_DRIVER_FILE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:WriteStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)WRITE_STATUS") - field(ZNAM, "Write OK") - field(ZSV, "NO_ALARM") - field(ONAM, "Write error") - field(OSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-01:HDF5:WriteMessage") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)WRITE_MESSAGE") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:HDF5:LazyOpen") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)FILE_LAZY_OPEN") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:LazyOpen_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)FILE_LAZY_OPEN") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:HDF5:TempSuffix") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)FILE_TEMP_SUFFIX") - field(VAL, "") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:TempSuffix_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)FILE_TEMP_SUFFIX") - field(VAL, "") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:HDF5:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:HDF5:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-01:HDF5:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:HDF5:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-01:HDF5:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:HDF5:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:HDF5:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:HDF5:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-01:HDF5:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:HDF5:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:HDF5:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN1.hdf,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN1.hdf,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:HDF5:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:HDF5:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-01:HDF5:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-01:HDF5:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:HDF5:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:HDF5:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:HDF5:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:HDF5:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-01:HDF5:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:HDF5:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.hdf,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-01:HDF5:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:HDF5:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:HDF5:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:HDF5:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:HDF5:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:HDF5:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:HDF5:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.hdf,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:HDF5:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.hdf,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-01:HDF5:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-01:HDF5:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.hdf,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-01:HDF5:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.hdf,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-01:HDF5:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-01:HDF5:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:HDF5:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-01:HDF5:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-01:HDF5:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)NDARRAY_PORT") - field(VAL, "FSCN1.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:HDF5:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:HDF5:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.hdf,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:HDF5:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.hdf,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:HDF5:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:HDF5:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-01:HDF5:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-01:HDF5:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:HDF5:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-01:HDF5:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:HDF5:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-01:HDF5:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.hdf,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:HDF5:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.hdf,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-01:HDF5:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.hdf,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:HDF5:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:HDF5:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-01:HDF5:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:HDF5:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:HDF5:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:HDF5:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:HDF5:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:HDF5:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:HDF5:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:HDF5:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:HDF5:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:HDF5:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:HDF5:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:HDF5:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:HDF5:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:HDF5:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-01:HDF5:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:HDF5:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.hdf,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-01:HDF5:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.hdf,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:HDF5:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:HDF5:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:HDF5:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:HDF5:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:HDF5:AsynIO") -{ - field(PORT, "FSCN1.hdf") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -# Flush data to file -record(ai, "S03SIM-EA-FSCN-01:HDF5:FlushNow") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_SWMRFlushNow") - field(ZNAM, "Done") - field(ONAM, "Flush") -} - -# We replace some fields in records defined in NDFile.template -# File data format -record(mbbo, "S03SIM-EA-FSCN-01:HDF5:FileFormat") -{ - field(ZRST, "HDF5") - field(ZRVL, "0") - field(ONST, "Invalid") - field(ONVL, "1") -} - -record(mbbi, "S03SIM-EA-FSCN-01:HDF5:FileFormat_RBV") -{ - field(ZRST, "HDF5") - field(ZRVL, "0") - field(ONST, "Undefined") - field(ONVL, "1") -} - -record(bo, "S03SIM-EA-FSCN-01:HDF5:ChunkSizeAuto") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSizeAuto") - field(PINI, "YES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:ChunkSizeAuto_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSizeAuto") - field(SCAN, "I/O Intr") - field(ZNAM, "No") - field(ONAM, "Yes") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:NumRowChunks") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_nRowChunks") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:NumRowChunks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_nRowChunks") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:NumColChunks") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_nColChunks") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:NumColChunks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_nColChunks") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ChunkSize2") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize2") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ChunkSize2_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize2") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ChunkSize3") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize3") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ChunkSize3_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ChunkSize4") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize4") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ChunkSize4_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize4") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ChunkSize5") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize5") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ChunkSize5_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize5") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ChunkSize6") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize6") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ChunkSize6_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize6") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ChunkSize7") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize7") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ChunkSize7_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize7") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ChunkSize8") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize8") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ChunkSize8_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize8") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ChunkSize9") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize9") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ChunkSize9_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkSize9") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:NumFramesChunks") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_nFramesChunks") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:NumFramesChunks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_nFramesChunks") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:NDAttributeChunk") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_NDAttributeChunk") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:NDAttributeChunk_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_NDAttributeChunk") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:BoundaryAlign") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkBoundaryAlign") - field(PINI, "YES") - field(VAL, "0") - field(EGU, "bytes") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:BoundaryAlign_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkBoundaryAlign") - field(SCAN, "I/O Intr") - field(EGU, "bytes") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:BoundaryThreshold") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_chunkBoundaryThreshold") - field(PINI, "YES") - field(VAL, "1") - field(EGU, "bytes") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:BoundaryThreshold_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_chunkBoundaryThreshold") - field(SCAN, "I/O Intr") - field(EGU, "bytes") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:NumExtraDims") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_nExtraDims") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:NumExtraDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_nExtraDims") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSizeN") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSizeN") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSizeN_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSizeN") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimNameN_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimNameN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSizeX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSizeX") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSizeX") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimNameX_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimNameX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSizeY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSizeY") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSizeY") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimNameY_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimNameY") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize3") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize3") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize3_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize3") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimName3_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimName3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize4") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize4") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize4_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize4") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimName4_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimName4") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize5") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize5") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize5_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize5") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimName5_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimName5") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize6") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize6") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize6_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize6") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimName6_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimName6") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize7") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize7") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize7_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize7") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimName7_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimName7") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize8") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize8") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize8_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize8") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimName8_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimName8") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize9") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize9") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimSize9_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimSize9") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimName9_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimName9") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:HDF5:StoreAttr") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_storeAttributes") - field(PINI, "YES") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:StoreAttr_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_storeAttributes") - field(SCAN, "I/O Intr") - field(ZNAM, "No") - field(ONAM, "Yes") -} - -record(bo, "S03SIM-EA-FSCN-01:HDF5:StorePerform") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_storePerformance") - field(PINI, "YES") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:StorePerform_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_storePerformance") - field(SCAN, "I/O Intr") - field(ZNAM, "No") - field(ONAM, "Yes") -} - -record(ai, "S03SIM-EA-FSCN-01:HDF5:RunTime") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_totalRuntime") - field(SCAN, "I/O Intr") - field(PREC, "3") - field(EGU, "s") -} - -record(ai, "S03SIM-EA-FSCN-01:HDF5:IOSpeed") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_totalIoSpeed") - field(SCAN, "I/O Intr") - field(PREC, "1") - field(EGU, "Mbit/s") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:NumFramesFlush") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_flushNthFrame") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:NumFramesFlush_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_flushNthFrame") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:HDF5:Compression") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_compressionType") - field(PINI, "YES") - field(ZRST, "None") - field(ZRVL, "0") - field(ONST, "N-bit") - field(ONVL, "1") - field(TWST, "szip") - field(TWVL, "2") - field(THST, "zlib") - field(THVL, "3") - field(FRST, "Blosc") - field(FRVL, "4") - field(FVST, "BSLZ4") - field(FVVL, "5") - field(SXST, "LZ4") - field(SXVL, "6") - field(SVST, "JPEG") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:HDF5:Compression_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_compressionType") - field(SCAN, "I/O Intr") - field(ZRST, "None") - field(ZRVL, "0") - field(ONST, "N-bit") - field(ONVL, "1") - field(TWST, "szip") - field(TWVL, "2") - field(THST, "zlib") - field(THVL, "3") - field(FRST, "Blosc") - field(FRVL, "4") - field(FVST, "BSLZ4") - field(FVVL, "5") - field(SXST, "LZ4") - field(SXVL, "6") - field(SVST, "JPEG") - field(SVVL, "7") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:NumDataBits") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_nbitsPrecision") - field(PINI, "YES") - field(EGU, "bit") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:NumDataBits_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_nbitsPrecision") - field(SCAN, "I/O Intr") - field(EGU, "bit") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:DataBitsOffset") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_nbitsOffset") - field(PINI, "YES") - field(EGU, "bit") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:DataBitsOffset_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_nbitsOffset") - field(SCAN, "I/O Intr") - field(EGU, "bit") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:SZipNumPixels") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_szipNumPixels") - field(PINI, "YES") - field(EGU, "bit") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:SZipNumPixels_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_szipNumPixels") - field(SCAN, "I/O Intr") - field(EGU, "bit") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ZLevel") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_zCompressLevel") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ZLevel_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_zCompressLevel") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-01:HDF5:BloscShuffle") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_bloscShuffleType") - field(PINI, "YES") - field(ZRST, "None") - field(ZRVL, "0") - field(ONST, "Byte") - field(ONVL, "1") - field(TWST, "Bit") - field(TWVL, "2") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:HDF5:BloscShuffle_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_bloscShuffleType") - field(SCAN, "I/O Intr") - field(ZRST, "None") - field(ZRVL, "0") - field(ONST, "Byte") - field(ONVL, "1") - field(TWST, "Bit") - field(TWVL, "2") -} - -record(mbbo, "S03SIM-EA-FSCN-01:HDF5:BloscCompressor") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_bloscCompressor") - field(PINI, "YES") - field(ZRST, "BloscLZ") - field(ZRVL, "0") - field(ONST, "LZ4") - field(ONVL, "1") - field(TWST, "LZ4HC") - field(TWVL, "2") - field(THST, "SNAPPY") - field(THVL, "3") - field(FRST, "ZLIB") - field(FRVL, "4") - field(FVST, "ZSTD") - field(FVVL, "5") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:HDF5:BloscCompressor_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_bloscCompressor") - field(SCAN, "I/O Intr") - field(ZRST, "BloscLZ") - field(ZRVL, "0") - field(ONST, "LZ4") - field(ONVL, "1") - field(TWST, "LZ4HC") - field(TWVL, "2") - field(THST, "SNAPPY") - field(THVL, "3") - field(FRST, "ZLIB") - field(FRVL, "4") - field(FVST, "ZSTD") - field(FVVL, "5") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:BloscLevel") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_bloscCompressLevel") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:BloscLevel_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_bloscCompressLevel") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:JPEGQuality") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_jpegQuality") - field(VAL, "90") - field(DRVL, "1") - field(DRVH, "100") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:JPEGQuality_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_jpegQuality") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:HDF5:DimAttDatasets") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_dimAttDatasets") - field(PINI, "YES") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:DimAttDatasets_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_dimAttDatasets") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -# File path. -# % autosave 2 -#record(waveform, "S03SIM-EA-FSCN-01:HDF5:XMLPath") -#{ -# field(PINI, "YES") -# field(DTYP, "asynOctetWrite") -# field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_layoutDirectory") -# field(FTVL, "CHAR") -# field(NELM, "256") -#} - -record(waveform, "S03SIM-EA-FSCN-01:HDF5:XMLErrorMsg_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_layoutErrorMsg") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:XMLValid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_layoutValid") - field(ZNAM, "No") - field(ZSV, "MAJOR") - field(ONAM, "Yes") - field(OSV, "NO_ALARM") - field(SCAN, "I/O Intr") -} - -# Filename -# % autosave 2 -record(waveform, "S03SIM-EA-FSCN-01:HDF5:XMLFileName") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_layoutFilename") - field(FTVL, "CHAR") - field(NELM, "2048") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-01:HDF5:XMLFileName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_layoutFilename") - field(FTVL, "CHAR") - field(NELM, "2048") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:SWMRSupported_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_SWMRSupported") - field(SCAN, "I/O Intr") - field(ZNAM, "Not Supported") - field(ONAM, "Supported") -} - -record(bo, "S03SIM-EA-FSCN-01:HDF5:SWMRMode") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_SWMRMode") - field(PINI, "YES") - field(ZNAM, "Off") - field(ONAM, "On") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:SWMRMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_SWMRMode") - field(SCAN, "I/O Intr") - field(ZNAM, "Off") - field(ONAM, "On") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:SWMRActive_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_SWMRRunning") - field(SCAN, "I/O Intr") - field(ZNAM, "Off") - field(ONAM, "Active") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:SWMRCbCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_SWMRCbCounter") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-01:HDF5:PositionMode") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posRunning") - field(PINI, "YES") - field(ZNAM, "Off") - field(ONAM, "On") -} - -record(bi, "S03SIM-EA-FSCN-01:HDF5:PositionMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posRunning") - field(SCAN, "I/O Intr") - field(ZNAM, "Off") - field(ONAM, "On") -} - -record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosNameDimN") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDimN") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosNameDimN_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDimN") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosNameDimX") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDimX") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosNameDimX_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDimX") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosNameDimY") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDimY") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosNameDimY_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDimY") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosNameDim3") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim3") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosNameDim3_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim3") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosNameDim4") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim4") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosNameDim4_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim4") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosNameDim5") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim5") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosNameDim5_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim5") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosNameDim6") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim6") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosNameDim6_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim6") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosNameDim7") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim7") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosNameDim7_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim7") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosNameDim8") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim8") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosNameDim8_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim8") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosNameDim9") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim9") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosNameDim9_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posNameDim9") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosIndexDimN") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDimN") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosIndexDimN_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDimN") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosIndexDimX") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDimX") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosIndexDimX_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDimX") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosIndexDimY") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDimY") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosIndexDimY_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDimY") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim3") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim3") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim3_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim3") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim4") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim4") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim4_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim4") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim5") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim5") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim5_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim5") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim6") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim6") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim6_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim6") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim7") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim7") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim7_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim7") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim8") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim8") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim8_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim8") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim9") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim9") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-01:HDF5:PosIndexDim9_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_posIndexDim9") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:HDF5:FillValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_fillValue") - field(PINI, "YES") - field(PREC, "1") -} - -record(ai, "S03SIM-EA-FSCN-01:HDF5:FillValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_fillValue") - field(SCAN, "I/O Intr") - field(PREC, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunkX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunkX") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunkX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunkX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunkY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunkY") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunkY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunkY") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk3") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk3") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk3_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk4") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk4") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk4_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk4") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk5") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk5") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk5_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk5") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk6") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk6") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk6_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk6") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk7") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk7") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk7_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk7") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk8") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk8") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk8_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk8") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk9") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk9") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:HDF5:ExtraDimChunk9_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.hdf,0,1)HDF5_extraDimChunk9") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDFileHDF5.template -# Database for NDFileHDF5 driver, which saves files for NDArray data. - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, ADDR, Asyn Port address -# % macro, TIMEOUT, Asyn Port timeout -# % macro, XMLSIZE, Number of elements of the XML layout waveform record - -# This associates the template with an edm screen -# % gui, FSCN2.hdf, edmtab, NDFileHDF5.edl, P=S03SIM-EA-FSCN-02,R=:HDF5: - -# This associates a BOY screen with the template -# % gui, FSCN2.hdf, boydetail,ADApp_opi/dls/hdf5_detail.opi, P=S03SIM-EA-FSCN-02, R=:HDF5:, DESC=HDF5 File -# % gui, FSCN2.hdf, boyembed, ADApp_opi/dls/hdf5_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:HDF5:, DESC=HDF5 File -# % gui, FSCN2.hdf, boyembed, ADApp_opi/dls/hdf5_embed.opi, P=S03SIM-EA-FSCN-02, R=:HDF5:, DESC=HDF5 File - -# Info -# % gui, FSCN2.hdf, groupHeading, Info -# % gui, FSCN2.hdf, readback, Port name, S03SIM-EA-FSCN-02:HDF5:PortName_RBV -# % gui, FSCN2.hdf, readback, Plugin type, S03SIM-EA-FSCN-02:HDF5:PluginType_RBV -# Input -# % gui, FSCN2.hdf, demandString, Input, S03SIM-EA-FSCN-02:HDF5:NDArrayPort -# % gui, FSCN2.hdf, readback, Input, S03SIM-EA-FSCN-02:HDF5:NDArrayPort_RBV - -# % gui, FSCN2.hdf, groupHeading, Callback -# % gui, FSCN2.hdf, enum, Callbacks, S03SIM-EA-FSCN-02:HDF5:EnableCallbacks -# % gui, FSCN2.hdf, statusbits, Callbacks, S03SIM-EA-FSCN-02:HDF5:EnableCallbacks_RBV -# % gui, FSCN2.hdf, demand, Min Callback Time, S03SIM-EA-FSCN-02:HDF5:MinCallbackTime -# % gui, FSCN2.hdf, readback, Min Callback Time, S03SIM-EA-FSCN-02:HDF5:MinCallbackTime_RBV -# % gui, FSCN2.hdf, enum, Block Callbacks, S03SIM-EA-FSCN-02:HDF5:BlockingCallbacks -# % gui, FSCN2.hdf, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:HDF5:BlockingCallbacks_RBV - -# % gui, FSCN2.hdf, groupHeading, Counters -# % gui, FSCN2.hdf, demand, Array Counter, S03SIM-EA-FSCN-02:HDF5:ArrayCounter -# % gui, FSCN2.hdf, readback, Array Counter, S03SIM-EA-FSCN-02:HDF5:ArrayCounter_RBV -# % gui, FSCN2.hdf, readback, Array Rate (fps), S03SIM-EA-FSCN-02:HDF5:ArrayRate_RBV -# % gui, FSCN2.hdf, readback, Queue Use, S03SIM-EA-FSCN-02:HDF5:QueueUse -# % gui, FSCN2.hdf, readback, Queue Size, S03SIM-EA-FSCN-02:HDF5:QueueSize -# % gui, FSCN2.hdf, demand, Dropped Arrays, S03SIM-EA-FSCN-02:HDF5:DroppedArrays -# % gui, FSCN2.hdf, readback, Dropped Arrays, S03SIM-EA-FSCN-02:HDF5:DroppedArrays_RBV - -# % gui, FSCN2.hdf, groupHeading, Array Settings -# % gui, FSCN2.hdf, readback, Num Dimensions, S03SIM-EA-FSCN-02:HDF5:NDimensions_RBV -# % gui, FSCN2.hdf, readback, Dim 0 Size, S03SIM-EA-FSCN-02:HDF5:ArraySize0_RBV -# % gui, FSCN2.hdf, readback, Dim 1 Size, S03SIM-EA-FSCN-02:HDF5:ArraySize1_RBV -# % gui, FSCN2.hdf, readback, Dim 2 Size, S03SIM-EA-FSCN-02:HDF5:ArraySize2_RBV -# % gui, FSCN2.hdf, readback, Input Data Type, S03SIM-EA-FSCN-02:HDF5:DataType_RBV -# % gui, FSCN2.hdf, readback, Colour Mode, S03SIM-EA-FSCN-02:HDF5:ColorMode_RBV -# % gui, FSCN2.hdf, readback, Bayer Pattern, S03SIM-EA-FSCN-02:HDF5:BayerPattern_RBV -# % gui, FSCN2.hdf, readback, Unique id, S03SIM-EA-FSCN-02:HDF5:UniqueId_RBV -# % gui, FSCN2.hdf, readback, Timestamp, S03SIM-EA-FSCN-02:HDF5:TimeStamp_RBV -# File -# % gui, FSCN2.hdf, groupHeading, File -# % gui, FSCN2.hdf, demandString, File Path, S03SIM-EA-FSCN-02:HDF5:FilePath -# % gui, FSCN2.hdf, readback, File Path, S03SIM-EA-FSCN-02:HDF5:FilePath_RBV -# % gui, FSCN2.hdf, statusbits, File Path Exists, S03SIM-EA-FSCN-02:HDF5:FilePathExists_RBV -# % gui, FSCN2.hdf, demand, File Name, S03SIM-EA-FSCN-02:HDF5:FileName -# % gui, FSCN2.hdf, readback, File Name, S03SIM-EA-FSCN-02:HDF5:FileName_RBV -# % gui, FSCN2.hdf, demand, File Number, S03SIM-EA-FSCN-02:HDF5:FileNumber -# % gui, FSCN2.hdf, readback, File Number, S03SIM-EA-FSCN-02:HDF5:FileNumber_RBV -# % gui, FSCN2.hdf, enum, Auto Increment, S03SIM-EA-FSCN-02:HDF5:AutoIncrement -# % gui, FSCN2.hdf, statusbits, Auto Increment, S03SIM-EA-FSCN-02:HDF5:AutoIncrement_RBV -# % gui, FSCN2.hdf, demand, File Format, S03SIM-EA-FSCN-02:HDF5:FileTemplate -# % gui, FSCN2.hdf, readback, File Format, S03SIM-EA-FSCN-02:HDF5:FileTemplate_RBV -# % gui, FSCN2.hdf, demand, N to Capture, S03SIM-EA-FSCN-02:HDF5:NumCapture -# % gui, FSCN2.hdf, readback, N to Capture, S03SIM-EA-FSCN-02:HDF5:NumCapture_RBV -# % gui, FSCN2.hdf, readback, N Captured, S03SIM-EA-FSCN-02:HDF5:NumCaptured_RBV -# % gui, FSCN2.hdf, enum, Auto Save, S03SIM-EA-FSCN-02:HDF5:AutoSave -# % gui, FSCN2.hdf, statusbits, Auto Save , S03SIM-EA-FSCN-02:HDF5:AutoSave_RBV -# % gui, FSCN2.hdf, enum, Capture mode, S03SIM-EA-FSCN-02:HDF5:FileWriteMode -# % gui, FSCN2.hdf, readback, Capture mode, S03SIM-EA-FSCN-02:HDF5:FileWriteMode_RBV -# % gui, FSCN2.hdf, enum, Capture, S03SIM-EA-FSCN-02:HDF5:Capture -# % gui, FSCN2.hdf, readback, Capture, S03SIM-EA-FSCN-02:HDF5:Capture_RBV -# % gui, FSCN2.hdf, readback, Write Message, S03SIM-EA-FSCN-02:HDF5:WriteMessage -# % gui, FSCN2.hdf, readback, Write Status, S03SIM-EA-FSCN-02:HDF5:WriteStatus -# % gui, FSCN2.hdf, readback, Write Filename, S03SIM-EA-FSCN-02:HDF5:FullFileName_RBV -# % gui, FSCN2.hdf, enum, Lazy Open, S03SIM-EA-FSCN-02:HDF5:LazyOpen -# % gui, FSCN2.hdf, readback, Lazy Open, S03SIM-EA-FSCN-02:HDF5:LazyOpen_RBV -# % gui, FSCN2.hdf, demand, Temporary Suffix, S03SIM-EA-FSCN-02:HDF5:TempSuffix -# % gui, FSCN2.hdf, readback, Temporary Suffix, S03SIM-EA-FSCN-02:HDF5:TempSuffix_RBV -# % gui, FSCN2.hdf, demand, Create Directories, S03SIM-EA-FSCN-02:HDF5:CreateDirectory -# % gui, FSCN2.hdf, readback, Create Directories, S03SIM-EA-FSCN-02:HDF5:CreateDirectory_RBV -# HDF5 -# % gui, FSCN2.hdf, groupHeading, HDF5 -# % gui, FSCN2.hdf, demand, Extra Dimensions, S03SIM-EA-FSCN-02:HDF5:NumExtraDims -# % gui, FSCN2.hdf, readback, Extra Dimensions, S03SIM-EA-FSCN-02:HDF5:NumExtraDims_RBV -# % gui, FSCN2.hdf, demand, Rows per Chunk, S03SIM-EA-FSCN-02:HDF5:NumRowChunks -# % gui, FSCN2.hdf, readback, Rows per Chunk, S03SIM-EA-FSCN-02:HDF5:NumRowChunks_RBV -# % gui, FSCN2.hdf, demand, Cols per Chunk, S03SIM-EA-FSCN-02:HDF5:NumColChunks -# % gui, FSCN2.hdf, readback, Cols per Chunk, S03SIM-EA-FSCN-02:HDF5:NumColChunks_RBV -# % gui, FSCN2.hdf, demand, Frames per Chunk, S03SIM-EA-FSCN-02:HDF5:NumFramesChunks -# % gui, FSCN2.hdf, readback, Frames per Chunk, S03SIM-EA-FSCN-02:HDF5:NumFramesChunks_RBV -# % gui, FSCN2.hdf, demand, Boundary Alignment, S03SIM-EA-FSCN-02:HDF5:BoundaryAlign -# % gui, FSCN2.hdf, readback, Boundary Alignment, S03SIM-EA-FSCN-02:HDF5:BoundaryAlign_RBV -# % gui, FSCN2.hdf, demand, Boundary Threshold, S03SIM-EA-FSCN-02:HDF5:BoundaryThreshold -# % gui, FSCN2.hdf, readback, Boundary Threshold, S03SIM-EA-FSCN-02:HDF5:BoundaryThreshold_RBV -# % gui, FSCN2.hdf, demand, Flush on Nth Frame, S03SIM-EA-FSCN-02:HDF5:NumFramesFlush -# % gui, FSCN2.hdf, readback, Flush on Nth Frame, S03SIM-EA-FSCN-02:HDF5:NumFramesFlush_RBV -# % gui, FSCN2.hdf, enum, Store Attribute Data, S03SIM-EA-FSCN-02:HDF5:StoreAttr -# % gui, FSCN2.hdf, readback, Store Attribute Data, S03SIM-EA-FSCN-02:HDF5:StoreAttr_RBV -# % gui, FSCN2.hdf, enum, Store Performance Data, S03SIM-EA-FSCN-02:HDF5:StorePerform -# % gui, FSCN2.hdf, readback, Store Performance Data, S03SIM-EA-FSCN-02:HDF5:StorePerform_RBV -# % gui, FSCN2.hdf, readback, Total Write Time, S03SIM-EA-FSCN-02:HDF5:RunTime -# % gui, FSCN2.hdf, readback, Total Write Speed, S03SIM-EA-FSCN-02:HDF5:IOSpeed -# % gui, FSCN2.hdf, enum, Compression Type, S03SIM-EA-FSCN-02:HDF5:Compression -# % gui, FSCN2.hdf, readback, Compression Type, S03SIM-EA-FSCN-02:HDF5:Compression_RBV -# % gui, FSCN2.hdf, demand, N-bit bits per Pixel, S03SIM-EA-FSCN-02:HDF5:NumDataBits -# % gui, FSCN2.hdf, readback, N-bit bits per Pixel, S03SIM-EA-FSCN-02:HDF5:NumDataBits_RBV -# % gui, FSCN2.hdf, demand, N-bit Offset, S03SIM-EA-FSCN-02:HDF5:DataBitsOffset -# % gui, FSCN2.hdf, readback, N-bit Offset, S03SIM-EA-FSCN-02:HDF5:DataBitsOffset_RBV -# % gui, FSCN2.hdf, demand, Szip Filter Size, S03SIM-EA-FSCN-02:HDF5:SZipNumPixels -# % gui, FSCN2.hdf, readback, Szip Filter Size, S03SIM-EA-FSCN-02:HDF5:SZipNumPixels_RBV -# % gui, FSCN2.hdf, demand, Zlib Deflate Level, S03SIM-EA-FSCN-02:HDF5:ZLevel -# % gui, FSCN2.hdf, readback, Zlib Deflate Level, S03SIM-EA-FSCN-02:HDF5:ZLevel_RBV - -# Memory -# % gui, FSCN2.hdf, groupHeading, Memory -# % gui, FSCN2.hdf, readback, Max memory, S03SIM-EA-FSCN-02:HDF5:PoolMaxMem -# % gui, FSCN2.hdf, readback, Max buffers, S03SIM-EA-FSCN-02:HDF5:PoolMaxBuffers -# % gui, FSCN2.hdf, readback, Used memory, S03SIM-EA-FSCN-02:HDF5:PoolUsedMem -# % gui, FSCN2.hdf, readback, Allocated buffers, S03SIM-EA-FSCN-02:HDF5:PoolAllocBuffers -# % gui, FSCN2.hdf, readback, Free buffers, S03SIM-EA-FSCN-02:HDF5:PoolFreeBuffers - -#=================================================================# -# Template file: NDFile.template -# Database for NDFile driver, which saves files for NDArray data. -# Mark Rivers -# April 7, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -################################################################### -# These records control file I/O # -################################################################### - -# File path. -record(waveform, "S03SIM-EA-FSCN-02:HDF5:FilePath") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.hdf,0,1)FILE_PATH") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-02:HDF5:FilePath_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)FILE_PATH") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:FilePathExists_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)FILE_PATH_EXISTS") - field(ZNAM, "No") - field(ZSV, "MAJOR") - field(ONAM, "Yes") - field(OSV, "NO_ALARM") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:CreateDirectory") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)CREATE_DIR") - field(VAL, "0" ) - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:CreateDirectory_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)CREATE_DIR") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -# Filename -record(waveform, "S03SIM-EA-FSCN-02:HDF5:FileName") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.hdf,0,1)FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-02:HDF5:FileName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:FileNumber") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)FILE_NUMBER") - field(VAL, "1") - info(ai:READBACK, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:FileNumber_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)FILE_NUMBER") - field(SCAN, "I/O Intr") -} - -# Autoincrement flag -record(bo, "S03SIM-EA-FSCN-02:HDF5:AutoIncrement") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)AUTO_INCREMENT") - field(VAL, "1") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:AutoIncrement_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)AUTO_INCREMENT") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -# File template -record(waveform, "S03SIM-EA-FSCN-02:HDF5:FileTemplate") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.hdf,0,1)FILE_TEMPLATE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-02:HDF5:FileTemplate_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)FILE_TEMPLATE") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -# Full filename, including path -record(waveform, "S03SIM-EA-FSCN-02:HDF5:FullFileName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)FULL_FILE_NAME") - field(FTVL, "CHAR") - field(NELM, "512") - field(SCAN, "I/O Intr") -} - -# Autosave flag -record(bo, "S03SIM-EA-FSCN-02:HDF5:AutoSave") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)AUTO_SAVE") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:AutoSave_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)AUTO_SAVE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -# Write file -record(ai, "S03SIM-EA-FSCN-02:HDF5:WriteFile") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)WRITE_FILE") - field(ZNAM, "Done") - field(ONAM, "Write") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:WriteFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)WRITE_FILE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Writing") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - - -# Read file -record(ai, "S03SIM-EA-FSCN-02:HDF5:ReadFile") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)READ_FILE") - field(ZNAM, "Done") - field(ONAM, "Read") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:ReadFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)READ_FILE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Reading") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -# File data format -record(mbbo, "S03SIM-EA-FSCN-02:HDF5:FileFormat") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)FILE_FORMAT") - field(VAL, "0") - field(ZRST, "Undefined") - field(ZRVL, "0") - field(ONST, "Invalid") - field(ONVL, "1") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:HDF5:FileFormat_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)FILE_FORMAT") - field(ZRST, "netCDF") - field(ZRVL, "0") - field(ONST, "Undefined") - field(ONVL, "1") - field(SCAN, "I/O Intr") -} - -# File save mode -record(mbbo, "S03SIM-EA-FSCN-02:HDF5:FileWriteMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)WRITE_MODE") - field(VAL, "0") - field(ZRST, "Single") - field(ZRVL, "0") - field(ONST, "Capture") - field(ONVL, "1") - field(TWST, "Stream") - field(TWVL, "2") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:HDF5:FileWriteMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)WRITE_MODE") - field(ZRST, "Single") - field(ZRVL, "0") - field(ONST, "Capture") - field(ONVL, "1") - field(TWST, "Stream") - field(TWVL, "2") - field(SCAN, "I/O Intr") -} - -# Capture data -record(ai, "S03SIM-EA-FSCN-02:HDF5:Capture") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)CAPTURE") - field(ZNAM, "Done") - field(ONAM, "Capture") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:Capture_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)CAPTURE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Capturing") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:NumCapture") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)NUM_CAPTURE") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:NumCapture_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)NUM_CAPTURE") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:NumCaptured_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)NUM_CAPTURED") - field(SCAN, "I/O Intr") -} - -# Delete driver file flag -record(bo, "S03SIM-EA-FSCN-02:HDF5:DeleteDriverFile") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)DELETE_DRIVER_FILE") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:DeleteDriverFile_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)DELETE_DRIVER_FILE") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:WriteStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)WRITE_STATUS") - field(ZNAM, "Write OK") - field(ZSV, "NO_ALARM") - field(ONAM, "Write error") - field(OSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -record(waveform, "S03SIM-EA-FSCN-02:HDF5:WriteMessage") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)WRITE_MESSAGE") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:HDF5:LazyOpen") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)FILE_LAZY_OPEN") - field(VAL, "0") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:LazyOpen_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)FILE_LAZY_OPEN") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:HDF5:TempSuffix") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)FILE_TEMP_SUFFIX") - field(VAL, "") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:TempSuffix_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)FILE_TEMP_SUFFIX") - field(VAL, "") - field(SCAN, "I/O Intr") -} -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:HDF5:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:HDF5:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-02:HDF5:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:HDF5:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-02:HDF5:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:HDF5:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:HDF5:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:HDF5:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-02:HDF5:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:HDF5:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:HDF5:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN2.hdf,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN2.hdf,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:HDF5:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:HDF5:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:HDF5:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-02:HDF5:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:HDF5:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:HDF5:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:HDF5:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:HDF5:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-02:HDF5:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:HDF5:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.hdf,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-02:HDF5:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:HDF5:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:HDF5:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:HDF5:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:HDF5:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:HDF5:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:HDF5:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.hdf,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:HDF5:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.hdf,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-02:HDF5:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-02:HDF5:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.hdf,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-02:HDF5:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.hdf,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-02:HDF5:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-02:HDF5:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:HDF5:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-02:HDF5:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-02:HDF5:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)NDARRAY_PORT") - field(VAL, "FSCN2.CAM") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:HDF5:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:HDF5:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.hdf,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:HDF5:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.hdf,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:HDF5:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:HDF5:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-02:HDF5:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-02:HDF5:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:HDF5:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-02:HDF5:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:HDF5:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-02:HDF5:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.hdf,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:HDF5:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.hdf,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-02:HDF5:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.hdf,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:HDF5:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:HDF5:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-02:HDF5:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:HDF5:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:HDF5:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:HDF5:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:HDF5:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:HDF5:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:HDF5:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:HDF5:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:HDF5:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:HDF5:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:HDF5:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:HDF5:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:HDF5:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:HDF5:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-02:HDF5:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:HDF5:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.hdf,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-02:HDF5:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.hdf,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:HDF5:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:HDF5:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:HDF5:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:HDF5:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:HDF5:AsynIO") -{ - field(PORT, "FSCN2.hdf") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -# Flush data to file -record(ai, "S03SIM-EA-FSCN-02:HDF5:FlushNow") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_SWMRFlushNow") - field(ZNAM, "Done") - field(ONAM, "Flush") -} - -# We replace some fields in records defined in NDFile.template -# File data format -record(mbbo, "S03SIM-EA-FSCN-02:HDF5:FileFormat") -{ - field(ZRST, "HDF5") - field(ZRVL, "0") - field(ONST, "Invalid") - field(ONVL, "1") -} - -record(mbbi, "S03SIM-EA-FSCN-02:HDF5:FileFormat_RBV") -{ - field(ZRST, "HDF5") - field(ZRVL, "0") - field(ONST, "Undefined") - field(ONVL, "1") -} - -record(bo, "S03SIM-EA-FSCN-02:HDF5:ChunkSizeAuto") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSizeAuto") - field(PINI, "YES") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:ChunkSizeAuto_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSizeAuto") - field(SCAN, "I/O Intr") - field(ZNAM, "No") - field(ONAM, "Yes") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:NumRowChunks") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_nRowChunks") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:NumRowChunks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_nRowChunks") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:NumColChunks") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_nColChunks") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:NumColChunks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_nColChunks") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ChunkSize2") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize2") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ChunkSize2_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize2") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ChunkSize3") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize3") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ChunkSize3_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ChunkSize4") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize4") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ChunkSize4_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize4") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ChunkSize5") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize5") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ChunkSize5_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize5") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ChunkSize6") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize6") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ChunkSize6_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize6") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ChunkSize7") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize7") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ChunkSize7_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize7") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ChunkSize8") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize8") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ChunkSize8_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize8") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ChunkSize9") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize9") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ChunkSize9_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkSize9") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:NumFramesChunks") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_nFramesChunks") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:NumFramesChunks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_nFramesChunks") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:NDAttributeChunk") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_NDAttributeChunk") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:NDAttributeChunk_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_NDAttributeChunk") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:BoundaryAlign") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkBoundaryAlign") - field(PINI, "YES") - field(VAL, "0") - field(EGU, "bytes") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:BoundaryAlign_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkBoundaryAlign") - field(SCAN, "I/O Intr") - field(EGU, "bytes") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:BoundaryThreshold") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_chunkBoundaryThreshold") - field(PINI, "YES") - field(VAL, "1") - field(EGU, "bytes") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:BoundaryThreshold_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_chunkBoundaryThreshold") - field(SCAN, "I/O Intr") - field(EGU, "bytes") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:NumExtraDims") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_nExtraDims") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:NumExtraDims_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_nExtraDims") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSizeN") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSizeN") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSizeN_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSizeN") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimNameN_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimNameN") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSizeX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSizeX") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSizeX") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimNameX_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimNameX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSizeY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSizeY") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSizeY") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimNameY_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimNameY") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize3") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize3") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize3_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize3") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimName3_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimName3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize4") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize4") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize4_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize4") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimName4_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimName4") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize5") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize5") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize5_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize5") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimName5_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimName5") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize6") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize6") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize6_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize6") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimName6_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimName6") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize7") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize7") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize7_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize7") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimName7_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimName7") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize8") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize8") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize8_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize8") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimName8_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimName8") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize9") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize9") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimSize9_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimSize9") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimName9_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimName9") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:HDF5:StoreAttr") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_storeAttributes") - field(PINI, "YES") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:StoreAttr_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_storeAttributes") - field(SCAN, "I/O Intr") - field(ZNAM, "No") - field(ONAM, "Yes") -} - -record(bo, "S03SIM-EA-FSCN-02:HDF5:StorePerform") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_storePerformance") - field(PINI, "YES") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:StorePerform_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_storePerformance") - field(SCAN, "I/O Intr") - field(ZNAM, "No") - field(ONAM, "Yes") -} - -record(ai, "S03SIM-EA-FSCN-02:HDF5:RunTime") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_totalRuntime") - field(SCAN, "I/O Intr") - field(PREC, "3") - field(EGU, "s") -} - -record(ai, "S03SIM-EA-FSCN-02:HDF5:IOSpeed") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_totalIoSpeed") - field(SCAN, "I/O Intr") - field(PREC, "1") - field(EGU, "Mbit/s") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:NumFramesFlush") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_flushNthFrame") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:NumFramesFlush_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_flushNthFrame") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:HDF5:Compression") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_compressionType") - field(PINI, "YES") - field(ZRST, "None") - field(ZRVL, "0") - field(ONST, "N-bit") - field(ONVL, "1") - field(TWST, "szip") - field(TWVL, "2") - field(THST, "zlib") - field(THVL, "3") - field(FRST, "Blosc") - field(FRVL, "4") - field(FVST, "BSLZ4") - field(FVVL, "5") - field(SXST, "LZ4") - field(SXVL, "6") - field(SVST, "JPEG") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:HDF5:Compression_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_compressionType") - field(SCAN, "I/O Intr") - field(ZRST, "None") - field(ZRVL, "0") - field(ONST, "N-bit") - field(ONVL, "1") - field(TWST, "szip") - field(TWVL, "2") - field(THST, "zlib") - field(THVL, "3") - field(FRST, "Blosc") - field(FRVL, "4") - field(FVST, "BSLZ4") - field(FVVL, "5") - field(SXST, "LZ4") - field(SXVL, "6") - field(SVST, "JPEG") - field(SVVL, "7") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:NumDataBits") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_nbitsPrecision") - field(PINI, "YES") - field(EGU, "bit") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:NumDataBits_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_nbitsPrecision") - field(SCAN, "I/O Intr") - field(EGU, "bit") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:DataBitsOffset") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_nbitsOffset") - field(PINI, "YES") - field(EGU, "bit") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:DataBitsOffset_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_nbitsOffset") - field(SCAN, "I/O Intr") - field(EGU, "bit") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:SZipNumPixels") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_szipNumPixels") - field(PINI, "YES") - field(EGU, "bit") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:SZipNumPixels_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_szipNumPixels") - field(SCAN, "I/O Intr") - field(EGU, "bit") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ZLevel") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_zCompressLevel") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ZLevel_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_zCompressLevel") - field(SCAN, "I/O Intr") -} - -record(mbbo, "S03SIM-EA-FSCN-02:HDF5:BloscShuffle") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_bloscShuffleType") - field(PINI, "YES") - field(ZRST, "None") - field(ZRVL, "0") - field(ONST, "Byte") - field(ONVL, "1") - field(TWST, "Bit") - field(TWVL, "2") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:HDF5:BloscShuffle_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_bloscShuffleType") - field(SCAN, "I/O Intr") - field(ZRST, "None") - field(ZRVL, "0") - field(ONST, "Byte") - field(ONVL, "1") - field(TWST, "Bit") - field(TWVL, "2") -} - -record(mbbo, "S03SIM-EA-FSCN-02:HDF5:BloscCompressor") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_bloscCompressor") - field(PINI, "YES") - field(ZRST, "BloscLZ") - field(ZRVL, "0") - field(ONST, "LZ4") - field(ONVL, "1") - field(TWST, "LZ4HC") - field(TWVL, "2") - field(THST, "SNAPPY") - field(THVL, "3") - field(FRST, "ZLIB") - field(FRVL, "4") - field(FVST, "ZSTD") - field(FVVL, "5") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:HDF5:BloscCompressor_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_bloscCompressor") - field(SCAN, "I/O Intr") - field(ZRST, "BloscLZ") - field(ZRVL, "0") - field(ONST, "LZ4") - field(ONVL, "1") - field(TWST, "LZ4HC") - field(TWVL, "2") - field(THST, "SNAPPY") - field(THVL, "3") - field(FRST, "ZLIB") - field(FRVL, "4") - field(FVST, "ZSTD") - field(FVVL, "5") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:BloscLevel") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_bloscCompressLevel") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:BloscLevel_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_bloscCompressLevel") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:JPEGQuality") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_jpegQuality") - field(VAL, "90") - field(DRVL, "1") - field(DRVH, "100") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:JPEGQuality_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_jpegQuality") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:HDF5:DimAttDatasets") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_dimAttDatasets") - field(PINI, "YES") - field(ZNAM, "No") - field(ONAM, "Yes") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:DimAttDatasets_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_dimAttDatasets") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - -# File path. -# % autosave 2 -#record(waveform, "S03SIM-EA-FSCN-02:HDF5:XMLPath") -#{ -# field(PINI, "YES") -# field(DTYP, "asynOctetWrite") -# field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_layoutDirectory") -# field(FTVL, "CHAR") -# field(NELM, "256") -#} - -record(waveform, "S03SIM-EA-FSCN-02:HDF5:XMLErrorMsg_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_layoutErrorMsg") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:XMLValid_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_layoutValid") - field(ZNAM, "No") - field(ZSV, "MAJOR") - field(ONAM, "Yes") - field(OSV, "NO_ALARM") - field(SCAN, "I/O Intr") -} - -# Filename -# % autosave 2 -record(waveform, "S03SIM-EA-FSCN-02:HDF5:XMLFileName") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_layoutFilename") - field(FTVL, "CHAR") - field(NELM, "2048") - info(autosaveFields, "VAL") -} - -record(waveform, "S03SIM-EA-FSCN-02:HDF5:XMLFileName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_layoutFilename") - field(FTVL, "CHAR") - field(NELM, "2048") - field(SCAN, "I/O Intr") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:SWMRSupported_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_SWMRSupported") - field(SCAN, "I/O Intr") - field(ZNAM, "Not Supported") - field(ONAM, "Supported") -} - -record(bo, "S03SIM-EA-FSCN-02:HDF5:SWMRMode") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_SWMRMode") - field(PINI, "YES") - field(ZNAM, "Off") - field(ONAM, "On") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:SWMRMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_SWMRMode") - field(SCAN, "I/O Intr") - field(ZNAM, "Off") - field(ONAM, "On") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:SWMRActive_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_SWMRRunning") - field(SCAN, "I/O Intr") - field(ZNAM, "Off") - field(ONAM, "Active") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:SWMRCbCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_SWMRCbCounter") - field(SCAN, "I/O Intr") -} - -record(bo, "S03SIM-EA-FSCN-02:HDF5:PositionMode") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posRunning") - field(PINI, "YES") - field(ZNAM, "Off") - field(ONAM, "On") -} - -record(bi, "S03SIM-EA-FSCN-02:HDF5:PositionMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posRunning") - field(SCAN, "I/O Intr") - field(ZNAM, "Off") - field(ONAM, "On") -} - -record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosNameDimN") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDimN") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosNameDimN_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDimN") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosNameDimX") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDimX") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosNameDimX_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDimX") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosNameDimY") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDimY") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosNameDimY_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDimY") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosNameDim3") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim3") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosNameDim3_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim3") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosNameDim4") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim4") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosNameDim4_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim4") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosNameDim5") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim5") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosNameDim5_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim5") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosNameDim6") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim6") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosNameDim6_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim6") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosNameDim7") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim7") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosNameDim7_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim7") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosNameDim8") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim8") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosNameDim8_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim8") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosNameDim9") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim9") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosNameDim9_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posNameDim9") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosIndexDimN") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDimN") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosIndexDimN_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDimN") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosIndexDimX") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDimX") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosIndexDimX_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDimX") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosIndexDimY") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDimY") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosIndexDimY_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDimY") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim3") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim3") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim3_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim3") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim4") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim4") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim4_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim4") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim5") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim5") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim5_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim5") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim6") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim6") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim6_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim6") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim7") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim7") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim7_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim7") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim8") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim8") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim8_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim8") - field(SCAN, "I/O Intr") -} - -record(stringout, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim9") -{ - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim9") - field(PINI, "YES") -} - -record(stringin, "S03SIM-EA-FSCN-02:HDF5:PosIndexDim9_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_posIndexDim9") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:HDF5:FillValue") -{ - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_fillValue") - field(PINI, "YES") - field(PREC, "1") -} - -record(ai, "S03SIM-EA-FSCN-02:HDF5:FillValue_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_fillValue") - field(SCAN, "I/O Intr") - field(PREC, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunkX") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunkX") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunkX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunkX") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunkY") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunkY") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunkY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunkY") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk3") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk3") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk3_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk4") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk4") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk4_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk4") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk5") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk5") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk5_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk5") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk6") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk6") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk6_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk6") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk7") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk7") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk7_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk7") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk8") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk8") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk8_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk8") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk9") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk9") - field(PINI, "YES") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:HDF5:ExtraDimChunk9_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.hdf,0,1)HDF5_extraDimChunk9") - field(SCAN, "I/O Intr") -} -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, QUALITY, Jpeg Quality in percent -# % macro, MAXW, Maximum Jpeg Width -# % macro, MAXH, Maximum Jpeg Height -# % macro, SETW, Set initial Jpeg Width -# % macro, SETH, Set initial Jpeg Height -# % gui, OAV.mjpg, edmtab, ffmpegStream.edl, P=S03SIM-DI-OAV-01,R=:MJPG: - - -# # \file -# # ffmpegServer contains a very simple http server based on -# # nullhttpd. If a file named -# # \.jpg is requested for any ffmpegStream object named \, then it -# # will return the last NDArray received by the object compressed to jpeg. If -# # \.mjpg is requested then it will return an mjpg stream over http to the -# # client. Otherwise, it will return an index page listing all the available -# # streams. -# # \section ffmpegStream_setup Setup -# # - In the database, an instance of NDPluginBase is required, followed by an -# # instance of this template. -# # - In the startup scripts, call ffmpegServerConfigure() once per IOC to setup -# # the http server, then call ffmpegStreamConfigure() once per ffmpegStream -# # instance to setup the areadetector plugin -# # - see \ref build_instructions -# # \section ffmpegStream_screenshots Screenshots -# # \image html server.png "Index page for ffmpegServer" -# # \image html ffmpegStreamEdm.png "Edm screen for ffmpegStream" - -# This associates a BOY screen with the template -# % gui, OAV.mjpg, boydetail,ffmpegServerApp_opi/mjpg_detail.opi, P=S03SIM-DI-OAV-01, R=:MJPG:, DESC=MPEG Viewer -# % gui, OAV.mjpg, boyembed, ffmpegServerApp_opi/mjpg_embed_box.opi, P=S03SIM-DI-OAV-01, R=:MJPG:, DESC=MPEG Viewer -# % gui, OAV.mjpg, boyembed, ffmpegServerApp_opi/mjpg_embed.opi, P=S03SIM-DI-OAV-01, R=:MJPG:, DESC=MPEG Viewer - -# Info -# % gui, OAV.mjpg, groupHeading, Info -# % gui, OAV.mjpg, readback, Port name, S03SIM-DI-OAV-01:MJPG:PortName_RBV -# % gui, OAV.mjpg, readback, Plugin type, S03SIM-DI-OAV-01:MJPG:PluginType_RBV -# Input -# % gui, OAV.mjpg, demandString, Input, S03SIM-DI-OAV-01:MJPG:NDArrayPort -# % gui, OAV.mjpg, readback, Input, S03SIM-DI-OAV-01:MJPG:NDArrayPort_RBV - -# % gui, OAV.mjpg, groupHeading, Callback -# % gui, OAV.mjpg, enum, Callbacks, S03SIM-DI-OAV-01:MJPG:EnableCallbacks -# % gui, OAV.mjpg, statusbits, Callbacks, S03SIM-DI-OAV-01:MJPG:EnableCallbacks_RBV -# % gui, OAV.mjpg, demand, Min Callback Time, S03SIM-DI-OAV-01:MJPG:MinCallbackTime -# % gui, OAV.mjpg, readback, Min Callback Time, S03SIM-DI-OAV-01:MJPG:MinCallbackTime_RBV -# % gui, OAV.mjpg, enum, Block Callbacks, S03SIM-DI-OAV-01:MJPG:BlockingCallbacks -# % gui, OAV.mjpg, statusbits, Block Callbacks, S03SIM-DI-OAV-01:MJPG:BlockingCallbacks_RBV - -# % gui, OAV.mjpg, groupHeading, Counters -# % gui, OAV.mjpg, demand, Array Counter, S03SIM-DI-OAV-01:MJPG:ArrayCounter -# % gui, OAV.mjpg, readback, Array Counter, S03SIM-DI-OAV-01:MJPG:ArrayCounter_RBV -# % gui, OAV.mjpg, readback, Array Rate (fps), S03SIM-DI-OAV-01:MJPG:ArrayRate_RBV -# % gui, OAV.mjpg, readback, Queue Use, S03SIM-DI-OAV-01:MJPG:QueueUse -# % gui, OAV.mjpg, readback, Queue Size, S03SIM-DI-OAV-01:MJPG:QueueSize -# % gui, OAV.mjpg, demand, Dropped Arrays, S03SIM-DI-OAV-01:MJPG:DroppedArrays -# % gui, OAV.mjpg, readback, Dropped Arrays, S03SIM-DI-OAV-01:MJPG:DroppedArrays_RBV - -# % gui, OAV.mjpg, groupHeading, Array Settings -# % gui, OAV.mjpg, readback, Num Dimensions, S03SIM-DI-OAV-01:MJPG:NDimensions_RBV -# % gui, OAV.mjpg, readback, Dim 0 Size, S03SIM-DI-OAV-01:MJPG:ArraySize0_RBV -# % gui, OAV.mjpg, readback, Dim 1 Size, S03SIM-DI-OAV-01:MJPG:ArraySize1_RBV -# % gui, OAV.mjpg, readback, Dim 2 Size, S03SIM-DI-OAV-01:MJPG:ArraySize2_RBV -# % gui, OAV.mjpg, readback, Input Data Type, S03SIM-DI-OAV-01:MJPG:DataType_RBV -# % gui, OAV.mjpg, readback, Colour Mode, S03SIM-DI-OAV-01:MJPG:ColorMode_RBV -# % gui, OAV.mjpg, readback, Bayer Pattern, S03SIM-DI-OAV-01:MJPG:BayerPattern_RBV -# % gui, OAV.mjpg, readback, Unique id, S03SIM-DI-OAV-01:MJPG:UniqueId_RBV -# % gui, OAV.mjpg, readback, Timestamp, S03SIM-DI-OAV-01:MJPG:TimeStamp_RBV - -# Video -# % gui, OAV.mjpg, groupHeading, Video Settings -# % gui, OAV.mjpg, readback, Host, S03SIM-DI-OAV-01:MJPG:HOST_RBV -# % gui, OAV.mjpg, readback, Host port, S03SIM-DI-OAV-01:MJPG:HTTP_PORT_RBV -# % gui, OAV.mjpg, readback, Num clients, S03SIM-DI-OAV-01:MJPG:CLIENTS_RBV -# % gui, OAV.mjpg, demand, JPEG Quality, S03SIM-DI-OAV-01:MJPG:QUALITY -# % gui, OAV.mjpg, readback, JPEG Quality, S03SIM-DI-OAV-01:MJPG:QUALITY_RBV -# % gui, OAV.mjpg, demand, Max Width, S03SIM-DI-OAV-01:MJPG:MAXW -# % gui, OAV.mjpg, readback, Max Width, S03SIM-DI-OAV-01:MJPG:MAXW_RBV -# % gui, OAV.mjpg, demand, Max Height, S03SIM-DI-OAV-01:MJPG:MAXH -# % gui, OAV.mjpg, readback, Max Height, S03SIM-DI-OAV-01:MJPG:MAXH_RBV -# % gui, OAV.mjpg, enum, Always On, S03SIM-DI-OAV-01:MJPG:ALWAYS_ON -# % gui, OAV.mjpg, readback, Always On, S03SIM-DI-OAV-01:MJPG:ALWAYS_ON_RBV -# % gui, OAV.mjpg, readback, Snapshot URL, S03SIM-DI-OAV-01:MJPG:JPG_URL_RBV -# % gui, OAV.mjpg, readback, Streaming URL, S03SIM-DI-OAV-01:MJPG:MJPG_URL_RBV -# % gui, OAV.mjpg, enum, Show Grid, S03SIM-DI-OAV-01:MJPG:GRID -# % gui, OAV.mjpg, demand, X Position, S03SIM-DI-OAV-01:MJPG:GX -# % gui, OAV.mjpg, demand, Y Position, S03SIM-DI-OAV-01:MJPG:GY -# % gui, OAV.mjpg, demand, Spacing, S03SIM-DI-OAV-01:MJPG:GS -# % gui, OAV.mjpg, demand, Colour RGB, S03SIM-DI-OAV-01:MJPG:GCOL -# % gui, OAV.mjpg, command, Fast Viewer -# % gui, OAV.mjpg, command, Fallback Viewer -# % gui, OAV.mjpg, command, Firefox (slow) -# % gui, OAV.mjpg, command, Firefox (snapshot) - - -# Memory -# % gui, OAV.mjpg, groupHeading, Memory -# % gui, OAV.mjpg, readback, Max memory, S03SIM-DI-OAV-01:MJPG:PoolMaxMem -# % gui, OAV.mjpg, readback, Max buffers, S03SIM-DI-OAV-01:MJPG:PoolMaxBuffers -# % gui, OAV.mjpg, readback, Used memory, S03SIM-DI-OAV-01:MJPG:PoolUsedMem -# % gui, OAV.mjpg, readback, Allocated buffers, S03SIM-DI-OAV-01:MJPG:PoolAllocBuffers -# % gui, OAV.mjpg, readback, Free buffers, S03SIM-DI-OAV-01:MJPG:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:MJPG:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.mjpg,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:MJPG:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.mjpg,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:MJPG:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.mjpg,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:MJPG:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.mjpg,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:MJPG:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.mjpg,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:MJPG:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.mjpg,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:MJPG:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.mjpg,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:MJPG:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.mjpg,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:MJPG:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:MJPG:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:MJPG:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:MJPG:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:MJPG:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:MJPG:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:MJPG:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:MJPG:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:MJPG:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:MJPG:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:MJPG:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:MJPG:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:MJPG:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.mjpg,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.mjpg,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:MJPG:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:MJPG:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:MJPG:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.mjpg,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:MJPG:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:MJPG:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:MJPG:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:MJPG:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:MJPG:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:MJPG:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.mjpg,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:MJPG:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:MJPG:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:MJPG:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:MJPG:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:MJPG:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:MJPG:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:MJPG:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:MJPG:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.mjpg,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:MJPG:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.mjpg,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:MJPG:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-DI-OAV-01:MJPG:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.mjpg,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-DI-OAV-01:MJPG:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.mjpg,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:PoolFreeBuffers") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:PoolUsedBuffers") -} - -record(calc, "S03SIM-DI-OAV-01:MJPG:PoolUsedBuffers") -{ - field(INPA, "S03SIM-DI-OAV-01:MJPG:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:MJPG:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-DI-OAV-01:MJPG:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:MJPG:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.mjpg,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:MJPG:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.mjpg,0,1)NDARRAY_PORT") - field(VAL, "OAV.over") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-DI-OAV-01:MJPG:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.mjpg,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:MJPG:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:MJPG:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:MJPG:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:MJPG:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.mjpg,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:MJPG:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.mjpg,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:MJPG:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:MJPG:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-DI-OAV-01:MJPG:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-DI-OAV-01:MJPG:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:MJPG:MinCallbackTime PP") -} - -record(calc, "S03SIM-DI-OAV-01:MJPG:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:MJPG:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-DI-OAV-01:MJPG:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.mjpg,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-DI-OAV-01:MJPG:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.mjpg,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:MJPG:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.mjpg,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:MJPG:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:MJPG:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:MJPG:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-DI-OAV-01:MJPG:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:MJPG:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:MJPG:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:MJPG:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:MJPG:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:MJPG:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:MJPG:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:MJPG:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:MJPG:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:MJPG:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:MJPG:QueueUse.HIHI") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:MJPG:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:MJPG:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:MJPG:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-DI-OAV-01:MJPG:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:MJPG:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-DI-OAV-01:MJPG:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-DI-OAV-01:MJPG:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.mjpg,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-DI-OAV-01:MJPG:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.mjpg,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:MJPG:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:MJPG:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:MJPG:SortSize") - field(OUT, "S03SIM-DI-OAV-01:MJPG:SortFree.LOW") -} - -record(longout, "S03SIM-DI-OAV-01:MJPG:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-DI-OAV-01:MJPG:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-DI-OAV-01:MJPG:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:MJPG:AsynIO") -{ - field(PORT, "OAV.mjpg") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -# # JPEG Quality -record(ao, "S03SIM-DI-OAV-01:MJPG:QUALITY") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg 0)FFMPEG_QUALITY") - field(VAL, "100") - field(DRVH, "100") - field(DRVL, "0") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -# # JPEG Quality Readback from driver -record(ai, "S03SIM-DI-OAV-01:MJPG:QUALITY_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg 0)FFMPEG_QUALITY") -} - -# # Maximum jpg width -record(ao, "S03SIM-DI-OAV-01:MJPG:MAXW") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg 0)FFMPEG_MAXW") - field(VAL, "1600") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -# # Maximum jpg width Readback from driver -record(ai, "S03SIM-DI-OAV-01:MJPG:MAXW_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg 0)FFMPEG_MAXW") -} - -# # Maximum jpg height -record(ao, "S03SIM-DI-OAV-01:MJPG:MAXH") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg 0)FFMPEG_MAXH") - field(VAL, "1200") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -# # Maximum jpg height Readback from driver -record(ai, "S03SIM-DI-OAV-01:MJPG:MAXH_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg 0)FFMPEG_MAXH") -} - -# # Set jpg width -record(ao, "S03SIM-DI-OAV-01:MJPG:SETW") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg 0)FFMPEG_SETW") - field(VAL, "0") - field(PINI, "1") -} - -# # Set jpg width Readback from driver -record(ai, "S03SIM-DI-OAV-01:MJPG:SETW_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg 0)FFMPEG_SETW") -} - -# # Set jpg height -record(ao, "S03SIM-DI-OAV-01:MJPG:SETH") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg 0)FFMPEG_SETH") - field(VAL, "0") - field(PINI, "1") -} - -# # Set jpg height Readback from driver -record(ai, "S03SIM-DI-OAV-01:MJPG:SETH_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg 0)FFMPEG_SETH") -} - -# # Toggle False colour mode -record(bo, "S03SIM-DI-OAV-01:MJPG:FALSE_COL") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg 0)FFMPEG_FALSE_COL") - field(ZNAM, "Off") - field(ONAM, "On") - field(VAL, "0") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -# # False colour mode readback from driver -record(bi, "S03SIM-DI-OAV-01:MJPG:FALSE_COL_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg 0)FFMPEG_FALSE_COL") - field(ZNAM, "Off") - field(ONAM, "On") -} - -# # Always produce jpegs, even when no-one is listening -record(bo, "S03SIM-DI-OAV-01:MJPG:ALWAYS_ON") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.mjpg 0)FFMPEG_ALWAYS_ON") - field(ZNAM, "Off") - field(ONAM, "On") - field(VAL, "0") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -# # Always on readback from driver -record(bi, "S03SIM-DI-OAV-01:MJPG:ALWAYS_ON_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg 0)FFMPEG_ALWAYS_ON") - field(ZNAM, "Off") - field(ONAM, "On") -} - -# # HTTP Port to connect an mjpg viewer to -record(ai, "S03SIM-DI-OAV-01:MJPG:HTTP_PORT_RBV") -{ - field(PINI, "1") - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg 0)FFMPEG_HTTP_PORT") - field(SCAN, "I/O Intr") -} - -# # Hostname of the HTTP server -record(stringin, "S03SIM-DI-OAV-01:MJPG:HOST_RBV") -{ - field(PINI, "1") - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.mjpg 0)FFMPEG_HOST") - field(SCAN, "I/O Intr") -} - -# # Number of clients -record(ai, "S03SIM-DI-OAV-01:MJPG:CLIENTS_RBV") -{ - field(PINI, "1") - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.mjpg 0)FFMPEG_CLIENTS") - field(SCAN, "I/O Intr") -} - -# # URL of the jpg snapshot -record(waveform, "S03SIM-DI-OAV-01:MJPG:JPG_URL_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.mjpg 0)FFMPEG_JPG_URL") - field(FTVL, "UCHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -# # URL of the mjpg stream -record(waveform, "S03SIM-DI-OAV-01:MJPG:MJPG_URL_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.mjpg 0)FFMPEG_MJPG_URL") - field(FTVL, "UCHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -#% autosave 2 -#% archiver 10 Monitor -record(longout, "S03SIM-DI-OAV-01:MJPG:GX") { - field(VAL, "100") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -#% autosave 2 -#% archiver 10 Monitor -record(longout, "S03SIM-DI-OAV-01:MJPG:GY") { - field(VAL, "100") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -#% autosave 2 -#% archiver 10 Monitor -record(bo, "S03SIM-DI-OAV-01:MJPG:GRID") { - field(VAL, "0") - field(ZNAM, "Off") - field(ONAM, "On") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -#% autosave 2 -#% archiver 10 Monitor -# default white -record(longout, "S03SIM-DI-OAV-01:MJPG:GCOL") { - field(VAL, "0xFFFFFF") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -#% autosave 2 -#% archiver 10 Monitor -record(longout, "S03SIM-DI-OAV-01:MJPG:GS") { - field(VAL, "200") - field(DRVL, "10") - field(DRVH, "2000") - field(PINI, "1") - info(autosaveFields, "VAL") -} -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, QUALITY, Jpeg Quality in percent -# % macro, MAXW, Maximum Jpeg Width -# % macro, MAXH, Maximum Jpeg Height -# % macro, SETW, Set initial Jpeg Width -# % macro, SETH, Set initial Jpeg Height -# % gui, FSCN1.mjpg, edmtab, ffmpegStream.edl, P=S03SIM-EA-FSCN-01,R=:MJPG: - - -# # \file -# # ffmpegServer contains a very simple http server based on -# # nullhttpd. If a file named -# # \.jpg is requested for any ffmpegStream object named \, then it -# # will return the last NDArray received by the object compressed to jpeg. If -# # \.mjpg is requested then it will return an mjpg stream over http to the -# # client. Otherwise, it will return an index page listing all the available -# # streams. -# # \section ffmpegStream_setup Setup -# # - In the database, an instance of NDPluginBase is required, followed by an -# # instance of this template. -# # - In the startup scripts, call ffmpegServerConfigure() once per IOC to setup -# # the http server, then call ffmpegStreamConfigure() once per ffmpegStream -# # instance to setup the areadetector plugin -# # - see \ref build_instructions -# # \section ffmpegStream_screenshots Screenshots -# # \image html server.png "Index page for ffmpegServer" -# # \image html ffmpegStreamEdm.png "Edm screen for ffmpegStream" - -# This associates a BOY screen with the template -# % gui, FSCN1.mjpg, boydetail,ffmpegServerApp_opi/mjpg_detail.opi, P=S03SIM-EA-FSCN-01, R=:MJPG:, DESC=MPEG Viewer -# % gui, FSCN1.mjpg, boyembed, ffmpegServerApp_opi/mjpg_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:MJPG:, DESC=MPEG Viewer -# % gui, FSCN1.mjpg, boyembed, ffmpegServerApp_opi/mjpg_embed.opi, P=S03SIM-EA-FSCN-01, R=:MJPG:, DESC=MPEG Viewer - -# Info -# % gui, FSCN1.mjpg, groupHeading, Info -# % gui, FSCN1.mjpg, readback, Port name, S03SIM-EA-FSCN-01:MJPG:PortName_RBV -# % gui, FSCN1.mjpg, readback, Plugin type, S03SIM-EA-FSCN-01:MJPG:PluginType_RBV -# Input -# % gui, FSCN1.mjpg, demandString, Input, S03SIM-EA-FSCN-01:MJPG:NDArrayPort -# % gui, FSCN1.mjpg, readback, Input, S03SIM-EA-FSCN-01:MJPG:NDArrayPort_RBV - -# % gui, FSCN1.mjpg, groupHeading, Callback -# % gui, FSCN1.mjpg, enum, Callbacks, S03SIM-EA-FSCN-01:MJPG:EnableCallbacks -# % gui, FSCN1.mjpg, statusbits, Callbacks, S03SIM-EA-FSCN-01:MJPG:EnableCallbacks_RBV -# % gui, FSCN1.mjpg, demand, Min Callback Time, S03SIM-EA-FSCN-01:MJPG:MinCallbackTime -# % gui, FSCN1.mjpg, readback, Min Callback Time, S03SIM-EA-FSCN-01:MJPG:MinCallbackTime_RBV -# % gui, FSCN1.mjpg, enum, Block Callbacks, S03SIM-EA-FSCN-01:MJPG:BlockingCallbacks -# % gui, FSCN1.mjpg, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:MJPG:BlockingCallbacks_RBV - -# % gui, FSCN1.mjpg, groupHeading, Counters -# % gui, FSCN1.mjpg, demand, Array Counter, S03SIM-EA-FSCN-01:MJPG:ArrayCounter -# % gui, FSCN1.mjpg, readback, Array Counter, S03SIM-EA-FSCN-01:MJPG:ArrayCounter_RBV -# % gui, FSCN1.mjpg, readback, Array Rate (fps), S03SIM-EA-FSCN-01:MJPG:ArrayRate_RBV -# % gui, FSCN1.mjpg, readback, Queue Use, S03SIM-EA-FSCN-01:MJPG:QueueUse -# % gui, FSCN1.mjpg, readback, Queue Size, S03SIM-EA-FSCN-01:MJPG:QueueSize -# % gui, FSCN1.mjpg, demand, Dropped Arrays, S03SIM-EA-FSCN-01:MJPG:DroppedArrays -# % gui, FSCN1.mjpg, readback, Dropped Arrays, S03SIM-EA-FSCN-01:MJPG:DroppedArrays_RBV - -# % gui, FSCN1.mjpg, groupHeading, Array Settings -# % gui, FSCN1.mjpg, readback, Num Dimensions, S03SIM-EA-FSCN-01:MJPG:NDimensions_RBV -# % gui, FSCN1.mjpg, readback, Dim 0 Size, S03SIM-EA-FSCN-01:MJPG:ArraySize0_RBV -# % gui, FSCN1.mjpg, readback, Dim 1 Size, S03SIM-EA-FSCN-01:MJPG:ArraySize1_RBV -# % gui, FSCN1.mjpg, readback, Dim 2 Size, S03SIM-EA-FSCN-01:MJPG:ArraySize2_RBV -# % gui, FSCN1.mjpg, readback, Input Data Type, S03SIM-EA-FSCN-01:MJPG:DataType_RBV -# % gui, FSCN1.mjpg, readback, Colour Mode, S03SIM-EA-FSCN-01:MJPG:ColorMode_RBV -# % gui, FSCN1.mjpg, readback, Bayer Pattern, S03SIM-EA-FSCN-01:MJPG:BayerPattern_RBV -# % gui, FSCN1.mjpg, readback, Unique id, S03SIM-EA-FSCN-01:MJPG:UniqueId_RBV -# % gui, FSCN1.mjpg, readback, Timestamp, S03SIM-EA-FSCN-01:MJPG:TimeStamp_RBV - -# Video -# % gui, FSCN1.mjpg, groupHeading, Video Settings -# % gui, FSCN1.mjpg, readback, Host, S03SIM-EA-FSCN-01:MJPG:HOST_RBV -# % gui, FSCN1.mjpg, readback, Host port, S03SIM-EA-FSCN-01:MJPG:HTTP_PORT_RBV -# % gui, FSCN1.mjpg, readback, Num clients, S03SIM-EA-FSCN-01:MJPG:CLIENTS_RBV -# % gui, FSCN1.mjpg, demand, JPEG Quality, S03SIM-EA-FSCN-01:MJPG:QUALITY -# % gui, FSCN1.mjpg, readback, JPEG Quality, S03SIM-EA-FSCN-01:MJPG:QUALITY_RBV -# % gui, FSCN1.mjpg, demand, Max Width, S03SIM-EA-FSCN-01:MJPG:MAXW -# % gui, FSCN1.mjpg, readback, Max Width, S03SIM-EA-FSCN-01:MJPG:MAXW_RBV -# % gui, FSCN1.mjpg, demand, Max Height, S03SIM-EA-FSCN-01:MJPG:MAXH -# % gui, FSCN1.mjpg, readback, Max Height, S03SIM-EA-FSCN-01:MJPG:MAXH_RBV -# % gui, FSCN1.mjpg, enum, Always On, S03SIM-EA-FSCN-01:MJPG:ALWAYS_ON -# % gui, FSCN1.mjpg, readback, Always On, S03SIM-EA-FSCN-01:MJPG:ALWAYS_ON_RBV -# % gui, FSCN1.mjpg, readback, Snapshot URL, S03SIM-EA-FSCN-01:MJPG:JPG_URL_RBV -# % gui, FSCN1.mjpg, readback, Streaming URL, S03SIM-EA-FSCN-01:MJPG:MJPG_URL_RBV -# % gui, FSCN1.mjpg, enum, Show Grid, S03SIM-EA-FSCN-01:MJPG:GRID -# % gui, FSCN1.mjpg, demand, X Position, S03SIM-EA-FSCN-01:MJPG:GX -# % gui, FSCN1.mjpg, demand, Y Position, S03SIM-EA-FSCN-01:MJPG:GY -# % gui, FSCN1.mjpg, demand, Spacing, S03SIM-EA-FSCN-01:MJPG:GS -# % gui, FSCN1.mjpg, demand, Colour RGB, S03SIM-EA-FSCN-01:MJPG:GCOL -# % gui, FSCN1.mjpg, command, Fast Viewer -# % gui, FSCN1.mjpg, command, Fallback Viewer -# % gui, FSCN1.mjpg, command, Firefox (slow) -# % gui, FSCN1.mjpg, command, Firefox (snapshot) - - -# Memory -# % gui, FSCN1.mjpg, groupHeading, Memory -# % gui, FSCN1.mjpg, readback, Max memory, S03SIM-EA-FSCN-01:MJPG:PoolMaxMem -# % gui, FSCN1.mjpg, readback, Max buffers, S03SIM-EA-FSCN-01:MJPG:PoolMaxBuffers -# % gui, FSCN1.mjpg, readback, Used memory, S03SIM-EA-FSCN-01:MJPG:PoolUsedMem -# % gui, FSCN1.mjpg, readback, Allocated buffers, S03SIM-EA-FSCN-01:MJPG:PoolAllocBuffers -# % gui, FSCN1.mjpg, readback, Free buffers, S03SIM-EA-FSCN-01:MJPG:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:MJPG:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.mjpg,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:MJPG:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.mjpg,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:MJPG:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.mjpg,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:MJPG:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.mjpg,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:MJPG:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.mjpg,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:MJPG:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.mjpg,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:MJPG:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.mjpg,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-01:MJPG:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.mjpg,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-01:MJPG:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-01:MJPG:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:MJPG:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-01:MJPG:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:MJPG:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-01:MJPG:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-01:MJPG:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:MJPG:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:MJPG:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:MJPG:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-01:MJPG:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:MJPG:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:MJPG:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN1.mjpg,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN1.mjpg,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-01:MJPG:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-01:MJPG:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-01:MJPG:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-01:MJPG:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.mjpg,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:MJPG:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:MJPG:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-01:MJPG:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-01:MJPG:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-01:MJPG:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-01:MJPG:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.mjpg,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-01:MJPG:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:MJPG:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:MJPG:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:MJPG:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:MJPG:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:MJPG:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:MJPG:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:MJPG:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.mjpg,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-01:MJPG:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN1.mjpg,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-01:MJPG:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-01:MJPG:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.mjpg,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-01:MJPG:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.mjpg,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-01:MJPG:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-01:MJPG:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:MJPG:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-01:MJPG:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-01:MJPG:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.mjpg,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-01:MJPG:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN1.mjpg,0,1)NDARRAY_PORT") - field(VAL, "FSCN1.over") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-01:MJPG:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.mjpg,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:MJPG:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:MJPG:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:MJPG:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:MJPG:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.mjpg,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:MJPG:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.mjpg,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:MJPG:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:MJPG:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-01:MJPG:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-01:MJPG:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:MJPG:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-01:MJPG:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-01:MJPG:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-01:MJPG:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.mjpg,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-01:MJPG:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.mjpg,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-01:MJPG:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.mjpg,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:MJPG:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-01:MJPG:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-01:MJPG:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-01:MJPG:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:MJPG:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:MJPG:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:MJPG:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:MJPG:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:MJPG:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:MJPG:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:MJPG:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:MJPG:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:MJPG:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:MJPG:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:MJPG:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:MJPG:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:MJPG:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-01:MJPG:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:MJPG:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-01:MJPG:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-01:MJPG:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN1.mjpg,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-01:MJPG:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN1.mjpg,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:MJPG:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:MJPG:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-01:MJPG:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:MJPG:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:MJPG:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-01:MJPG:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-01:MJPG:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-01:MJPG:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:MJPG:AsynIO") -{ - field(PORT, "FSCN1.mjpg") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -# # JPEG Quality -record(ao, "S03SIM-EA-FSCN-01:MJPG:QUALITY") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg 0)FFMPEG_QUALITY") - field(VAL, "100") - field(DRVH, "100") - field(DRVL, "0") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -# # JPEG Quality Readback from driver -record(ai, "S03SIM-EA-FSCN-01:MJPG:QUALITY_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_QUALITY") -} - -# # Maximum jpg width -record(ao, "S03SIM-EA-FSCN-01:MJPG:MAXW") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg 0)FFMPEG_MAXW") - field(VAL, "1600") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -# # Maximum jpg width Readback from driver -record(ai, "S03SIM-EA-FSCN-01:MJPG:MAXW_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_MAXW") -} - -# # Maximum jpg height -record(ao, "S03SIM-EA-FSCN-01:MJPG:MAXH") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg 0)FFMPEG_MAXH") - field(VAL, "1200") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -# # Maximum jpg height Readback from driver -record(ai, "S03SIM-EA-FSCN-01:MJPG:MAXH_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_MAXH") -} - -# # Set jpg width -record(ao, "S03SIM-EA-FSCN-01:MJPG:SETW") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg 0)FFMPEG_SETW") - field(VAL, "0") - field(PINI, "1") -} - -# # Set jpg width Readback from driver -record(ai, "S03SIM-EA-FSCN-01:MJPG:SETW_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_SETW") -} - -# # Set jpg height -record(ao, "S03SIM-EA-FSCN-01:MJPG:SETH") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg 0)FFMPEG_SETH") - field(VAL, "0") - field(PINI, "1") -} - -# # Set jpg height Readback from driver -record(ai, "S03SIM-EA-FSCN-01:MJPG:SETH_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_SETH") -} - -# # Toggle False colour mode -record(bo, "S03SIM-EA-FSCN-01:MJPG:FALSE_COL") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg 0)FFMPEG_FALSE_COL") - field(ZNAM, "Off") - field(ONAM, "On") - field(VAL, "0") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -# # False colour mode readback from driver -record(bi, "S03SIM-EA-FSCN-01:MJPG:FALSE_COL_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_FALSE_COL") - field(ZNAM, "Off") - field(ONAM, "On") -} - -# # Always produce jpegs, even when no-one is listening -record(bo, "S03SIM-EA-FSCN-01:MJPG:ALWAYS_ON") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN1.mjpg 0)FFMPEG_ALWAYS_ON") - field(ZNAM, "Off") - field(ONAM, "On") - field(VAL, "0") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -# # Always on readback from driver -record(bi, "S03SIM-EA-FSCN-01:MJPG:ALWAYS_ON_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_ALWAYS_ON") - field(ZNAM, "Off") - field(ONAM, "On") -} - -# # HTTP Port to connect an mjpg viewer to -record(ai, "S03SIM-EA-FSCN-01:MJPG:HTTP_PORT_RBV") -{ - field(PINI, "1") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_HTTP_PORT") - field(SCAN, "I/O Intr") -} - -# # Hostname of the HTTP server -record(stringin, "S03SIM-EA-FSCN-01:MJPG:HOST_RBV") -{ - field(PINI, "1") - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_HOST") - field(SCAN, "I/O Intr") -} - -# # Number of clients -record(ai, "S03SIM-EA-FSCN-01:MJPG:CLIENTS_RBV") -{ - field(PINI, "1") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_CLIENTS") - field(SCAN, "I/O Intr") -} - -# # URL of the jpg snapshot -record(waveform, "S03SIM-EA-FSCN-01:MJPG:JPG_URL_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_JPG_URL") - field(FTVL, "UCHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -# # URL of the mjpg stream -record(waveform, "S03SIM-EA-FSCN-01:MJPG:MJPG_URL_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN1.mjpg 0)FFMPEG_MJPG_URL") - field(FTVL, "UCHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -#% autosave 2 -#% archiver 10 Monitor -record(longout, "S03SIM-EA-FSCN-01:MJPG:GX") { - field(VAL, "100") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -#% autosave 2 -#% archiver 10 Monitor -record(longout, "S03SIM-EA-FSCN-01:MJPG:GY") { - field(VAL, "100") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -#% autosave 2 -#% archiver 10 Monitor -record(bo, "S03SIM-EA-FSCN-01:MJPG:GRID") { - field(VAL, "0") - field(ZNAM, "Off") - field(ONAM, "On") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -#% autosave 2 -#% archiver 10 Monitor -# default white -record(longout, "S03SIM-EA-FSCN-01:MJPG:GCOL") { - field(VAL, "0xFFFFFF") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -#% autosave 2 -#% archiver 10 Monitor -record(longout, "S03SIM-EA-FSCN-01:MJPG:GS") { - field(VAL, "200") - field(DRVL, "10") - field(DRVH, "2000") - field(PINI, "1") - info(autosaveFields, "VAL") -} -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, QUALITY, Jpeg Quality in percent -# % macro, MAXW, Maximum Jpeg Width -# % macro, MAXH, Maximum Jpeg Height -# % macro, SETW, Set initial Jpeg Width -# % macro, SETH, Set initial Jpeg Height -# % gui, FSCN2.mjpg, edmtab, ffmpegStream.edl, P=S03SIM-EA-FSCN-02,R=:MJPG: - - -# # \file -# # ffmpegServer contains a very simple http server based on -# # nullhttpd. If a file named -# # \.jpg is requested for any ffmpegStream object named \, then it -# # will return the last NDArray received by the object compressed to jpeg. If -# # \.mjpg is requested then it will return an mjpg stream over http to the -# # client. Otherwise, it will return an index page listing all the available -# # streams. -# # \section ffmpegStream_setup Setup -# # - In the database, an instance of NDPluginBase is required, followed by an -# # instance of this template. -# # - In the startup scripts, call ffmpegServerConfigure() once per IOC to setup -# # the http server, then call ffmpegStreamConfigure() once per ffmpegStream -# # instance to setup the areadetector plugin -# # - see \ref build_instructions -# # \section ffmpegStream_screenshots Screenshots -# # \image html server.png "Index page for ffmpegServer" -# # \image html ffmpegStreamEdm.png "Edm screen for ffmpegStream" - -# This associates a BOY screen with the template -# % gui, FSCN2.mjpg, boydetail,ffmpegServerApp_opi/mjpg_detail.opi, P=S03SIM-EA-FSCN-02, R=:MJPG:, DESC=MPEG Viewer -# % gui, FSCN2.mjpg, boyembed, ffmpegServerApp_opi/mjpg_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:MJPG:, DESC=MPEG Viewer -# % gui, FSCN2.mjpg, boyembed, ffmpegServerApp_opi/mjpg_embed.opi, P=S03SIM-EA-FSCN-02, R=:MJPG:, DESC=MPEG Viewer - -# Info -# % gui, FSCN2.mjpg, groupHeading, Info -# % gui, FSCN2.mjpg, readback, Port name, S03SIM-EA-FSCN-02:MJPG:PortName_RBV -# % gui, FSCN2.mjpg, readback, Plugin type, S03SIM-EA-FSCN-02:MJPG:PluginType_RBV -# Input -# % gui, FSCN2.mjpg, demandString, Input, S03SIM-EA-FSCN-02:MJPG:NDArrayPort -# % gui, FSCN2.mjpg, readback, Input, S03SIM-EA-FSCN-02:MJPG:NDArrayPort_RBV - -# % gui, FSCN2.mjpg, groupHeading, Callback -# % gui, FSCN2.mjpg, enum, Callbacks, S03SIM-EA-FSCN-02:MJPG:EnableCallbacks -# % gui, FSCN2.mjpg, statusbits, Callbacks, S03SIM-EA-FSCN-02:MJPG:EnableCallbacks_RBV -# % gui, FSCN2.mjpg, demand, Min Callback Time, S03SIM-EA-FSCN-02:MJPG:MinCallbackTime -# % gui, FSCN2.mjpg, readback, Min Callback Time, S03SIM-EA-FSCN-02:MJPG:MinCallbackTime_RBV -# % gui, FSCN2.mjpg, enum, Block Callbacks, S03SIM-EA-FSCN-02:MJPG:BlockingCallbacks -# % gui, FSCN2.mjpg, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:MJPG:BlockingCallbacks_RBV - -# % gui, FSCN2.mjpg, groupHeading, Counters -# % gui, FSCN2.mjpg, demand, Array Counter, S03SIM-EA-FSCN-02:MJPG:ArrayCounter -# % gui, FSCN2.mjpg, readback, Array Counter, S03SIM-EA-FSCN-02:MJPG:ArrayCounter_RBV -# % gui, FSCN2.mjpg, readback, Array Rate (fps), S03SIM-EA-FSCN-02:MJPG:ArrayRate_RBV -# % gui, FSCN2.mjpg, readback, Queue Use, S03SIM-EA-FSCN-02:MJPG:QueueUse -# % gui, FSCN2.mjpg, readback, Queue Size, S03SIM-EA-FSCN-02:MJPG:QueueSize -# % gui, FSCN2.mjpg, demand, Dropped Arrays, S03SIM-EA-FSCN-02:MJPG:DroppedArrays -# % gui, FSCN2.mjpg, readback, Dropped Arrays, S03SIM-EA-FSCN-02:MJPG:DroppedArrays_RBV - -# % gui, FSCN2.mjpg, groupHeading, Array Settings -# % gui, FSCN2.mjpg, readback, Num Dimensions, S03SIM-EA-FSCN-02:MJPG:NDimensions_RBV -# % gui, FSCN2.mjpg, readback, Dim 0 Size, S03SIM-EA-FSCN-02:MJPG:ArraySize0_RBV -# % gui, FSCN2.mjpg, readback, Dim 1 Size, S03SIM-EA-FSCN-02:MJPG:ArraySize1_RBV -# % gui, FSCN2.mjpg, readback, Dim 2 Size, S03SIM-EA-FSCN-02:MJPG:ArraySize2_RBV -# % gui, FSCN2.mjpg, readback, Input Data Type, S03SIM-EA-FSCN-02:MJPG:DataType_RBV -# % gui, FSCN2.mjpg, readback, Colour Mode, S03SIM-EA-FSCN-02:MJPG:ColorMode_RBV -# % gui, FSCN2.mjpg, readback, Bayer Pattern, S03SIM-EA-FSCN-02:MJPG:BayerPattern_RBV -# % gui, FSCN2.mjpg, readback, Unique id, S03SIM-EA-FSCN-02:MJPG:UniqueId_RBV -# % gui, FSCN2.mjpg, readback, Timestamp, S03SIM-EA-FSCN-02:MJPG:TimeStamp_RBV - -# Video -# % gui, FSCN2.mjpg, groupHeading, Video Settings -# % gui, FSCN2.mjpg, readback, Host, S03SIM-EA-FSCN-02:MJPG:HOST_RBV -# % gui, FSCN2.mjpg, readback, Host port, S03SIM-EA-FSCN-02:MJPG:HTTP_PORT_RBV -# % gui, FSCN2.mjpg, readback, Num clients, S03SIM-EA-FSCN-02:MJPG:CLIENTS_RBV -# % gui, FSCN2.mjpg, demand, JPEG Quality, S03SIM-EA-FSCN-02:MJPG:QUALITY -# % gui, FSCN2.mjpg, readback, JPEG Quality, S03SIM-EA-FSCN-02:MJPG:QUALITY_RBV -# % gui, FSCN2.mjpg, demand, Max Width, S03SIM-EA-FSCN-02:MJPG:MAXW -# % gui, FSCN2.mjpg, readback, Max Width, S03SIM-EA-FSCN-02:MJPG:MAXW_RBV -# % gui, FSCN2.mjpg, demand, Max Height, S03SIM-EA-FSCN-02:MJPG:MAXH -# % gui, FSCN2.mjpg, readback, Max Height, S03SIM-EA-FSCN-02:MJPG:MAXH_RBV -# % gui, FSCN2.mjpg, enum, Always On, S03SIM-EA-FSCN-02:MJPG:ALWAYS_ON -# % gui, FSCN2.mjpg, readback, Always On, S03SIM-EA-FSCN-02:MJPG:ALWAYS_ON_RBV -# % gui, FSCN2.mjpg, readback, Snapshot URL, S03SIM-EA-FSCN-02:MJPG:JPG_URL_RBV -# % gui, FSCN2.mjpg, readback, Streaming URL, S03SIM-EA-FSCN-02:MJPG:MJPG_URL_RBV -# % gui, FSCN2.mjpg, enum, Show Grid, S03SIM-EA-FSCN-02:MJPG:GRID -# % gui, FSCN2.mjpg, demand, X Position, S03SIM-EA-FSCN-02:MJPG:GX -# % gui, FSCN2.mjpg, demand, Y Position, S03SIM-EA-FSCN-02:MJPG:GY -# % gui, FSCN2.mjpg, demand, Spacing, S03SIM-EA-FSCN-02:MJPG:GS -# % gui, FSCN2.mjpg, demand, Colour RGB, S03SIM-EA-FSCN-02:MJPG:GCOL -# % gui, FSCN2.mjpg, command, Fast Viewer -# % gui, FSCN2.mjpg, command, Fallback Viewer -# % gui, FSCN2.mjpg, command, Firefox (slow) -# % gui, FSCN2.mjpg, command, Firefox (snapshot) - - -# Memory -# % gui, FSCN2.mjpg, groupHeading, Memory -# % gui, FSCN2.mjpg, readback, Max memory, S03SIM-EA-FSCN-02:MJPG:PoolMaxMem -# % gui, FSCN2.mjpg, readback, Max buffers, S03SIM-EA-FSCN-02:MJPG:PoolMaxBuffers -# % gui, FSCN2.mjpg, readback, Used memory, S03SIM-EA-FSCN-02:MJPG:PoolUsedMem -# % gui, FSCN2.mjpg, readback, Allocated buffers, S03SIM-EA-FSCN-02:MJPG:PoolAllocBuffers -# % gui, FSCN2.mjpg, readback, Free buffers, S03SIM-EA-FSCN-02:MJPG:PoolFreeBuffers - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:MJPG:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.mjpg,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:MJPG:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.mjpg,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:MJPG:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.mjpg,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:MJPG:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.mjpg,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:MJPG:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.mjpg,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:MJPG:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.mjpg,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:MJPG:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.mjpg,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-EA-FSCN-02:MJPG:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.mjpg,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-EA-FSCN-02:MJPG:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-EA-FSCN-02:MJPG:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:MJPG:SetAcquireBusy") -{ - field(INPA, "S03SIM-EA-FSCN-02:MJPG:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:MJPG:AcquireBusy PP") -} - -record(ai, "S03SIM-EA-FSCN-02:MJPG:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-EA-FSCN-02:MJPG:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:MJPG:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:MJPG:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:MJPG:AcquireBusy PP") -} - -record(bo, "S03SIM-EA-FSCN-02:MJPG:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:MJPG:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:MJPG:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(FSCN2.mjpg,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim0SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim0SA") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize0") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize0") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim1SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim1SA") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize1") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize1") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim2SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim2SA") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize2") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize2") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim3SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim3SA") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize3") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize3") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim4SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim4SA") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize4") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize4") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim5SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim5SA") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize5") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize5") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim6SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim6SA") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize6") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize6") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim7SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim7SA") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize7") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize7") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim8SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim8SA") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize8") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize8") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim9SA") -} - -record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim9SA") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize9") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize9") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim9SA") -} - - -record(waveform, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(FSCN2.mjpg,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim0SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize0_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize0_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim1SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim1SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize1_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize1_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim2SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim2SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize2_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize2_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim3SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim3SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize3_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize3_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim4SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim4SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize4_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize4_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim5SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim5SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize5_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize5_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim6SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim6SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize6_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize6_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim7SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim7SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize7_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize7_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim8SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim8SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize8_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize8_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:Dim9SA_RBV") -} - -record(subArray, "S03SIM-EA-FSCN-02:MJPG:Dim9SA_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:ArraySize9_RBV") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize9_RBV") -{ - field(INP, "S03SIM-EA-FSCN-02:MJPG:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-EA-FSCN-02:MJPG:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-EA-FSCN-02:MJPG:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.mjpg,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:MJPG:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:MJPG:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-EA-FSCN-02:MJPG:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-EA-FSCN-02:MJPG:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-EA-FSCN-02:MJPG:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-EA-FSCN-02:MJPG:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.mjpg,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-EA-FSCN-02:MJPG:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:MJPG:ArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:MJPG:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:MJPG:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:MJPG:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:MJPG:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:MJPG:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:MJPG:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.mjpg,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-EA-FSCN-02:MJPG:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(FSCN2.mjpg,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-EA-FSCN-02:MJPG:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### - -record(ai, "S03SIM-EA-FSCN-02:MJPG:PoolMaxMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.mjpg,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") -} - -record(ai, "S03SIM-EA-FSCN-02:MJPG:PoolUsedMem") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.mjpg,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:PoolAllocBuffers") - info(autosaveFields, "SCAN") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:PoolAllocBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:PoolFreeBuffers") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:PoolFreeBuffers") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:PoolUsedBuffers") -} - -record(calc, "S03SIM-EA-FSCN-02:MJPG:PoolUsedBuffers") -{ - field(INPA, "S03SIM-EA-FSCN-02:MJPG:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:MJPG:PoolFreeBuffers NPP MS") - field(CALC, "A-B") -} - -record(bo, "S03SIM-EA-FSCN-02:MJPG:EmptyFreeList") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg,0,1)POOL_EMPTY_FREELIST") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:NumQueuedArrays") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)NUM_QUEUED_ARRAYS") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-EA-FSCN-02:MJPG:PluginType_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.mjpg,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-EA-FSCN-02:MJPG:NDArrayPort") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(FSCN2.mjpg,0,1)NDARRAY_PORT") - field(VAL, "FSCN2.over") - info(autosaveFields, "VAL") -} - -record(stringin, "S03SIM-EA-FSCN-02:MJPG:NDArrayPort_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.mjpg,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:MJPG:NDArrayAddress") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:NDArrayAddress_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:MJPG:EnableCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:MJPG:EnableCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:MJPG:MinCallbackTime") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.mjpg,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:MJPG:MinCallbackTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.mjpg,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:MJPG:MaxArrayRate") -{ - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:MJPG:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") -} - -record(calcout, "S03SIM-EA-FSCN-02:MJPG:MaxArrayRate_COUT") -{ - field(INPA, "S03SIM-EA-FSCN-02:MJPG:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:MJPG:MinCallbackTime PP") -} - -record(calc, "S03SIM-EA-FSCN-02:MJPG:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-EA-FSCN-02:MJPG:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") -} - -record(ao, "S03SIM-EA-FSCN-02:MJPG:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.mjpg,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") -} - -record(ai, "S03SIM-EA-FSCN-02:MJPG:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.mjpg,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-EA-FSCN-02:MJPG:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.mjpg,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:MJPG:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg,0,1)PROCESS_PLUGIN") - field(VAL, "1") -} - -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-EA-FSCN-02:MJPG:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-EA-FSCN-02:MJPG:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") -} - - -record(longout, "S03SIM-EA-FSCN-02:MJPG:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg,0,1)DROPPED_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:MJPG:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg,0,1)QUEUE_SIZE") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:QueueFreeLow") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:MJPG:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:MJPG:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:MJPG:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:QueueUseHIGH") -} - -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:MJPG:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:MJPG:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:MJPG:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:QueueUseHIHI") -} - -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:MJPG:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:MJPG:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:MJPG:QueueUse.HIHI") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -# Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:MJPG:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:MJPG:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:MJPG:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") -} - -record(longout, "S03SIM-EA-FSCN-02:MJPG:NumThreads") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:NumThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:MaxThreads_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:MJPG:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") -} - -record(mbbi, "S03SIM-EA-FSCN-02:MJPG:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") -} - -record(ao, "S03SIM-EA-FSCN-02:MJPG:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(FSCN2.mjpg,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") -} - -record(ai, "S03SIM-EA-FSCN-02:MJPG:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(FSCN2.mjpg,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:MJPG:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:MJPG:SortFreeLow") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-EA-FSCN-02:MJPG:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:MJPG:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:MJPG:SortFree.LOW") -} - -record(longout, "S03SIM-EA-FSCN-02:MJPG:DroppedOutputArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:DroppedOutputArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") -} - -record(longout, "S03SIM-EA-FSCN-02:MJPG:DisorderedArrays") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") -} - -record(longin, "S03SIM-EA-FSCN-02:MJPG:DisorderedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") -} - - - -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:MJPG:AsynIO") -{ - field(PORT, "FSCN2.mjpg") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -# # JPEG Quality -record(ao, "S03SIM-EA-FSCN-02:MJPG:QUALITY") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg 0)FFMPEG_QUALITY") - field(VAL, "100") - field(DRVH, "100") - field(DRVL, "0") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -# # JPEG Quality Readback from driver -record(ai, "S03SIM-EA-FSCN-02:MJPG:QUALITY_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_QUALITY") -} - -# # Maximum jpg width -record(ao, "S03SIM-EA-FSCN-02:MJPG:MAXW") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg 0)FFMPEG_MAXW") - field(VAL, "1600") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -# # Maximum jpg width Readback from driver -record(ai, "S03SIM-EA-FSCN-02:MJPG:MAXW_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_MAXW") -} - -# # Maximum jpg height -record(ao, "S03SIM-EA-FSCN-02:MJPG:MAXH") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg 0)FFMPEG_MAXH") - field(VAL, "1200") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -# # Maximum jpg height Readback from driver -record(ai, "S03SIM-EA-FSCN-02:MJPG:MAXH_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_MAXH") -} - -# # Set jpg width -record(ao, "S03SIM-EA-FSCN-02:MJPG:SETW") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg 0)FFMPEG_SETW") - field(VAL, "0") - field(PINI, "1") -} - -# # Set jpg width Readback from driver -record(ai, "S03SIM-EA-FSCN-02:MJPG:SETW_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_SETW") -} - -# # Set jpg height -record(ao, "S03SIM-EA-FSCN-02:MJPG:SETH") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg 0)FFMPEG_SETH") - field(VAL, "0") - field(PINI, "1") -} - -# # Set jpg height Readback from driver -record(ai, "S03SIM-EA-FSCN-02:MJPG:SETH_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_SETH") -} - -# # Toggle False colour mode -record(bo, "S03SIM-EA-FSCN-02:MJPG:FALSE_COL") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg 0)FFMPEG_FALSE_COL") - field(ZNAM, "Off") - field(ONAM, "On") - field(VAL, "0") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -# # False colour mode readback from driver -record(bi, "S03SIM-EA-FSCN-02:MJPG:FALSE_COL_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_FALSE_COL") - field(ZNAM, "Off") - field(ONAM, "On") -} - -# # Always produce jpegs, even when no-one is listening -record(bo, "S03SIM-EA-FSCN-02:MJPG:ALWAYS_ON") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(FSCN2.mjpg 0)FFMPEG_ALWAYS_ON") - field(ZNAM, "Off") - field(ONAM, "On") - field(VAL, "0") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -# # Always on readback from driver -record(bi, "S03SIM-EA-FSCN-02:MJPG:ALWAYS_ON_RBV") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_ALWAYS_ON") - field(ZNAM, "Off") - field(ONAM, "On") -} - -# # HTTP Port to connect an mjpg viewer to -record(ai, "S03SIM-EA-FSCN-02:MJPG:HTTP_PORT_RBV") -{ - field(PINI, "1") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_HTTP_PORT") - field(SCAN, "I/O Intr") -} - -# # Hostname of the HTTP server -record(stringin, "S03SIM-EA-FSCN-02:MJPG:HOST_RBV") -{ - field(PINI, "1") - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_HOST") - field(SCAN, "I/O Intr") -} - -# # Number of clients -record(ai, "S03SIM-EA-FSCN-02:MJPG:CLIENTS_RBV") -{ - field(PINI, "1") - field(DTYP, "asynInt32") - field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_CLIENTS") - field(SCAN, "I/O Intr") -} - -# # URL of the jpg snapshot -record(waveform, "S03SIM-EA-FSCN-02:MJPG:JPG_URL_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_JPG_URL") - field(FTVL, "UCHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -# # URL of the mjpg stream -record(waveform, "S03SIM-EA-FSCN-02:MJPG:MJPG_URL_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(FSCN2.mjpg 0)FFMPEG_MJPG_URL") - field(FTVL, "UCHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} - -#% autosave 2 -#% archiver 10 Monitor -record(longout, "S03SIM-EA-FSCN-02:MJPG:GX") { - field(VAL, "100") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -#% autosave 2 -#% archiver 10 Monitor -record(longout, "S03SIM-EA-FSCN-02:MJPG:GY") { - field(VAL, "100") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -#% autosave 2 -#% archiver 10 Monitor -record(bo, "S03SIM-EA-FSCN-02:MJPG:GRID") { - field(VAL, "0") - field(ZNAM, "Off") - field(ONAM, "On") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -#% autosave 2 -#% archiver 10 Monitor -# default white -record(longout, "S03SIM-EA-FSCN-02:MJPG:GCOL") { - field(VAL, "0xFFFFFF") - field(PINI, "1") - info(autosaveFields, "VAL") -} - -#% autosave 2 -#% archiver 10 Monitor -record(longout, "S03SIM-EA-FSCN-02:MJPG:GS") { - field(VAL, "200") - field(DRVL, "10") - field(DRVH, "2000") - field(PINI, "1") - info(autosaveFields, "VAL") -} -#=================================================================# -# Template file: NDPva.template -# Database for the records specific to the pvAccess plugin -# Bruno Martins -# May 5, 2015 - -#% macro, P, Device Prefix -#% macro, R, Device Suffix -#% macro, PORT, Asyn Port name -#% macro, ADDR, Asyn Port address -#% macro, TIMEOUT, Asyn timeout - -# This associates the template with an edm screen -# % gui, OAV.pva, edmtab, NDPvaPlugin.edl, P=S03SIM-DI-OAV-01,R=:PVA: - -# This associates a BOY screen with the template -# % gui, OAV.pva, boydetail,ADApp_opi/dls/pva_detail.opi, P=S03SIM-DI-OAV-01, R=:PVA:, DESC=PVAccess -# % gui, OAV.pva, boyembed, ADApp_opi/dls/pva_embed_box.opi, P=S03SIM-DI-OAV-01, R=:PVA:, DESC=PVAccess -# % gui, OAV.pva, boyembed, ADApp_opi/dls/pva_embed.opi, P=S03SIM-DI-OAV-01, R=:PVA:, DESC=PVAccess - -# Info -# % gui, OAV.pva, groupHeading, Info -# % gui, OAV.pva, readback, Port name, S03SIM-DI-OAV-01:PVA:PortName_RBV -# % gui, OAV.pva, readback, Plugin type, S03SIM-DI-OAV-01:PVA:PluginType_RBV -# Input -# % gui, OAV.pva, demandString, Input, S03SIM-DI-OAV-01:PVA:NDArrayPort -# % gui, OAV.pva, readback, Input, S03SIM-DI-OAV-01:PVA:NDArrayPort_RBV - -# % gui, OAV.pva, groupHeading, Callback -# % gui, OAV.pva, enum, Callbacks, S03SIM-DI-OAV-01:PVA:EnableCallbacks -# % gui, OAV.pva, statusbits, Callbacks, S03SIM-DI-OAV-01:PVA:EnableCallbacks_RBV -# % gui, OAV.pva, demand, Min Callback Time, S03SIM-DI-OAV-01:PVA:MinCallbackTime -# % gui, OAV.pva, readback, Min Callback Time, S03SIM-DI-OAV-01:PVA:MinCallbackTime_RBV -# % gui, OAV.pva, enum, Block Callbacks, S03SIM-DI-OAV-01:PVA:BlockingCallbacks -# % gui, OAV.pva, statusbits, Block Callbacks, S03SIM-DI-OAV-01:PVA:BlockingCallbacks_RBV - -# % gui, OAV.pva, groupHeading, Counters -# % gui, OAV.pva, demand, Array Counter, S03SIM-DI-OAV-01:PVA:ArrayCounter -# % gui, OAV.pva, readback, Array Counter, S03SIM-DI-OAV-01:PVA:ArrayCounter_RBV -# % gui, OAV.pva, readback, Array Rate (fps), S03SIM-DI-OAV-01:PVA:ArrayRate_RBV -# % gui, OAV.pva, readback, Queue Use, S03SIM-DI-OAV-01:PVA:QueueUse -# % gui, OAV.pva, readback, Queue Size, S03SIM-DI-OAV-01:PVA:QueueSize -# % gui, OAV.pva, demand, Dropped Arrays, S03SIM-DI-OAV-01:PVA:DroppedArrays -# % gui, OAV.pva, readback, Dropped Arrays, S03SIM-DI-OAV-01:PVA:DroppedArrays_RBV - -# % gui, OAV.pva, groupHeading, Array Settings -# % gui, OAV.pva, readback, Num Dimensions, S03SIM-DI-OAV-01:PVA:NDimensions_RBV -# % gui, OAV.pva, readback, Dim 0 Size, S03SIM-DI-OAV-01:PVA:ArraySize0_RBV -# % gui, OAV.pva, readback, Dim 1 Size, S03SIM-DI-OAV-01:PVA:ArraySize1_RBV -# % gui, OAV.pva, readback, Dim 2 Size, S03SIM-DI-OAV-01:PVA:ArraySize2_RBV -# % gui, OAV.pva, readback, Input Data Type, S03SIM-DI-OAV-01:PVA:DataType_RBV -# % gui, OAV.pva, readback, Colour Mode, S03SIM-DI-OAV-01:PVA:ColorMode_RBV -# % gui, OAV.pva, readback, Bayer Pattern, S03SIM-DI-OAV-01:PVA:BayerPattern_RBV -# % gui, OAV.pva, readback, Unique id, S03SIM-DI-OAV-01:PVA:UniqueId_RBV -# % gui, OAV.pva, readback, Timestamp, S03SIM-DI-OAV-01:PVA:TimeStamp_RBV - -# % gui, OAV.pva, groupHeading, PVA Settings -# % gui, OAV.pva, readback, PV Name, S03SIM-DI-OAV-01:PVA:PvName_RBV - -#=================================================================# -# Template file: NDPluginBase.template -# Database for NDPluginBase, i.e. records common to all plugins -# Mark Rivers -# April 25, 2008 - -# Macros: -# % macro, P, Device Prefix -# % macro, R, Device Suffix -# % macro, PORT, Asyn Port name -# % macro, TIMEOUT, Timeout -# % macro, ADDR, Asyn Port address -# % macro, NDARRAY_PORT, Input Array Port -# % macro, NDARRAY_ADDR, Input Array Address -# % macro, ENABLED, Plugin Enabled at startup? -# % macro, SCANRATE, Chosen Scan Rate for cpu intensive PVs - -#=================================================================# -# Template file: NDArrayBase.template -# Database for area detector control using asyn driver and standard asyn device support -# Mark Rivers -# March 9, 2008 - -################################################################### -# This record contains the version of ADCore # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:PVA:ADCoreVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.pva,0,1)ADCORE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the version of the driver or plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:PVA:DriverVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.pva,0,1)DRIVER_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains the asyn port name of this detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:PVA:PortName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.pva,0,1)PORT_NAME_SELF") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records contain basic information about the detector # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:PVA:Manufacturer_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.pva,0,1)MANUFACTURER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:PVA:Model_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.pva,0,1)MODEL") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:PVA:SerialNumber_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.pva,0,1)SERIAL_NUMBER") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:PVA:SDKVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.pva,0,1)SDK_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -record(stringin, "S03SIM-DI-OAV-01:PVA:FirmwareVersion_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.pva,0,1)FIRMWARE_VERSION") - field(VAL, "Unknown") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control acquisition start and stop # -################################################################### - -record(bo, "S03SIM-DI-OAV-01:PVA:Acquire") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.pva,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ONAM, "Acquire") - field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:PVA:SetAcquireBusy") - info(ai:READBACK, "1") -} - -record(bi, "S03SIM-DI-OAV-01:PVA:Acquire_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)ACQUIRE") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:PVA:SetAcquireBusy") -{ - field(INPA, "S03SIM-DI-OAV-01:PVA:Acquire NPP") - field(CALC, "A") - field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:PVA:AcquireBusy PP") -} - -record(ai, "S03SIM-DI-OAV-01:PVA:AcquireBusy") { - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(VAL, "0") -} - -record(bi, "S03SIM-DI-OAV-01:PVA:AcquireBusyCB") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)ACQUIRE_BUSY") - field(ZNAM, "Done") - field(ZSV, "NO_ALARM") - field(ONAM, "Acquiring") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -record(calcout, "S03SIM-DI-OAV-01:PVA:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:PVA:AcquireBusyCB CP") - field(CALC, "A") - field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:PVA:AcquireBusy PP") -} - -record(bo, "S03SIM-DI-OAV-01:PVA:WaitForPlugins") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.pva,0,1)WAIT_FOR_PLUGINS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") -} - -################################################################### -# These records are the array size and data type # -################################################################### -# The number of dimensions -record(longout, "S03SIM-DI-OAV-01:PVA:NDimensions") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.pva,0,1)ARRAY_NDIMENSIONS") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:NDimensions_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)ARRAY_NDIMENSIONS") - field(SCAN, "I/O Intr") -} - -# The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:PVA:Dimensions") -{ - field(DTYP, "asynInt32ArrayOut") - field(INP, "@asyn(OAV.pva,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim0SA") -} - -record(subArray, "S03SIM-DI-OAV-01:PVA:Dim0SA") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize0") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize0") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim1SA") -} - -record(subArray, "S03SIM-DI-OAV-01:PVA:Dim1SA") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize1") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize1") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim2SA") -} - -record(subArray, "S03SIM-DI-OAV-01:PVA:Dim2SA") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize2") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize2") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim3SA") -} - -record(subArray, "S03SIM-DI-OAV-01:PVA:Dim3SA") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize3") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize3") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim4SA") -} - -record(subArray, "S03SIM-DI-OAV-01:PVA:Dim4SA") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize4") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize4") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim5SA") -} - -record(subArray, "S03SIM-DI-OAV-01:PVA:Dim5SA") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize5") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize5") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim6SA") -} - -record(subArray, "S03SIM-DI-OAV-01:PVA:Dim6SA") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize6") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize6") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim7SA") -} - -record(subArray, "S03SIM-DI-OAV-01:PVA:Dim7SA") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize7") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize7") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim8SA") -} - -record(subArray, "S03SIM-DI-OAV-01:PVA:Dim8SA") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize8") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize8") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim9SA") -} - -record(subArray, "S03SIM-DI-OAV-01:PVA:Dim9SA") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize9") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize9") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dim9SA") -} - - -record(waveform, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV") -{ - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.pva,0,1)ARRAY_DIMENSIONS") - field(FTVL, "LONG") - field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim0SA_RBV") - field(SCAN, "I/O Intr") -} - -record(subArray, "S03SIM-DI-OAV-01:PVA:Dim0SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize0_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize0_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim1SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:PVA:Dim1SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize1_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize1_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim2SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:PVA:Dim2SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize2_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize2_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim3SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:PVA:Dim3SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize3_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize3_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim4SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:PVA:Dim4SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize4_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize4_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim5SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:PVA:Dim5SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize5_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize5_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim6SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:PVA:Dim6SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize6_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize6_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim7SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:PVA:Dim7SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize7_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize7_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim8SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:PVA:Dim8SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize8_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize8_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:PVA:Dim9SA_RBV") -} - -record(subArray, "S03SIM-DI-OAV-01:PVA:Dim9SA_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dimensions_RBV NPP NMS") - field(FTVL, "LONG") - field(MALM, "10") - field(NELM, "1") - field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:PVA:ArraySize9_RBV") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize9_RBV") -{ - field(INP, "S03SIM-DI-OAV-01:PVA:Dim9SA_RBV") -} - - -record(mbbi, "S03SIM-DI-OAV-01:PVA:BayerPattern_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)BAYER_PATTERN") - field(ZRST, "RGGB") - field(ZRVL, "0") - field(ONST, "GBRG") - field(ONVL, "1") - field(TWST, "GRBG") - field(TWVL, "2") - field(THST, "BGGR") - field(THVL, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySizeX_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)ARRAY_SIZE_X") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySizeY_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)ARRAY_SIZE_Y") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySizeZ_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)ARRAY_SIZE_Z") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArraySize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)ARRAY_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records have information on the compression # -################################################################### -record(stringin, "S03SIM-DI-OAV-01:PVA:Codec_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.pva,0,1)CODEC") - field(VAL, "") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:CompressedSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)COMPRESSED_SIZE") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the data type # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:PVA:DataType") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.pva,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(VAL, "0") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:PVA:DataType_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)DATA_TYPE") - field(ZRST, "Int8") - field(ZRVL, "0") - field(ONST, "UInt8") - field(ONVL, "1") - field(TWST, "Int16") - field(TWVL, "2") - field(THST, "UInt16") - field(THVL, "3") - field(FRST, "Int32") - field(FRVL, "4") - field(FVST, "UInt32") - field(FVVL, "5") - field(SXST, "Int64") - field(SXVL, "6") - field(SVST, "UInt64") - field(SVVL, "7") - field(EIST, "Float32") - field(EIVL, "8") - field(NIST, "Float64") - field(NIVL, "9") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records control the color mode # -# These choices must agree with NDColorMode_t in NDArray.h # -################################################################### - -record(mbbo, "S03SIM-DI-OAV-01:PVA:ColorMode") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.pva,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - info(autosaveFields, "VAL") -} - -record(mbbi, "S03SIM-DI-OAV-01:PVA:ColorMode_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)COLOR_MODE") - field(ZRST, "Mono") - field(ZRVL, "0") - field(ONST, "Bayer") - field(ONVL, "1") - field(TWST, "RGB1") - field(TWVL, "2") - field(THST, "RGB2") - field(THVL, "3") - field(FRST, "RGB3") - field(FRVL, "4") - field(FVST, "YUV444") - field(FVVL, "5") - field(SXST, "YUV422") - field(SXVL, "6") - field(SVST, "YUV421") - field(SVVL, "7") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records are the uniqueId and time stamps of the array # -################################################################### -record(longin, "S03SIM-DI-OAV-01:PVA:UniqueId_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)UNIQUE_ID") - field(SCAN, "I/O Intr") -} - -record(ai, "S03SIM-DI-OAV-01:PVA:TimeStamp_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.pva,0,1)TIME_STAMP") - field(PREC, "3") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:EpicsTSSec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)EPICS_TS_SEC") - field(SCAN, "I/O Intr") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:EpicsTSNsec_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)EPICS_TS_NSEC") - field(SCAN, "I/O Intr") -} - -################################################################### -# These records provide statistics on array callbacks and # -# array callback rates # -################################################################### -record(longout, "S03SIM-DI-OAV-01:PVA:ArrayCounter") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.pva,0,1)ARRAY_COUNTER") -} - -record(longin, "S03SIM-DI-OAV-01:PVA:ArrayCounter_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)ARRAY_COUNTER") - field(SCAN, "I/O Intr") -} - -# Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:PVA:ArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:PVA:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:PVA:ArrayCounter_RBV NPP NMS") # Current counter value - field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:PVA:ArrayRate_RBV.VAL NPP NMS") # Previous rate - field(INPE, "0.0") # Smoothing factor - field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") - field(PREC, "2" ) - field(EGU, "Hz" ) - field(SCAN, "1 second") -} - -################################################################### -# These records control NDArray callacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:PVA:ArrayCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.pva,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(VAL, "1") - info(autosaveFields, "VAL") -} - -record(bi, "S03SIM-DI-OAV-01:PVA:ArrayCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)ARRAY_CALLBACKS") - field(ZNAM, "Disable") - field(ZSV, "NO_ALARM") - field(ONAM, "Enable") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# This record contains macro definitions for the attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:PVA:NDAttributesMacros") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.pva,0,1)ND_ATTRIBUTES_MACROS") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record is the name of a file defining attributes # -################################################################### - -record(waveform, "S03SIM-DI-OAV-01:PVA:NDAttributesFile") -{ - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(INP, "@asyn(OAV.pva,0,1)ND_ATTRIBUTES_FILE") - field(FTVL, "CHAR") - field(NELM, "256") - info(autosaveFields, "VAL") -} - -################################################################### -# This record defines the status of reading attributes file # -################################################################### - -record(mbbi, "S03SIM-DI-OAV-01:PVA:NDAttributesStatus") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)ND_ATTRIBUTES_STATUS") - field(ZRVL, "0") - field(ZRST, "Attributes file OK") - field(ZRSV, "NO_ALARM") - field(ONVL, "1") - field(ONST, "File not found") - field(ONSV, "MINOR") - field(TWVL, "2") - field(TWST, "XML syntax error") - field(TWSV, "MAJOR") - field(THVL, "3") - field(THST, "Macro substitution error") - field(THSV, "MAJOR") - field(SCAN, "I/O Intr") -} - -################################################################### -# Status of NDArrayPool - number of buffers, memory used etc. # -################################################################### +} -record(ai, "S03SIM-DI-OAV-01:PVA:PoolMaxMem") +record(mbbi, "S03SIM-EA-FSCN-02:CAM:ExposureMode_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.pva,0,1)POOL_MAX_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "Passive") - field(PINI, "YES") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM 0)GC_EXPOSURE_MODE") + field(ZRST, "N.A.") + field(ZRVL, "0") + field(SCAN, "I/O Intr") } -record(ai, "S03SIM-DI-OAV-01:PVA:PoolUsedMem") +# This record is used to ensure there is a record for ExposureAuto even if there is no such GenICam feature +record(mbbo, "S03SIM-EA-FSCN-02:CAM:ExposureAuto") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.pva,0,1)POOL_USED_MEMORY") - field(PREC, "1") - field(EGU, "MB") - field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:PVA:PoolAllocBuffers") - info(autosaveFields, "SCAN") + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM 0)GC_EXPOSURE_AUTO") + field(ZRST, "N.A.") + field(ZRVL, "0") } -record(longin, "S03SIM-DI-OAV-01:PVA:PoolAllocBuffers") +record(mbbi, "S03SIM-EA-FSCN-02:CAM:ExposureAuto_RBV") { field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:PVA:PoolFreeBuffers") + field(INP, "@asyn(FSCN2.CAM 0)GC_EXPOSURE_AUTO") + field(SCAN, "I/O Intr") + field(ZRST, "N.A.") + field(ZRVL, "0") } -record(longin, "S03SIM-DI-OAV-01:PVA:PoolFreeBuffers") +# This record is used to ensure there is a record for GainAuto even if there is no such GenICam feature +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GainAuto") { + field(PINI, "YES") field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:PVA:PoolUsedBuffers") + field(OUT, "@asyn(FSCN2.CAM 0)GC_GAIN_AUTO") + field(ZRST, "N.A.") + field(ZRVL, "0") } -record(calc, "S03SIM-DI-OAV-01:PVA:PoolUsedBuffers") +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GainAuto_RBV") { - field(INPA, "S03SIM-DI-OAV-01:PVA:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:PVA:PoolFreeBuffers NPP MS") - field(CALC, "A-B") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM 0)GC_GAIN_AUTO") + field(SCAN, "I/O Intr") + field(ZRST, "N.A.") + field(ZRVL, "0") } -record(bo, "S03SIM-DI-OAV-01:PVA:EmptyFreeList") +# This record is used to ensure there is a record for PixelFormat even if there is no such GenICam feature +record(mbbo, "S03SIM-EA-FSCN-02:CAM:PixelFormat") { + field(PINI, "YES") field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.pva,0,1)POOL_EMPTY_FREELIST") + field(OUT, "@asyn(FSCN2.CAM 0)GC_PIXEL_FORMAT") + field(ZRST, "N.A.") + field(ZRVL, "0") } -record(longin, "S03SIM-DI-OAV-01:PVA:NumQueuedArrays") +record(mbbi, "S03SIM-EA-FSCN-02:CAM:PixelFormat_RBV") { field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)NUM_QUEUED_ARRAYS") + field(INP, "@asyn(FSCN2.CAM 0)GC_PIXEL_FORMAT") + field(ZRST, "N.A.") + field(ZRVL, "0") field(SCAN, "I/O Intr") } -################################################################### -# This record contains the type of plugin # -################################################################### - -record(stringin, "S03SIM-DI-OAV-01:PVA:PluginType_RBV") +record(ai, "S03SIM-EA-FSCN-02:CAM:ARFramesCompleted") { - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.pva,0,1)PLUGIN_TYPE") - field(VAL, "Unknown") + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_COMPLETED") field(SCAN, "I/O Intr") + info(autosaveFields, "DESC LLSV LOLO LOW LSV") } -################################################################### -# These records control the connection of the server to # -# an NDArray driver port and address # -################################################################### -# Array port name -record(stringout, "S03SIM-DI-OAV-01:PVA:NDArrayPort") +record(ai, "S03SIM-EA-FSCN-02:CAM:ARFrameFailures") { - field(PINI, "YES") - field(DTYP, "asynOctetWrite") - field(OUT, "@asyn(OAV.pva,0,1)NDARRAY_PORT") - field(VAL, "OAV.CAM") - info(autosaveFields, "VAL") + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_FAILURES") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV") } -record(stringin, "S03SIM-DI-OAV-01:PVA:NDArrayPort_RBV") +record(ai, "S03SIM-EA-FSCN-02:CAM:ARFrameUnderruns") { - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.pva,0,1)NDARRAY_PORT") - field(SCAN, "I/O Intr") + field(DTYP, "asynFloat64") + field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_UNDERRUNS") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV") } -record(longout, "S03SIM-DI-OAV-01:PVA:NDArrayAddress") +record(longin, "S03SIM-EA-FSCN-02:CAM:ARMissingPackets") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.pva,0,1)NDARRAY_ADDR") - field(VAL, "0") - info(autosaveFields, "VAL") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_MISSING_PKTS") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV") } -record(longin, "S03SIM-DI-OAV-01:PVA:NDArrayAddress_RBV") +record(longin, "S03SIM-EA-FSCN-02:CAM:ARResentPackets") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)NDARRAY_ADDR") - field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_RESENT_PKTS") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV") } -################################################################### -# These records control whether callbacks are enabled and # -# minimum time between callbacks # -################################################################### -record(bo, "S03SIM-DI-OAV-01:PVA:EnableCallbacks") +record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARPacketResendEnable") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.pva,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(VAL, "1") - info(autosaveFields, "VAL") + field(DESC, "Packet resend enable") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_PKT_RESEND") + field(ZRST, "Never") + field(ZRVL, "0") + field(ONST, "Always") + field(ONVL, "1") + field(VAL, "1") + field(PINI, "1") + info(autosaveFields, "DESC ONSV ZRSV PINI VAL") } -record(bi, "S03SIM-DI-OAV-01:PVA:EnableCallbacks_RBV") +record(longout, "S03SIM-EA-FSCN-02:CAM:ARPacketTimeout") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)ENABLE_CALLBACKS") - field(ZNAM, "Disable") - field(ONAM, "Enable") - field(ZSV, "NO_ALARM") - field(OSV, "MINOR") - field(SCAN, "I/O Intr") + field(DESC, "Delay in us before packet resend request") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_PKT_TIMEOUT") + field(VAL, "20000") + field(EGU, "us") + field(PINI, "1") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV LLSV LOLO LOW LSV PINI VAL") } -record(ao, "S03SIM-DI-OAV-01:PVA:MinCallbackTime") +record(longout, "S03SIM-EA-FSCN-02:CAM:ARFrameRetention") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.pva,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") + field(DESC, "Frame timeout in us after last packet") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_FRAME_RETENTION") + field(VAL, "100000") + field(EGU, "us") + field(PINI, "1") + info(autosaveFields, "DESC HHSV HIHI HIGH HSV LLSV LOLO LOW LSV PINI VAL") } -record(ai, "S03SIM-DI-OAV-01:PVA:MinCallbackTime_RBV") +record(longout, "S03SIM-EA-FSCN-02:CAM:ARResetCamera") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.pva,0,1)MIN_CALLBACK_TIME") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_RESET") + field(FLNK, "S03SIM-EA-FSCN-02:CAM:ARConnectCamera") } -record(ao, "S03SIM-DI-OAV-01:PVA:MaxArrayRate") +record(longout, "S03SIM-EA-FSCN-02:CAM:ARConnectCamera") { - field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:PVA:MaxArrayRate_COUT PP") - field(EGU, "Hz") - field(PREC, "3") - field(VAL, "0.0") - info(autosaveFields, "VAL") + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_CONNECTION") + field(VAL, "1") + field(PINI, "1") } -record(calcout, "S03SIM-DI-OAV-01:PVA:MaxArrayRate_COUT") +record(calcout, "S03SIM-EA-FSCN-02:CAM:ARCheckConnection") { - field(INPA, "S03SIM-DI-OAV-01:PVA:MaxArrayRate") - field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:PVA:MinCallbackTime PP") + field(SCAN, "1 second") + field(INPA, "S03SIM-EA-FSCN-02:CAM:ARConnectCamera.SEVR CP") + field(CALC, "A==0") + field(OOPT, "When Non-zero") + field(OUT, "S03SIM-EA-FSCN-02:CAM:ARConnectCamera.PROC PP") } -record(calc, "S03SIM-DI-OAV-01:PVA:MaxArrayRate_RBV") -{ - field(INPA, "S03SIM-DI-OAV-01:PVA:MinCallbackTime_RBV CP") - field(CALC, "A=0?0:1.0/A") - field(EGU, "Hz") - field(PREC, "3") - field(SCAN, "Passive") +record(mbbi, "S03SIM-EA-FSCN-02:CAM:ARConvertPixelFormat_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_CONVERT_PIXEL_FORMAT") + field(ZRST, "Mono16Low") + field(ZRVL, "0") + field(ONST, "Mono16High") + field(ONVL, "1") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC ZRSV ONSV") } -record(ao, "S03SIM-DI-OAV-01:PVA:MaxByteRate") -{ - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.pva,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(VAL, "0.0") - field(DRVL, "0") - info(autosaveFields, "VAL") + +## When unpacking Mono12Packed or Mono12p selects whether 16-bit output is +## left shifted by 4 bits (Mono16High) or not (Mono16Low) +record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARConvertPixelFormat") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_CONVERT_PIXEL_FORMAT") + field(ZRST, "Mono16Low") + field(ZRVL, "0") + field(ONST, "Mono16High") + field(ONVL, "1") + field(PINI, "1") + info(autosaveFields, "DESC ZRSV ONSV VAL") } -record(ai, "S03SIM-DI-OAV-01:PVA:MaxByteRate_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.pva,0,1)MAX_BYTE_RATE") - field(EGU, "s") - field(PREC, "3") - field(SCAN, "I/O Intr") + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:ARShiftDir_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_SHIFT_DIR") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "Left") + field(ONVL, "1") + field(TWST, "Right") + field(TWVL, "2") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC ZRSV ONSV") } -################################################################### -# This record contains the last execution time of the plugin # -################################################################### -record(ai, "S03SIM-DI-OAV-01:PVA:ExecutionTime_RBV") -{ - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.pva,0,1)EXECUTION_TIME") - field(EGU, "ms") - field(PREC, "3") - field(SCAN, "I/O Intr") +## Select no shift, left shift, or right shift when reading data +record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARShiftDir") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_SHIFT_DIR") + field(ZRST, "None") + field(ZRVL, "0") + field(ONST, "Left") + field(ONVL, "1") + field(TWST, "Right") + field(TWVL, "2") + field(PINI, "1") + info(autosaveFields, "DESC ZRSV ONSV VAL") } -################################################################### -# This record requests that the plugin execute again with the # -# same NDArray # -################################################################### -record(bo, "S03SIM-DI-OAV-01:PVA:ProcessPlugin") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.pva,0,1)PROCESS_PLUGIN") - field(VAL, "1") +record(mbbi, "S03SIM-EA-FSCN-02:CAM:ARShiftBits_RBV") { + field(DTYP, "asynInt32") + field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_SHIFT_BITS") + field(ZRST, "1") + field(ZRVL, "1") + field(ONST, "2") + field(ONVL, "2") + field(TWST, "3") + field(TWVL, "3") + field(THST, "4") + field(THVL, "4") + field(FRST, "5") + field(FRVL, "5") + field(FVST, "6") + field(FVVL, "6") + field(SXST, "7") + field(SXVL, "7") + field(SVST, "8") + field(SVVL, "8") + field(SCAN, "I/O Intr") + info(autosaveFields, "DESC ZRSV ONSV") } -################################################################### -# These records control whether callbacks block or not # -################################################################### -record(bo, "S03SIM-DI-OAV-01:PVA:BlockingCallbacks") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.pva,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(VAL, "0") - info(autosaveFields, "VAL") +## Selects how many bits to shift left or right when reading data +record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARShiftBits") { + field(DTYP, "asynInt32") + field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_SHIFT_BITS") + field(ZRST, "1") + field(ZRVL, "1") + field(ONST, "2") + field(ONVL, "2") + field(TWST, "3") + field(TWVL, "3") + field(THST, "4") + field(THVL, "4") + field(FRST, "5") + field(FRVL, "5") + field(FVST, "6") + field(FVVL, "6") + field(SXST, "7") + field(SXVL, "7") + field(SVST, "8") + field(SVVL, "8") + field(PINI, "1") + info(autosaveFields, "DESC ZRSV ONSV VAL") } -record(bi, "S03SIM-DI-OAV-01:PVA:BlockingCallbacks_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)BLOCKING_CALLBACKS") - field(ZNAM, "No") - field(ONAM, "Yes") - field(SCAN, "I/O Intr") +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ExpAutoTarget_RBV") { + alias("S03SIM-EA-FSCN-01:CAM:ExposureAutoTarg_RBV") } +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ExpAutoTarget") { + alias("S03SIM-EA-FSCN-01:CAM:ExposureAutoTarg") +} -record(longout, "S03SIM-DI-OAV-01:PVA:DroppedArrays") -{ - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.pva,0,1)DROPPED_ARRAYS") - field(VAL, "0") +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoTarget_RBV") { + alias("S03SIM-EA-FSCN-01:CAM:GainAutoTarget_RBV") } -record(longin, "S03SIM-DI-OAV-01:PVA:DroppedArrays_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)DROPPED_ARRAYS") - field(SCAN, "I/O Intr") +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoTarget") { + alias("S03SIM-EA-FSCN-01:CAM:GainAutoTarget") } -record(longout, "S03SIM-DI-OAV-01:PVA:QueueSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.pva,0,1)QUEUE_SIZE") - field(PINI, "YES") +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_BalRatioSelector_RBV") { + alias("S03SIM-EA-FSCN-01:CAM:BalanceRatioSele_RBV") } -record(longin, "S03SIM-DI-OAV-01:PVA:QueueSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:PVA:QueueFreeLow") - field(SCAN, "I/O Intr") +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_BalRatioSelector") { + alias("S03SIM-EA-FSCN-01:CAM:BalanceRatioSele") } -record(calcout, "S03SIM-DI-OAV-01:PVA:QueueFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:PVA:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:PVA:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:PVA:QueueUseHIGH") +record(ai, "S03SIM-EA-FSCN-01:CAM:GC_BalanceRatioAbs_RBV") { + alias("S03SIM-EA-FSCN-01:CAM:BalanceRatioAbs_RBV") } -# Set a HIGH warning level for the input queue fill level to 75% -# of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:PVA:QueueUseHIGH") { - field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:PVA:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:PVA:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:PVA:QueueUseHIHI") +record(ao, "S03SIM-EA-FSCN-01:CAM:GC_BalanceRatioAbs") { + alias("S03SIM-EA-FSCN-01:CAM:BalanceRatioAbs") } -# Set a HIHI level for the input queue fill level to indicate an error -# (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:PVA:QueueUseHIHI") { - field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:PVA:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:PVA:QueueUse.HIHI") +record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_BalanceWhiteAuto_RBV") { + alias("S03SIM-EA-FSCN-01:CAM:BalanceWhiteAut0_RBV") } -record(longin, "S03SIM-DI-OAV-01:PVA:QueueFree") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)QUEUE_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") +record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_BalanceWhiteAuto") { + alias("S03SIM-EA-FSCN-01:CAM:BalanceWhiteAut0") } -# Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:PVA:QueueUse") { - field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:PVA:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:PVA:QueueFree CP") - field(SCAN, "Passive") - field(HHSV, "MAJOR") - field(HSV, "MINOR") - field(HYST, "1") +record(ai, "S03SIM-EA-FSCN-01:CAM:ARFramesCompleted") +{ + alias("S03SIM-EA-FSCN-01:CAM:COMPLETED_RBV") } -record(longout, "S03SIM-DI-OAV-01:PVA:NumThreads") +record(ai, "S03SIM-EA-FSCN-01:CAM:ARFrameFailures") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.pva,0,1)NUM_THREADS") - field(VAL, "1") - field(PINI, "YES") + alias("S03SIM-EA-FSCN-01:CAM:FAILURES_RBV") } -record(longin, "S03SIM-DI-OAV-01:PVA:NumThreads_RBV") +record(ai, "S03SIM-EA-FSCN-01:CAM:ARFrameUnderruns") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)NUM_THREADS") - field(SCAN, "I/O Intr") + alias("S03SIM-EA-FSCN-01:CAM:UNDERRUNS_RBV") } -record(longin, "S03SIM-DI-OAV-01:PVA:MaxThreads_RBV") +record(longout, "S03SIM-EA-FSCN-01:CAM:ARResetCamera") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)MAX_THREADS") - field(SCAN, "I/O Intr") + alias("S03SIM-EA-FSCN-01:CAM:RESET") } -################################################################### -# These records control output array sorting # -################################################################### -record(mbbo, "S03SIM-DI-OAV-01:PVA:SortMode") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.pva,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") +record(mbbi, "S03SIM-EA-FSCN-01:CAM:ARLeftShift_RBV") { + alias("S03SIM-EA-FSCN-01:CAM:LEFTSHIFT_RBV") } -record(mbbi, "S03SIM-DI-OAV-01:PVA:SortMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)SORT_MODE") - field(ZRVL, "0") - field(ZRST, "Unsorted") - field(ONVL, "1") - field(ONST, "Sorted") - field(SCAN, "I/O Intr") +record(mbbo, "S03SIM-EA-FSCN-01:CAM:ARLeftShift") { + alias("S03SIM-EA-FSCN-01:CAM:LEFTSHIFT") } -record(ao, "S03SIM-DI-OAV-01:PVA:SortTime") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.pva,0,1)SORT_TIME") - field(PREC, "3") - field(VAL, "0.1") +record(bi, "S03SIM-EA-FSCN-01:CAM:ARHWImageMode_RBV") { + alias("S03SIM-EA-FSCN-01:CAM:HWIMAGEMODE_RBV") } -record(ai, "S03SIM-DI-OAV-01:PVA:SortTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.pva,0,1)SORT_TIME") - field(PREC, "3") - field(SCAN, "I/O Intr") +record(bo, "S03SIM-EA-FSCN-01:CAM:ARHWImageMode") { + alias("S03SIM-EA-FSCN-01:CAM:HWIMAGEMODE") } +# Macros: +#% macro, P, Device Prefix +#% macro, R, Device Suffix -record(longout, "S03SIM-DI-OAV-01:PVA:SortSize") -{ - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.pva,0,1)SORT_SIZE") - field(VAL, "20") - field(PINI, "YES") + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ExpAutoTarget_RBV") { + alias("S03SIM-EA-FSCN-02:CAM:ExposureAutoTarg_RBV") } -record(longin, "S03SIM-DI-OAV-01:PVA:SortSize_RBV") -{ - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:PVA:SortFreeLow") - field(SCAN, "I/O Intr") +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ExpAutoTarget") { + alias("S03SIM-EA-FSCN-02:CAM:ExposureAutoTarg") } -record(longin, "S03SIM-DI-OAV-01:PVA:SortFree") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)SORT_FREE") - field(LLSV, "MAJOR") - field(LSV, "MINOR") - field(LOLO, "0") - field(HYST, "1") - field(SCAN, "I/O Intr") +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoTarget_RBV") { + alias("S03SIM-EA-FSCN-02:CAM:GainAutoTarget_RBV") } -record(calcout, "S03SIM-DI-OAV-01:PVA:SortFreeLow") { - field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:PVA:SortSize") - field(OUT, "S03SIM-DI-OAV-01:PVA:SortFree.LOW") +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoTarget") { + alias("S03SIM-EA-FSCN-02:CAM:GainAutoTarget") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_BalRatioSelector_RBV") { + alias("S03SIM-EA-FSCN-02:CAM:BalanceRatioSele_RBV") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_BalRatioSelector") { + alias("S03SIM-EA-FSCN-02:CAM:BalanceRatioSele") +} + +record(ai, "S03SIM-EA-FSCN-02:CAM:GC_BalanceRatioAbs_RBV") { + alias("S03SIM-EA-FSCN-02:CAM:BalanceRatioAbs_RBV") +} + +record(ao, "S03SIM-EA-FSCN-02:CAM:GC_BalanceRatioAbs") { + alias("S03SIM-EA-FSCN-02:CAM:BalanceRatioAbs") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_BalanceWhiteAuto_RBV") { + alias("S03SIM-EA-FSCN-02:CAM:BalanceWhiteAut0_RBV") +} + +record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_BalanceWhiteAuto") { + alias("S03SIM-EA-FSCN-02:CAM:BalanceWhiteAut0") } -record(longout, "S03SIM-DI-OAV-01:PVA:DroppedOutputArrays") +record(ai, "S03SIM-EA-FSCN-02:CAM:ARFramesCompleted") { - field(PINI, "YES") - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.pva,0,1)DROPPED_OUTPUT_ARRAYS") - field(VAL, "0") + alias("S03SIM-EA-FSCN-02:CAM:COMPLETED_RBV") } -record(longin, "S03SIM-DI-OAV-01:PVA:DroppedOutputArrays_RBV") +record(ai, "S03SIM-EA-FSCN-02:CAM:ARFrameFailures") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)DROPPED_OUTPUT_ARRAYS") - field(SCAN, "I/O Intr") + alias("S03SIM-EA-FSCN-02:CAM:FAILURES_RBV") } -record(longout, "S03SIM-DI-OAV-01:PVA:DisorderedArrays") +record(ai, "S03SIM-EA-FSCN-02:CAM:ARFrameUnderruns") { - field(DTYP, "asynInt32") - field(OUT, "@asyn(OAV.pva,0,1)DISORDERED_ARRAYS") - field(PINI, "YES") + alias("S03SIM-EA-FSCN-02:CAM:UNDERRUNS_RBV") } -record(longin, "S03SIM-DI-OAV-01:PVA:DisorderedArrays_RBV") +record(longout, "S03SIM-EA-FSCN-02:CAM:ARResetCamera") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.pva,0,1)DISORDERED_ARRAYS") - field(SCAN, "I/O Intr") + alias("S03SIM-EA-FSCN-02:CAM:RESET") +} + +record(mbbi, "S03SIM-EA-FSCN-02:CAM:ARLeftShift_RBV") { + alias("S03SIM-EA-FSCN-02:CAM:LEFTSHIFT_RBV") } +record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARLeftShift") { + alias("S03SIM-EA-FSCN-02:CAM:LEFTSHIFT") +} +record(bi, "S03SIM-EA-FSCN-02:CAM:ARHWImageMode_RBV") { + alias("S03SIM-EA-FSCN-02:CAM:HWIMAGEMODE_RBV") +} -################################################################### -# The asynRecord is used for mainly for trace mask # -################################################################### - -# Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-DI-OAV-01:PVA:AsynIO") -{ - field(PORT, "OAV.pva") - field(TIB2,"1") - info("ADType", "ADPlugin") +record(bo, "S03SIM-EA-FSCN-02:CAM:ARHWImageMode") { + alias("S03SIM-EA-FSCN-02:CAM:HWIMAGEMODE") } +# Macros: +#% macro, P, Device Prefix +#% macro, R, Device Suffix -# New records for NDPluginPva -record(waveform, "S03SIM-DI-OAV-01:PVA:PvName_RBV") -{ - field(DTYP, "asynOctetRead") - field(INP, "@asyn(OAV.pva,0,1)PV_NAME") - field(FTVL, "CHAR") - field(NELM, "256") - field(SCAN, "I/O Intr") -} #=================================================================# # Template file: NDPva.template # Database for the records specific to the pvAccess plugin @@ -159322,7 +9911,7 @@ record(calcout, "S03SIM-EA-FSCN-01:PVA:SetAcquireBusy") field(OUT, "S03SIM-EA-FSCN-01:PVA:AcquireBusy PP") } -record(ai, "S03SIM-EA-FSCN-01:PVA:AcquireBusy") { +record(bi, "S03SIM-EA-FSCN-01:PVA:AcquireBusy") { field(ZNAM, "Done") field(ZSV, "NO_ALARM") field(ONAM, "Acquiring") @@ -160480,15 +11069,6 @@ record(longin, "S03SIM-EA-FSCN-01:PVA:DisorderedArrays_RBV") ################################################################### # Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-01:PVA:AsynIO") -{ - field(PORT, "FSCN1.pva") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - - -# New records for NDPluginPva record(waveform, "S03SIM-EA-FSCN-01:PVA:PvName_RBV") { @@ -160692,7 +11272,7 @@ record(calcout, "S03SIM-EA-FSCN-02:PVA:SetAcquireBusy") field(OUT, "S03SIM-EA-FSCN-02:PVA:AcquireBusy PP") } -record(ai, "S03SIM-EA-FSCN-02:PVA:AcquireBusy") { +record(bi, "S03SIM-EA-FSCN-02:PVA:AcquireBusy") { field(ZNAM, "Done") field(ZSV, "NO_ALARM") field(ONAM, "Acquiring") @@ -161850,13 +12430,6 @@ record(longin, "S03SIM-EA-FSCN-02:PVA:DisorderedArrays_RBV") ################################################################### # Set ASYN_TRACEIO_HEX bit by default -record(ai,"S03SIM-EA-FSCN-02:PVA:AsynIO") -{ - field(PORT, "FSCN2.pva") - field(TIB2,"1") - info("ADType", "ADPlugin") -} - # New records for NDPluginPva diff --git a/tickit_devices/oav/oav_edge_detection.py b/tickit_devices/oav/oav_edge_detection.py index 136e10b9..b0aedffb 100644 --- a/tickit_devices/oav/oav_edge_detection.py +++ b/tickit_devices/oav/oav_edge_detection.py @@ -14,7 +14,7 @@ from tickit.utils.compat.typing_compat import TypedDict -class OAVEdgeDetectionDevice(Device): +class OAVDevice(Device): """Class for simulating the PVs in OAV relevant to edge detection. We won't try and implement any fancy logic (yet). Just get the PVs hosted. @@ -39,13 +39,13 @@ def update(self, time: SimTime, inputs: Inputs) -> DeviceUpdate[Outputs]: DeviceUpdate[Outputs]: The produced update event. """ - return DeviceUpdate(OAVEdgeDetectionDevice.Outputs(), None) + return DeviceUpdate(OAVDevice.Outputs(), None) -class OAVEdgeDetectionTCPAdapter(ComposedAdapter): - """A TCP adapter to set a OAVEdgeDetectionDevice PV values.""" +class OAVTCPAdapter(ComposedAdapter): + """A TCP adapter to set a OAVDevice_DIOAV PV values.""" - device: OAVEdgeDetectionDevice + device: OAVDevice def __init__( self, @@ -63,14 +63,14 @@ def __init__( ) -class OAVEdgeDetectionEpicsAdapter(EpicsAdapter): +class OAVEpicsAdapter(EpicsAdapter): """Epics Adapter. - Epics adapter for reading all EdgeDetectionAttributes as a PV + Epics adapter for reading all Attributes as a PV through channel access. """ - device: OAVEdgeDetectionDevice + device: OAVDevice # Put all the PVs on EPICS def on_db_load(self) -> None: @@ -79,8 +79,8 @@ def on_db_load(self) -> None: @dataclass -class OAVEdgeDetection(ComponentConfig): - """Synchrotron current component.""" +class OAV_DI_OAV(ComponentConfig): + """To hold DI-OAV PVs.""" waveforms_file: str = "tickit_devices/oav/db_files/edge_waveforms.npy" host: str = "localhost" @@ -95,11 +95,59 @@ def __call__(self) -> Component: # noqa: D102 self.initial_edgeBottom = np.load(f) return DeviceSimulation( name=self.name, - device=OAVEdgeDetectionDevice(), + device=OAVDevice(), adapters=[ - OAVEdgeDetectionTCPAdapter( - TcpServer(self.host, self.port, self.format) - ), - OAVEdgeDetectionEpicsAdapter(self.db_file, self.ioc_name), + OAVTCPAdapter(TcpServer(self.host, self.port, self.format)), + OAVEpicsAdapter(self.db_file, self.ioc_name), + ], + ) + + +@dataclass +class OAV_DI_IOC(ComponentConfig): + """To hold DI-IOC PVs.""" + + waveforms_file: str = "tickit_devices/oav/db_files/edge_waveforms.npy" + host: str = "localhost" + port: int = 25565 + format: ByteFormat = ByteFormat(b"%b\r\n") + db_file: str = "tickit_devices/oav/db_files/DI-IOC.db" + ioc_name: str = "S03SIM-DI-IOC-01" + + def __call__(self) -> Component: # noqa: D102 + with open(self.waveforms_file, "rb") as f: + self.initial_edgeTop = np.load(f) + self.initial_edgeBottom = np.load(f) + return DeviceSimulation( + name=self.name, + device=OAVDevice(), + adapters=[ + OAVTCPAdapter(TcpServer(self.host, self.port, self.format)), + OAVEpicsAdapter(self.db_file, self.ioc_name), + ], + ) + + +@dataclass +class OAV_EA_FSCN(ComponentConfig): + """To hold EA-FSCN PVs.""" + + waveforms_file: str = "tickit_devices/oav/db_files/edge_waveforms.npy" + host: str = "localhost" + port: int = 25565 + format: ByteFormat = ByteFormat(b"%b\r\n") + db_file: str = "tickit_devices/oav/db_files/EA-FSCN.db" + ioc_name: str = "S03SIM-EA-FSCN-01" + + def __call__(self) -> Component: # noqa: D102 + with open(self.waveforms_file, "rb") as f: + self.initial_edgeTop = np.load(f) + self.initial_edgeBottom = np.load(f) + return DeviceSimulation( + name=self.name, + device=OAVDevice(), + adapters=[ + OAVTCPAdapter(TcpServer(self.host, self.port, self.format)), + OAVEpicsAdapter(self.db_file, self.ioc_name), ], ) From 6e0632783b8f99f340df69679a7ad5354d1c3778 Mon Sep 17 00:00:00 2001 From: Eva Lott Date: Wed, 2 Nov 2022 09:36:34 +0000 Subject: [PATCH 08/16] Added the camera zoom control, and the backlight On/Off PVs #26 --- s03_configs/oav.yaml | 12 +++++- tickit_devices/oav/db_files/EA-OAV.db | 8 ++++ tickit_devices/oav/db_files/MO-MD2.db | 9 +++++ tickit_devices/oav/oav_edge_detection.py | 50 ++++++++++++++++++++++++ 4 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 tickit_devices/oav/db_files/EA-OAV.db create mode 100644 tickit_devices/oav/db_files/MO-MD2.db diff --git a/s03_configs/oav.yaml b/s03_configs/oav.yaml index 21569359..29cf791e 100644 --- a/s03_configs/oav.yaml +++ b/s03_configs/oav.yaml @@ -9,4 +9,14 @@ - tickit_devices.oav.oav_edge_detection.OAV_EA_FSCN: name: oav_ea_fscn inputs: {} - port: 25563 \ No newline at end of file + port: 25563 +- tickit_devices.oav.oav_edge_detection.OAV_EA_OAV: + name: oav_ea_oav + inputs: {} + port: 25562 + + +- tickit_devices.oav.oav_edge_detection.OAV_MO_MD2: + name: oav_mo_md2 + inputs: {} + port: 25561 \ No newline at end of file diff --git a/tickit_devices/oav/db_files/EA-OAV.db b/tickit_devices/oav/db_files/EA-OAV.db new file mode 100644 index 00000000..11381d48 --- /dev/null +++ b/tickit_devices/oav/db_files/EA-OAV.db @@ -0,0 +1,8 @@ +record(stringout, "S03SIM-EA-OAV-01:FZOOM:ZOOMPOSCMD") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.MXSC,0,1)NDARRAY_PORT") + field(VAL, "1.0x") + info(autosaveFields, "VAL") +} \ No newline at end of file diff --git a/tickit_devices/oav/db_files/MO-MD2.db b/tickit_devices/oav/db_files/MO-MD2.db new file mode 100644 index 00000000..7eed1fba --- /dev/null +++ b/tickit_devices/oav/db_files/MO-MD2.db @@ -0,0 +1,9 @@ + +record(stringout, "S03SIM-MO-MD2-01:CTRL") +{ + field(PINI, "YES") + field(DTYP, "asynOctetWrite") + field(OUT, "@asyn(OAV.MXSC,0,1)NDARRAY_PORT") + field(VAL, "Out") + info(autosaveFields, "VAL") +} \ No newline at end of file diff --git a/tickit_devices/oav/oav_edge_detection.py b/tickit_devices/oav/oav_edge_detection.py index b0aedffb..b9bf3d60 100644 --- a/tickit_devices/oav/oav_edge_detection.py +++ b/tickit_devices/oav/oav_edge_detection.py @@ -151,3 +151,53 @@ def __call__(self) -> Component: # noqa: D102 OAVEpicsAdapter(self.db_file, self.ioc_name), ], ) + + +@dataclass +class OAV_EA_OAV(ComponentConfig): + """To hold EA-OAV PVs.""" + + waveforms_file: str = "tickit_devices/oav/db_files/edge_waveforms.npy" + host: str = "localhost" + port: int = 25565 + format: ByteFormat = ByteFormat(b"%b\r\n") + db_file: str = "tickit_devices/oav/db_files/EA-OAV.db" + ioc_name: str = "S03SIM-EA-OAV-01" + + def __call__(self) -> Component: # noqa: D102 + with open(self.waveforms_file, "rb") as f: + self.initial_edgeTop = np.load(f) + self.initial_edgeBottom = np.load(f) + return DeviceSimulation( + name=self.name, + device=OAVDevice(), + adapters=[ + OAVTCPAdapter(TcpServer(self.host, self.port, self.format)), + OAVEpicsAdapter(self.db_file, self.ioc_name), + ], + ) + + +@dataclass +class OAV_MO_MD2(ComponentConfig): + """To hold EA-OAV PVs.""" + + waveforms_file: str = "tickit_devices/oav/db_files/edge_waveforms.npy" + host: str = "localhost" + port: int = 25565 + format: ByteFormat = ByteFormat(b"%b\r\n") + db_file: str = "tickit_devices/oav/db_files/MO-MD2.db" + ioc_name: str = "S03SIM-MO-MD2-01" + + def __call__(self) -> Component: # noqa: D102 + with open(self.waveforms_file, "rb") as f: + self.initial_edgeTop = np.load(f) + self.initial_edgeBottom = np.load(f) + return DeviceSimulation( + name=self.name, + device=OAVDevice(), + adapters=[ + OAVTCPAdapter(TcpServer(self.host, self.port, self.format)), + OAVEpicsAdapter(self.db_file, self.ioc_name), + ], + ) From 45022b42ffb292a8f71c18302f12b298829d6133 Mon Sep 17 00:00:00 2001 From: Eva Lott Date: Mon, 14 Nov 2022 16:35:46 +0000 Subject: [PATCH 09/16] Changed the backlight IOC name to match I03's #26 --- s03_configs/oav.yaml | 6 +++--- tickit_devices/oav/db_files/DI-OAV.db | 5 +++++ tickit_devices/oav/db_files/{MO-MD2.db => EA-BL.db} | 4 ++-- tickit_devices/oav/db_files/MO-GONIO.db | 0 tickit_devices/oav/oav_edge_detection.py | 6 +++--- 5 files changed, 13 insertions(+), 8 deletions(-) rename tickit_devices/oav/db_files/{MO-MD2.db => EA-BL.db} (79%) create mode 100644 tickit_devices/oav/db_files/MO-GONIO.db diff --git a/s03_configs/oav.yaml b/s03_configs/oav.yaml index 29cf791e..a6dbad20 100644 --- a/s03_configs/oav.yaml +++ b/s03_configs/oav.yaml @@ -16,7 +16,7 @@ port: 25562 -- tickit_devices.oav.oav_edge_detection.OAV_MO_MD2: - name: oav_mo_md2 +- tickit_devices.oav.oav_edge_detection.OAV_EA_BL: + name: oav_ea_bl inputs: {} - port: 25561 \ No newline at end of file + port: 25561 diff --git a/tickit_devices/oav/db_files/DI-OAV.db b/tickit_devices/oav/db_files/DI-OAV.db index 8e147f5f..4a0f2c94 100644 --- a/tickit_devices/oav/db_files/DI-OAV.db +++ b/tickit_devices/oav/db_files/DI-OAV.db @@ -5653,6 +5653,11 @@ record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize1_RBV") field(INP, "S03SIM-DI-OAV-01:MJPG:Dim1SA_RBV") field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim2SA_RBV") } +record(longin, "S03SIM-DI-OAV-01:MJPG:JPG_URL_RBV") +{ + field(INP, "S03SIM-DI-OAV-01:MJPG:Dim1SA_RBV") + field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim2SA_RBV") +} record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize2_RBV") { diff --git a/tickit_devices/oav/db_files/MO-MD2.db b/tickit_devices/oav/db_files/EA-BL.db similarity index 79% rename from tickit_devices/oav/db_files/MO-MD2.db rename to tickit_devices/oav/db_files/EA-BL.db index 7eed1fba..d1185066 100644 --- a/tickit_devices/oav/db_files/MO-MD2.db +++ b/tickit_devices/oav/db_files/EA-BL.db @@ -1,9 +1,9 @@ -record(stringout, "S03SIM-MO-MD2-01:CTRL") +record(stringout, "S03SIM-EA-BL-01:CTRL") { field(PINI, "YES") field(DTYP, "asynOctetWrite") field(OUT, "@asyn(OAV.MXSC,0,1)NDARRAY_PORT") field(VAL, "Out") info(autosaveFields, "VAL") -} \ No newline at end of file +} diff --git a/tickit_devices/oav/db_files/MO-GONIO.db b/tickit_devices/oav/db_files/MO-GONIO.db new file mode 100644 index 00000000..e69de29b diff --git a/tickit_devices/oav/oav_edge_detection.py b/tickit_devices/oav/oav_edge_detection.py index b9bf3d60..6e6c1f0d 100644 --- a/tickit_devices/oav/oav_edge_detection.py +++ b/tickit_devices/oav/oav_edge_detection.py @@ -179,15 +179,15 @@ def __call__(self) -> Component: # noqa: D102 @dataclass -class OAV_MO_MD2(ComponentConfig): +class OAV_EA_BL(ComponentConfig): """To hold EA-OAV PVs.""" waveforms_file: str = "tickit_devices/oav/db_files/edge_waveforms.npy" host: str = "localhost" port: int = 25565 format: ByteFormat = ByteFormat(b"%b\r\n") - db_file: str = "tickit_devices/oav/db_files/MO-MD2.db" - ioc_name: str = "S03SIM-MO-MD2-01" + db_file: str = "tickit_devices/oav/db_files/EA-BL.db" + ioc_name: str = "S03SIM-EA-BL-01" def __call__(self) -> Component: # noqa: D102 with open(self.waveforms_file, "rb") as f: From 32e9faafae79bc64fc885905f43700016d838a2c Mon Sep 17 00:00:00 2001 From: Eva Lott Date: Thu, 24 Nov 2022 09:42:53 +0000 Subject: [PATCH 10/16] #26 Added necessary db files for the OAV --- s03_configs/oav.yaml | 6 ++- tickit_devices/oav/db_files/DI-OAV.db | 0 tickit_devices/oav/db_files/EA-BL.db | 0 tickit_devices/oav/db_files/EA-FSCN.db | 0 tickit_devices/oav/db_files/EA-OAV.db | 0 tickit_devices/oav/db_files/MO-GONIO.db | 0 tickit_devices/oav/db_files/MO-IOC.db | 16 +++++++ .../oav/db_files/edge_waveforms.npy | Bin 8448 -> 0 bytes tickit_devices/oav/oav_edge_detection.py | 44 +++++++++--------- 9 files changed, 42 insertions(+), 24 deletions(-) mode change 100644 => 100755 tickit_devices/oav/db_files/DI-OAV.db mode change 100644 => 100755 tickit_devices/oav/db_files/EA-BL.db mode change 100644 => 100755 tickit_devices/oav/db_files/EA-FSCN.db mode change 100644 => 100755 tickit_devices/oav/db_files/EA-OAV.db delete mode 100644 tickit_devices/oav/db_files/MO-GONIO.db create mode 100644 tickit_devices/oav/db_files/MO-IOC.db delete mode 100644 tickit_devices/oav/db_files/edge_waveforms.npy diff --git a/s03_configs/oav.yaml b/s03_configs/oav.yaml index a6dbad20..47960c1b 100644 --- a/s03_configs/oav.yaml +++ b/s03_configs/oav.yaml @@ -1,3 +1,7 @@ +- tickit_devices.oav.oav_edge_detection.OAV_MO_IOC: + name: oav_mo_ioc + inputs: {} + port: 25566 - tickit_devices.oav.oav_edge_detection.OAV_DI_OAV: name: oav_di_oav inputs: {} @@ -14,8 +18,6 @@ name: oav_ea_oav inputs: {} port: 25562 - - - tickit_devices.oav.oav_edge_detection.OAV_EA_BL: name: oav_ea_bl inputs: {} diff --git a/tickit_devices/oav/db_files/DI-OAV.db b/tickit_devices/oav/db_files/DI-OAV.db old mode 100644 new mode 100755 diff --git a/tickit_devices/oav/db_files/EA-BL.db b/tickit_devices/oav/db_files/EA-BL.db old mode 100644 new mode 100755 diff --git a/tickit_devices/oav/db_files/EA-FSCN.db b/tickit_devices/oav/db_files/EA-FSCN.db old mode 100644 new mode 100755 diff --git a/tickit_devices/oav/db_files/EA-OAV.db b/tickit_devices/oav/db_files/EA-OAV.db old mode 100644 new mode 100755 diff --git a/tickit_devices/oav/db_files/MO-GONIO.db b/tickit_devices/oav/db_files/MO-GONIO.db deleted file mode 100644 index e69de29b..00000000 diff --git a/tickit_devices/oav/db_files/MO-IOC.db b/tickit_devices/oav/db_files/MO-IOC.db new file mode 100644 index 00000000..fbe1cea0 --- /dev/null +++ b/tickit_devices/oav/db_files/MO-IOC.db @@ -0,0 +1,16 @@ +record(waveform, "S03SIM-MO-SGON-01:X") +{ + field(DTYP, "asynOctetWrite") +} +record(waveform, "S03SIM-MO-SGON-01:X") +{ + field(DTYP, "asynOctetWrite") +} +record(waveform, "S03SIM-MO-SGON-01:X") +{ + field(DTYP, "asynOctetWrite") +} +record(waveform, "S03SIM-MO-SGON-01:OMEGA") +{ + field(DTYP, "asynOctetWrite") +} \ No newline at end of file diff --git a/tickit_devices/oav/db_files/edge_waveforms.npy b/tickit_devices/oav/db_files/edge_waveforms.npy deleted file mode 100644 index 224ecaea7931bdcdc627e45ef66272bd00e3e2b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8448 zcmeI$$8Qr+5WwLzozTUFqYp?1$p=6_A62G_j|Y`RuV4unudc)?0E` z_}+!o!dj?_TsK;&N41E()sp9IRUlVw{3^Ca53=K9>F{9G*~ zUv6}eixnZAtgV%-%dv|4|AstEo-f~T3ga;jV=)G!F$yD{5yaunFrrn*S`2lD5Y=Gv zLB>Gx0Y-mv(a(sH2hMNOU(QdW_~Cpfif{Ppd?9|uCw#;QyvIAd#T&e?B00aB^_4FF{|CD7FW&**0p9`N0p9`N0pEe>9nkq)XK6b->)fod zyZKq_#pdUp=4737D;0HCmS|^JJHOgl*XDM9)>+m@nQN7uZzb0mw=bg3)iTSbB+^F;3Q7rG|o6@iRW-07jO}ma2Z!{)wxEz?%W`X zo5n42aT|A>yTp6Aj|X^&N5*4v@uY~S)WV)oiz0kqE!I)qs}_5n)1zv6!P) diff --git a/tickit_devices/oav/oav_edge_detection.py b/tickit_devices/oav/oav_edge_detection.py index 6e6c1f0d..81366a7f 100644 --- a/tickit_devices/oav/oav_edge_detection.py +++ b/tickit_devices/oav/oav_edge_detection.py @@ -1,6 +1,5 @@ from dataclasses import dataclass -import numpy as np from tickit.adapters.composed import ComposedAdapter from tickit.adapters.epicsadapter import EpicsAdapter from tickit.adapters.interpreters.command import CommandInterpreter @@ -82,7 +81,6 @@ def on_db_load(self) -> None: class OAV_DI_OAV(ComponentConfig): """To hold DI-OAV PVs.""" - waveforms_file: str = "tickit_devices/oav/db_files/edge_waveforms.npy" host: str = "localhost" port: int = 25565 format: ByteFormat = ByteFormat(b"%b\r\n") @@ -90,9 +88,6 @@ class OAV_DI_OAV(ComponentConfig): ioc_name: str = "S03SIM-DI-OAV-01" def __call__(self) -> Component: # noqa: D102 - with open(self.waveforms_file, "rb") as f: - self.initial_edgeTop = np.load(f) - self.initial_edgeBottom = np.load(f) return DeviceSimulation( name=self.name, device=OAVDevice(), @@ -107,7 +102,6 @@ def __call__(self) -> Component: # noqa: D102 class OAV_DI_IOC(ComponentConfig): """To hold DI-IOC PVs.""" - waveforms_file: str = "tickit_devices/oav/db_files/edge_waveforms.npy" host: str = "localhost" port: int = 25565 format: ByteFormat = ByteFormat(b"%b\r\n") @@ -115,9 +109,6 @@ class OAV_DI_IOC(ComponentConfig): ioc_name: str = "S03SIM-DI-IOC-01" def __call__(self) -> Component: # noqa: D102 - with open(self.waveforms_file, "rb") as f: - self.initial_edgeTop = np.load(f) - self.initial_edgeBottom = np.load(f) return DeviceSimulation( name=self.name, device=OAVDevice(), @@ -132,7 +123,6 @@ def __call__(self) -> Component: # noqa: D102 class OAV_EA_FSCN(ComponentConfig): """To hold EA-FSCN PVs.""" - waveforms_file: str = "tickit_devices/oav/db_files/edge_waveforms.npy" host: str = "localhost" port: int = 25565 format: ByteFormat = ByteFormat(b"%b\r\n") @@ -140,9 +130,6 @@ class OAV_EA_FSCN(ComponentConfig): ioc_name: str = "S03SIM-EA-FSCN-01" def __call__(self) -> Component: # noqa: D102 - with open(self.waveforms_file, "rb") as f: - self.initial_edgeTop = np.load(f) - self.initial_edgeBottom = np.load(f) return DeviceSimulation( name=self.name, device=OAVDevice(), @@ -157,7 +144,6 @@ def __call__(self) -> Component: # noqa: D102 class OAV_EA_OAV(ComponentConfig): """To hold EA-OAV PVs.""" - waveforms_file: str = "tickit_devices/oav/db_files/edge_waveforms.npy" host: str = "localhost" port: int = 25565 format: ByteFormat = ByteFormat(b"%b\r\n") @@ -165,9 +151,6 @@ class OAV_EA_OAV(ComponentConfig): ioc_name: str = "S03SIM-EA-OAV-01" def __call__(self) -> Component: # noqa: D102 - with open(self.waveforms_file, "rb") as f: - self.initial_edgeTop = np.load(f) - self.initial_edgeBottom = np.load(f) return DeviceSimulation( name=self.name, device=OAVDevice(), @@ -180,9 +163,8 @@ def __call__(self) -> Component: # noqa: D102 @dataclass class OAV_EA_BL(ComponentConfig): - """To hold EA-OAV PVs.""" + """To hold EA-BL PVs.""" - waveforms_file: str = "tickit_devices/oav/db_files/edge_waveforms.npy" host: str = "localhost" port: int = 25565 format: ByteFormat = ByteFormat(b"%b\r\n") @@ -190,9 +172,27 @@ class OAV_EA_BL(ComponentConfig): ioc_name: str = "S03SIM-EA-BL-01" def __call__(self) -> Component: # noqa: D102 - with open(self.waveforms_file, "rb") as f: - self.initial_edgeTop = np.load(f) - self.initial_edgeBottom = np.load(f) + return DeviceSimulation( + name=self.name, + device=OAVDevice(), + adapters=[ + OAVTCPAdapter(TcpServer(self.host, self.port, self.format)), + OAVEpicsAdapter(self.db_file, self.ioc_name), + ], + ) + + +@dataclass +class OAV_MO_IOC(ComponentConfig): + """To hold MO-IOC PVs.""" + + host: str = "localhost" + port: int = 25565 + format: ByteFormat = ByteFormat(b"%b\r\n") + db_file: str = "tickit_devices/oav/db_files/MO-IOC.db" + ioc_name: str = "S03SIM-MO-IOC-01" + + def __call__(self) -> Component: # noqa: D102 return DeviceSimulation( name=self.name, device=OAVDevice(), From 5fe9143e6dec91b0ba49cd588193b8940ec44db4 Mon Sep 17 00:00:00 2001 From: Eva Lott Date: Thu, 24 Nov 2022 11:32:27 +0000 Subject: [PATCH 11/16] #26 Replaced Pipfile.lock so CI works --- Pipfile.lock | 1315 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 790 insertions(+), 525 deletions(-) diff --git a/Pipfile.lock b/Pipfile.lock index f7ce05f4..f8851ffa 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -16,44 +16,122 @@ "default": { "aiohttp": { "hashes": [ - "sha256:173267050501e1537293df06723bc5e719990889e2820ba3932969983892e960", - "sha256:438f1f1555c02c50894604d94944cff188fe138b46467b7fa99fdceb51ab5842", - "sha256:90bed250d1435aef33a1f8c439c5056d5d25a44fe6caf33fcafafed805bad4dc", - "sha256:93c3b14747413f38f094a60e98f55e73831f0c9a23ae7faa3dc97d8963e13021", - "sha256:a6e70a38d883185b1921d8122759661c39ade54949770394412a9e713fec6fa7", - "sha256:b5036133c1ba77ed5a70208d2a021a90b76fdf8bf523ae33dae46d4f4380d86f", - "sha256:c138451a82cdbf65cddf952941d5c7a1a2cac8ce3bc618dee8d889e5251ec7a5", - "sha256:c94770383e49f9cc5912b926364ad022a6c8a5dbf5498933ca3a5713c6daf738", - "sha256:ea26536ae06df6dac021303a0df72c79e55512070e6a304ba93ad468a3a754dc" + "sha256:01d7bdb774a9acc838e6b8f1d114f45303841b89b95984cbb7d80ea41172a9e3", + "sha256:03a6d5349c9ee8f79ab3ff3694d6ce1cfc3ced1c9d36200cb8f08ba06bd3b782", + "sha256:04d48b8ce6ab3cf2097b1855e1505181bdd05586ca275f2505514a6e274e8e75", + "sha256:0770e2806a30e744b4e21c9d73b7bee18a1cfa3c47991ee2e5a65b887c49d5cf", + "sha256:07b05cd3305e8a73112103c834e91cd27ce5b4bd07850c4b4dbd1877d3f45be7", + "sha256:086f92daf51a032d062ec5f58af5ca6a44d082c35299c96376a41cbb33034675", + "sha256:099ebd2c37ac74cce10a3527d2b49af80243e2a4fa39e7bce41617fbc35fa3c1", + "sha256:0c7ebbbde809ff4e970824b2b6cb7e4222be6b95a296e46c03cf050878fc1785", + "sha256:102e487eeb82afac440581e5d7f8f44560b36cf0bdd11abc51a46c1cd88914d4", + "sha256:11691cf4dc5b94236ccc609b70fec991234e7ef8d4c02dd0c9668d1e486f5abf", + "sha256:11a67c0d562e07067c4e86bffc1553f2cf5b664d6111c894671b2b8712f3aba5", + "sha256:12de6add4038df8f72fac606dff775791a60f113a725c960f2bab01d8b8e6b15", + "sha256:13487abd2f761d4be7c8ff9080de2671e53fff69711d46de703c310c4c9317ca", + "sha256:15b09b06dae900777833fe7fc4b4aa426556ce95847a3e8d7548e2d19e34edb8", + "sha256:1c182cb873bc91b411e184dab7a2b664d4fea2743df0e4d57402f7f3fa644bac", + "sha256:1ed0b6477896559f17b9eaeb6d38e07f7f9ffe40b9f0f9627ae8b9926ae260a8", + "sha256:28d490af82bc6b7ce53ff31337a18a10498303fe66f701ab65ef27e143c3b0ef", + "sha256:2e5d962cf7e1d426aa0e528a7e198658cdc8aa4fe87f781d039ad75dcd52c516", + "sha256:2ed076098b171573161eb146afcb9129b5ff63308960aeca4b676d9d3c35e700", + "sha256:2f2f69dca064926e79997f45b2f34e202b320fd3782f17a91941f7eb85502ee2", + "sha256:31560d268ff62143e92423ef183680b9829b1b482c011713ae941997921eebc8", + "sha256:31d1e1c0dbf19ebccbfd62eff461518dcb1e307b195e93bba60c965a4dcf1ba0", + "sha256:37951ad2f4a6df6506750a23f7cbabad24c73c65f23f72e95897bb2cecbae676", + "sha256:3af642b43ce56c24d063325dd2cf20ee012d2b9ba4c3c008755a301aaea720ad", + "sha256:44db35a9e15d6fe5c40d74952e803b1d96e964f683b5a78c3cc64eb177878155", + "sha256:473d93d4450880fe278696549f2e7aed8cd23708c3c1997981464475f32137db", + "sha256:477c3ea0ba410b2b56b7efb072c36fa91b1e6fc331761798fa3f28bb224830dd", + "sha256:4a4a4e30bf1edcad13fb0804300557aedd07a92cabc74382fdd0ba6ca2661091", + "sha256:4aed991a28ea3ce320dc8ce655875e1e00a11bdd29fe9444dd4f88c30d558602", + "sha256:51467000f3647d519272392f484126aa716f747859794ac9924a7aafa86cd411", + "sha256:55c3d1072704d27401c92339144d199d9de7b52627f724a949fc7d5fc56d8b93", + "sha256:589c72667a5febd36f1315aa6e5f56dd4aa4862df295cb51c769d16142ddd7cd", + "sha256:5bfde62d1d2641a1f5173b8c8c2d96ceb4854f54a44c23102e2ccc7e02f003ec", + "sha256:5c23b1ad869653bc818e972b7a3a79852d0e494e9ab7e1a701a3decc49c20d51", + "sha256:61bfc23df345d8c9716d03717c2ed5e27374e0fe6f659ea64edcd27b4b044cf7", + "sha256:6ae828d3a003f03ae31915c31fa684b9890ea44c9c989056fea96e3d12a9fa17", + "sha256:6c7cefb4b0640703eb1069835c02486669312bf2f12b48a748e0a7756d0de33d", + "sha256:6d69f36d445c45cda7b3b26afef2fc34ef5ac0cdc75584a87ef307ee3c8c6d00", + "sha256:6f0d5f33feb5f69ddd57a4a4bd3d56c719a141080b445cbf18f238973c5c9923", + "sha256:6f8b01295e26c68b3a1b90efb7a89029110d3a4139270b24fda961893216c440", + "sha256:713ac174a629d39b7c6a3aa757b337599798da4c1157114a314e4e391cd28e32", + "sha256:718626a174e7e467f0558954f94af117b7d4695d48eb980146016afa4b580b2e", + "sha256:7187a76598bdb895af0adbd2fb7474d7f6025d170bc0a1130242da817ce9e7d1", + "sha256:71927042ed6365a09a98a6377501af5c9f0a4d38083652bcd2281a06a5976724", + "sha256:7d08744e9bae2ca9c382581f7dce1273fe3c9bae94ff572c3626e8da5b193c6a", + "sha256:7dadf3c307b31e0e61689cbf9e06be7a867c563d5a63ce9dca578f956609abf8", + "sha256:81e3d8c34c623ca4e36c46524a3530e99c0bc95ed068fd6e9b55cb721d408fb2", + "sha256:844a9b460871ee0a0b0b68a64890dae9c415e513db0f4a7e3cab41a0f2fedf33", + "sha256:8b7ef7cbd4fec9a1e811a5de813311ed4f7ac7d93e0fda233c9b3e1428f7dd7b", + "sha256:97ef77eb6b044134c0b3a96e16abcb05ecce892965a2124c566af0fd60f717e2", + "sha256:99b5eeae8e019e7aad8af8bb314fb908dd2e028b3cdaad87ec05095394cce632", + "sha256:a25fa703a527158aaf10dafd956f7d42ac6d30ec80e9a70846253dd13e2f067b", + "sha256:a2f635ce61a89c5732537a7896b6319a8fcfa23ba09bec36e1b1ac0ab31270d2", + "sha256:a79004bb58748f31ae1cbe9fa891054baaa46fb106c2dc7af9f8e3304dc30316", + "sha256:a996d01ca39b8dfe77440f3cd600825d05841088fd6bc0144cc6c2ec14cc5f74", + "sha256:b0e20cddbd676ab8a64c774fefa0ad787cc506afd844de95da56060348021e96", + "sha256:b6613280ccedf24354406caf785db748bebbddcf31408b20c0b48cb86af76866", + "sha256:b9d00268fcb9f66fbcc7cd9fe423741d90c75ee029a1d15c09b22d23253c0a44", + "sha256:bb01ba6b0d3f6c68b89fce7305080145d4877ad3acaed424bae4d4ee75faa950", + "sha256:c2aef4703f1f2ddc6df17519885dbfa3514929149d3ff900b73f45998f2532fa", + "sha256:c34dc4958b232ef6188c4318cb7b2c2d80521c9a56c52449f8f93ab7bc2a8a1c", + "sha256:c3630c3ef435c0a7c549ba170a0633a56e92629aeed0e707fec832dee313fb7a", + "sha256:c3d6a4d0619e09dcd61021debf7059955c2004fa29f48788a3dfaf9c9901a7cd", + "sha256:d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd", + "sha256:d2f9b69293c33aaa53d923032fe227feac867f81682f002ce33ffae978f0a9a9", + "sha256:e999f2d0e12eea01caeecb17b653f3713d758f6dcc770417cf29ef08d3931421", + "sha256:ea302f34477fda3f85560a06d9ebdc7fa41e82420e892fc50b577e35fc6a50b2", + "sha256:eaba923151d9deea315be1f3e2b31cc39a6d1d2f682f942905951f4e40200922", + "sha256:ef9612483cb35171d51d9173647eed5d0069eaa2ee812793a75373447d487aa4", + "sha256:f5315a2eb0239185af1bddb1abf472d877fede3cc8d143c6cddad37678293237", + "sha256:fa0ffcace9b3aa34d205d8130f7873fcfefcb6a4dd3dd705b0dab69af6712642", + "sha256:fc5471e1a54de15ef71c1bc6ebe80d4dc681ea600e68bfd1cbce40427f0b7578" ], "markers": "python_version >= '3.6'", - "version": "==4.0.0a1" + "version": "==3.8.1" }, "aiokafka": { "hashes": [ - "sha256:16731e8aa0fc70dc35c31041599c9a5237dd5d2c1a4d04af58f30a942191a281", - "sha256:1a9b6ecb606062b3595bc5104b85b42b62621a86d179b75d708279041152f461", - "sha256:34eda0b6eb794c36f4100be772f3b120a3c00daaf342f593f32994a762aed7e8", - "sha256:383cc7d45b47676fea60dbedee747c5c08dde5c10b1be0afc6598fb21a7891b4", - "sha256:3b1f1e9ad66883ed809d737d57edfb13f1aeb9b08c6fd6b71afefce712c13dad", - "sha256:5371bd663f545ced555775e7e49f39a54b243435098a9699582bb3b32884e332", - "sha256:594d2a29875f78d56251141ff95a982c5be64844dc9ae619c285f36c57a08c6e", - "sha256:6116b68ca975caafd7efd338ffdaec63789e1c334af6174e20edc1d16d14e463", - "sha256:7d56627c3250ba2359dfa90f2c8a3ab995795e0116038905b2f8a608cd1fd606", - "sha256:7fe02a3868236d84356d5fa7c7625ed3a27e52699477c5ee8bd5dc9b5adb592f", - "sha256:a3bfe4ad7d3829a98c8391a9a28f179b47df4f66e26ea5b1c665f872b6e21809", - "sha256:a8fc41d18731d8879483aecb93ae7ebf5457f63daf4c8923ddc046792c2c3096", - "sha256:b1958277eaa702509591c0674790a8c9aced8fef7723dafae0f9aec6d2da71a5", - "sha256:b19f077e12fe23e359f7a7dca9baf8532c63f4c8149703ce4c56de372d17e26c", - "sha256:be43d7ddd700d501a6f4c59c859baa9888c2d086b69882f542951bae41234f6a", - "sha256:c96824cef1a480fd2ab4bbd9e9aa737c9191211bab5f7787ef401926d5fda95d", - "sha256:cda55f5cfb19ea7d2f55a51d320a57312f152dab3e333fa1fbfcdde7a9e25a53", - "sha256:ce23baeaacf501f619967067d2c0d4c2b2b761012f9f9c8a49593e96c7550aff", - "sha256:d801bb2f5a4ae726a433ae74a5d34e7e0d44128de53c9c7eea5cb4cdaaf80175", - "sha256:e6e78206e5d031e6644d3a46153a146d2d2afff4cf9da9a81edb9f8714114b62", - "sha256:ebbb258840f134bad0e6ca8681a87cd292a1f4ed7253a821c16b4e9f2610a04a" - ], - "version": "==0.7.2" + "sha256:02156dee5156a0c5283d45df0f0e8aa516ec7f3d966d7dfeb35f8ada7c8f8557", + "sha256:02f67258a78e5d9d17470816ea879a653c5efecc0c6686e18d792fbd38e1f70c", + "sha256:035d1fb4cb22273bb0a47f31040fabfd9b248f8026dd306dd50e7e69f005a71d", + "sha256:061799f1b8b005f950012a11948ff8a6ab48114eac91341acd8feec5430f0f31", + "sha256:09cef9cf579193b497d3c65644b71ba1523660b7677805d0efea6c3206e4e643", + "sha256:120d3c477e7e9a53dd55f1a16b9c67e8a51cdc38e5e46fc25aae7d20f78519f2", + "sha256:2294ba68ff87fdf6cf70a5603afb4020c4fc7a39053ccd8e6abdf0aa34ba1ca3", + "sha256:2f1a2fcb5f0643527d77446437d27ed93ae94844c1b324e904a813acce675db8", + "sha256:45704e5a8c81e4db6333ab6315effc1b83feec1dfc2fc3a28e7c7600b0d80a23", + "sha256:47cda205e8fe16edf126c362a59071d0a4b74dd07bee6f070b26e5d2580cc37b", + "sha256:49517e2309826c27eaff940384e90773d89c69da023907663cda7853a00fb9ee", + "sha256:4c463265252236b7759920998862b56bad3d6eedfdfd3fce0774ad99bb2c4877", + "sha256:4cb2544ca8d5d5a4055c57fbb6c4ecfc82e6f3b670485c291b256c90d506acf3", + "sha256:567a3b856639bff36b8c74a92dfecd64ace8d07d755bb3ee6d5332273d2a8c6e", + "sha256:5fac6f1168c15b08f3fcb951347343a78d8c130292127d8a4e23466a5d2510f7", + "sha256:6e7d031b8bc08f9d9c4149c6afaedb650082309f01a3b79f0619814cc299fc4d", + "sha256:8b5e71d6da8edf0f592080488b198af42fbe9778de077762e4452d574e694efa", + "sha256:8ebb032a05a6696b25abbe5db677890adca9a3284d13e1975842009c1d7678dd", + "sha256:90a4cb54ae23ff55758a9ce8f3ba1ec67c6f2328f9197c3bacc61a24f812cf04", + "sha256:90a91155aeb28c872b74ecb3c9f671253db10cf23dc3af858bd9ed1630c0d1ae", + "sha256:95edb38631bf5dbb8cd65fecd8620e11a15534cd6dd22e0dc45488b4266b5452", + "sha256:b19d00b16637d02cfcee3d5cfdbcfd497702c09ae1f63e194830798cd223f910", + "sha256:b5a6fb1cfd77eac4b397ef5af3765d1d881c86b157137b12ca4f12aef1db433c", + "sha256:b7390a9d9d03a2a3dbee0f8fa6735b008408e0f561a279b3df13e9758ab6d67f", + "sha256:c70ed4b09e01d774d1821db30f6fbc6475a41224d0dc1488d018ef97610dc3da", + "sha256:dfd8d58f7418aabc07f1e8c1b904f478bf955919b743d4d44607dbf18a2c54b2", + "sha256:e8276baed94281ef4548f19e039b9b4a8af79afee324bd259d8898638ca15da6", + "sha256:edcf1cdcf9246edd5c4c1b649609a7ac5bfe4276da586aede470b73f9d00b809", + "sha256:f3a2138649ca2427a91dfc0927ddd445a9a6aaf9a9b0972d683cb230923f821f" + ], + "version": "==0.7.1" + }, + "aiosignal": { + "hashes": [ + "sha256:26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a", + "sha256:78ed67db6c7b7ced4f98e495e572106d5c432a93e1ddd1bf475e1dc05f5b7df2" + ], + "version": "==1.2.0" }, "aiozmq": { "hashes": [ @@ -72,11 +150,11 @@ }, "async-timeout": { "hashes": [ - "sha256:0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f", - "sha256:4291ca197d287d274d0b6cb5d6f8f8f82d434ed288f962539ff18cc9012f9ea3" + "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15", + "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c" ], "markers": "python_full_version >= '3.5.3'", - "version": "==3.0.1" + "version": "==4.0.2" }, "attrs": { "hashes": [ @@ -86,12 +164,12 @@ "markers": "python_version >= '3.5'", "version": "==22.1.0" }, - "chardet": { + "charset-normalizer": { "hashes": [ - "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", - "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" + "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", + "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" ], - "version": "==3.0.4" + "version": "==2.1.1" }, "click": { "hashes": [ @@ -138,73 +216,116 @@ "epicsdbbuilder": { "hashes": [ "sha256:32321c0eff5209a1604464a19e30a73429f597efe4df69f1f859758c3a14ebc7", + "sha256:40e01ca308b667d17b31dc1907816df20c31b389415268d9ec6e2be6c3b8f283", "sha256:698ad5882de4a626a82086139ff95204e8de72e63d03d9f22d4418da3a6c8566", "sha256:ae8dc724c72478d2c6a68b08145d027a50af98702d17e4692f2d73f145818e74" ], "version": "==1.5" }, + "frozenlist": { + "hashes": [ + "sha256:006d3595e7d4108a12025ddf415ae0f6c9e736e726a5db0183326fd191b14c5e", + "sha256:01a73627448b1f2145bddb6e6c2259988bb8aee0fb361776ff8604b99616cd08", + "sha256:03a7dd1bfce30216a3f51a84e6dd0e4a573d23ca50f0346634916ff105ba6e6b", + "sha256:0437fe763fb5d4adad1756050cbf855bbb2bf0d9385c7bb13d7a10b0dd550486", + "sha256:04cb491c4b1c051734d41ea2552fde292f5f3a9c911363f74f39c23659c4af78", + "sha256:0c36e78b9509e97042ef869c0e1e6ef6429e55817c12d78245eb915e1cca7468", + "sha256:25af28b560e0c76fa41f550eacb389905633e7ac02d6eb3c09017fa1c8cdfde1", + "sha256:2fdc3cd845e5a1f71a0c3518528bfdbfe2efaf9886d6f49eacc5ee4fd9a10953", + "sha256:30530930410855c451bea83f7b272fb1c495ed9d5cc72895ac29e91279401db3", + "sha256:31977f84828b5bb856ca1eb07bf7e3a34f33a5cddce981d880240ba06639b94d", + "sha256:3c62964192a1c0c30b49f403495911298810bada64e4f03249ca35a33ca0417a", + "sha256:3f7c935c7b58b0d78c0beea0c7358e165f95f1fd8a7e98baa40d22a05b4a8141", + "sha256:40dff8962b8eba91fd3848d857203f0bd704b5f1fa2b3fc9af64901a190bba08", + "sha256:40ec383bc194accba825fbb7d0ef3dda5736ceab2375462f1d8672d9f6b68d07", + "sha256:436496321dad302b8b27ca955364a439ed1f0999311c393dccb243e451ff66aa", + "sha256:4406cfabef8f07b3b3af0f50f70938ec06d9f0fc26cbdeaab431cbc3ca3caeaa", + "sha256:45334234ec30fc4ea677f43171b18a27505bfb2dba9aca4398a62692c0ea8868", + "sha256:47be22dc27ed933d55ee55845d34a3e4e9f6fee93039e7f8ebadb0c2f60d403f", + "sha256:4a44ebbf601d7bac77976d429e9bdb5a4614f9f4027777f9e54fd765196e9d3b", + "sha256:4eda49bea3602812518765810af732229b4291d2695ed24a0a20e098c45a707b", + "sha256:57f4d3f03a18facacb2a6bcd21bccd011e3b75d463dc49f838fd699d074fabd1", + "sha256:603b9091bd70fae7be28bdb8aa5c9990f4241aa33abb673390a7f7329296695f", + "sha256:65bc6e2fece04e2145ab6e3c47428d1bbc05aede61ae365b2c1bddd94906e478", + "sha256:691ddf6dc50480ce49f68441f1d16a4c3325887453837036e0fb94736eae1e58", + "sha256:6983a31698490825171be44ffbafeaa930ddf590d3f051e397143a5045513b01", + "sha256:6a202458d1298ced3768f5a7d44301e7c86defac162ace0ab7434c2e961166e8", + "sha256:6eb275c6385dd72594758cbe96c07cdb9bd6becf84235f4a594bdf21e3596c9d", + "sha256:754728d65f1acc61e0f4df784456106e35afb7bf39cfe37227ab00436fb38676", + "sha256:768efd082074bb203c934e83a61654ed4931ef02412c2fbdecea0cff7ecd0274", + "sha256:772965f773757a6026dea111a15e6e2678fbd6216180f82a48a40b27de1ee2ab", + "sha256:871d42623ae15eb0b0e9df65baeee6976b2e161d0ba93155411d58ff27483ad8", + "sha256:88aafd445a233dbbf8a65a62bc3249a0acd0d81ab18f6feb461cc5a938610d24", + "sha256:8c905a5186d77111f02144fab5b849ab524f1e876a1e75205cd1386a9be4b00a", + "sha256:8cf829bd2e2956066dd4de43fd8ec881d87842a06708c035b37ef632930505a2", + "sha256:92e650bd09b5dda929523b9f8e7f99b24deac61240ecc1a32aeba487afcd970f", + "sha256:93641a51f89473837333b2f8100f3f89795295b858cd4c7d4a1f18e299dc0a4f", + "sha256:94c7a8a9fc9383b52c410a2ec952521906d355d18fccc927fca52ab575ee8b93", + "sha256:9f892d6a94ec5c7b785e548e42722e6f3a52f5f32a8461e82ac3e67a3bd073f1", + "sha256:acb267b09a509c1df5a4ca04140da96016f40d2ed183cdc356d237286c971b51", + "sha256:adac9700675cf99e3615eb6a0eb5e9f5a4143c7d42c05cea2e7f71c27a3d0846", + "sha256:aff388be97ef2677ae185e72dc500d19ecaf31b698986800d3fc4f399a5e30a5", + "sha256:b5009062d78a8c6890d50b4e53b0ddda31841b3935c1937e2ed8c1bda1c7fb9d", + "sha256:b684c68077b84522b5c7eafc1dc735bfa5b341fb011d5552ebe0968e22ed641c", + "sha256:b9e3e9e365991f8cc5f5edc1fd65b58b41d0514a6a7ad95ef5c7f34eb49b3d3e", + "sha256:bd89acd1b8bb4f31b47072615d72e7f53a948d302b7c1d1455e42622de180eae", + "sha256:bde99812f237f79eaf3f04ebffd74f6718bbd216101b35ac7955c2d47c17da02", + "sha256:c6c321dd013e8fc20735b92cb4892c115f5cdb82c817b1e5b07f6b95d952b2f0", + "sha256:ce6f2ba0edb7b0c1d8976565298ad2deba6f8064d2bebb6ffce2ca896eb35b0b", + "sha256:d2257aaba9660f78c7b1d8fea963b68f3feffb1a9d5d05a18401ca9eb3e8d0a3", + "sha256:d26b650b71fdc88065b7a21f8ace70175bcf3b5bdba5ea22df4bfd893e795a3b", + "sha256:d6d32ff213aef0fd0bcf803bffe15cfa2d4fde237d1d4838e62aec242a8362fa", + "sha256:e1e26ac0a253a2907d654a37e390904426d5ae5483150ce3adedb35c8c06614a", + "sha256:e30b2f9683812eb30cf3f0a8e9f79f8d590a7999f731cf39f9105a7c4a39489d", + "sha256:e84cb61b0ac40a0c3e0e8b79c575161c5300d1d89e13c0e02f76193982f066ed", + "sha256:e982878792c971cbd60ee510c4ee5bf089a8246226dea1f2138aa0bb67aff148", + "sha256:f20baa05eaa2bcd5404c445ec51aed1c268d62600362dc6cfe04fae34a424bd9", + "sha256:f7353ba3367473d1d616ee727945f439e027f0bb16ac1a750219a8344d1d5d3c", + "sha256:f96293d6f982c58ebebb428c50163d010c2f05de0cde99fd681bfdc18d4b2dc2", + "sha256:ff9310f05b9d9c5c4dd472983dc956901ee6cb2c3ec1ab116ecdde25f3ce4951" + ], + "version": "==1.3.0" + }, "idna": { "hashes": [ - "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff", - "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d" + "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", + "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" ], "markers": "python_version >= '3.5'", - "version": "==3.3" + "version": "==3.4" }, "immutables": { "hashes": [ - "sha256:03696193b276db3a9b619629685198886ddd7c4098c544bd8d0f87532c74120b", - "sha256:13159cedb698fdd243d9f2a7469c1628e075a180fc02f865dd98322b92a14aaf", - "sha256:1330f96eb6a3a11f5d02f30b2c6393ef30d01a79f7144d63d2a3e6ff05cb99db", - "sha256:1338aad6fd69f11442adcbb3402a028c90f6e945682ddb8aba462a3827f2d427", - "sha256:1acbbc333f1643fd1ed21bcc3e09aad2ef6648478a0cae76a2ca5823764a7d3b", - "sha256:1d6821d7718cf9f4a7b1d9e765fc22a9d1ae0fad3fabd8724b4e614d2a6e0b54", - "sha256:210efea163a704597cfdb2d30713d3c0963c30f0d997539c9ab5da40e3d6a886", - "sha256:29a5886845cd0ca8263b721337750a895e28feee2f16694a526977a791909db5", - "sha256:2aa5292630b08c874972931bac06ee381cb6fb7382d7be1856234d7bd4a8e676", - "sha256:2b6c820c9bb5aac62b76de703384bb8bb706108be90c3def4a7f047f185a92bb", - "sha256:45bd862a5dfb952eaff4a9c2448712c5a550dd956575e23cbfc512010fb06c74", - "sha256:525fe9001b5a96c325eec41677efaeb8c3610776e834ce7f31fbe3d33cc05252", - "sha256:5336c7974084cce62f7e29aaff81a3c3f75e0fd0a23a2faeb986ae0ea08d8cf4", - "sha256:535616ad7ca1174a27ade637192c970bfedb0b0e0467e69ce415b40d7cf7ba0c", - "sha256:53fccddd28cc3214aa48ca564702311c07eac069190dd890e097802c5d69b33a", - "sha256:54577e46c5332d7390212040c084335b7d667504847ed2788428d44f20e595ce", - "sha256:5caf9c670e6851e7f310716c7dcdf8705236d13056eda1fab3deaad5d7198468", - "sha256:5d43b16b6adbe1327c6688e14b125cb3b940e748790b305de96c8d55668ac25f", - "sha256:5f32b5933393e4cc204d8f9e7d9f503ec052e30f612090be0de0dd31b1464b35", - "sha256:69352b45a115808219feaf0bb7a551e9aa76c72684db93cd03f11474165f4569", - "sha256:6baf4dc11ba0e9f41a6cbde7ecaa7af9cb482559b92ba3254e3e37a518b1970e", - "sha256:6e979a9225507e3cd830ea73ac68b69fe82f495313a891485800daa5b6567e05", - "sha256:6ee2d6f8816fce53fa89b6a1ba2d4a96b344bf584d6ed0b10a871b17fff46e49", - "sha256:734ec4467dd15f9135ca5ecccc91e796a67d27c227e81554f9e06b1bb3b28d6d", - "sha256:74456c579cfd53f883cdcc0700e3871648a3316767efc1adf8c723ad3d8addec", - "sha256:77bdc96dc24e32839557cde3785f8039a369c95529ff9179044b81d0ba4bd02c", - "sha256:798b4d6c388116effa7523591e4e39865292e4fa74e169b05a0759a16f604ce1", - "sha256:853d63f4a07b2ea2131ba0831aeec11f6a6ee5e290e8f175bf56842762d7412e", - "sha256:8b650d779a46441dccd02e7ee8326dbd0dec633c6bd75e9fe13373a6b19570dd", - "sha256:90da9dea0a1c0a907d511f124cd87fe090c0e30a951c3fe68bc9782ae4f2c77f", - "sha256:989606e440492736112b471dcd80586e3d4a63bc6f8ff4f9d1d612e0f96cb683", - "sha256:98f67bd36532582751dcc9021fdb60e7efc82e5717ae5927b84d0b86ea58fe12", - "sha256:9949f704b80d0e601587d0a3b1a0cc6ff5d49528f6dfc1c8a1476b2137bb925e", - "sha256:9a86dcca4bb406f80e7a18c233aec0e76a7530c456e24aa1e19a708a34f2aac1", - "sha256:9d72527fde329e3b566b67c954237be52b07d6e84ff23dcc1e94499755cacff6", - "sha256:9f17407491164beb689d426f7985f79ae9dfa69868653cfbdb95645f6bf05cb0", - "sha256:a29e3aa0fe05fb2cc6b31039f448aa6206d7f0cdb660c98aa9be6d12070d6840", - "sha256:a3bad4d43009fa61ea40d887e6fa89ae7c4e62dff5e4a878d60b76cf245720bb", - "sha256:ac9e05f846392e983fb59f74ed2334031b366251d16d24122e4c85f70fb6e2da", - "sha256:b3621256bc8058a7973f736b9e2c940e17133476265a0a83b8df8c0f446ca32f", - "sha256:bc830a689a55e404f0e23d7d69e01c218fa8a0be54a6ca5df45b6fbfeeac648a", - "sha256:d11da4946e19f3b24a873b2ba2891cc226a89bb398561c62dfb966a9b6501a4a", - "sha256:d841dfa15b932bdad27f5149bce86b32d0dd8a29679ed61405677317b6893447", - "sha256:de1a091ab89b7ba50501a915a0fbdceb52b079c752f4f7c76d2060237774a714", - "sha256:e04b61ddffd4ccb4d7ab823b2e55dbb4ad47c37697e311fae4b98b3c023ab194", - "sha256:e4c2110173649acf67bd763bbd2a9c3a863a1d20fd7f3db3493ce4e0fb04fae5", - "sha256:f6edb73619aa0a5fe4a77d97dd9d39bfeef61a5afe71aa5bdceccf59b933999e", - "sha256:fade8ccf7afbc1e7ea353159fa90cc04395f2f4f57658160d7a02f6aa60c4e77", - "sha256:ffced8535cc673fcfb411d28ba5744689a6978fa596c803725a76f43c1bda911" + "sha256:0020aaa4010b136056c20a46ce53204e1407a9e4464246cb2cf95b90808d9161", + "sha256:064001638ab5d36f6aa05b6101446f4a5793fb71e522bc81b8fc65a1894266ff", + "sha256:0a396314b9024fa55bf83a27813fd76cf9f27dce51f53b0f19b51de035146251", + "sha256:19bdede174847c2ef1292df0f23868ab3918b560febb09fcac6eec621bd4812b", + "sha256:1de393f1b188740ca7b38f946f2bbc7edf3910d2048f03bbb8d01f17a038d67c", + "sha256:2505d93395d3f8ae4223e21465994c3bc6952015a38dc4f03cb3e07a2b8d8325", + "sha256:298a301f85f307b4c056a0825eb30f060e64d73605e783289f3df37dd762bab8", + "sha256:29c9ed003eacb92e630ef200e31f47236c2139b39476894f7963b32bd39bafa3", + "sha256:4a2a71678348fb95b13ca108d447f559a754c41b47bd1e7e4fb23974e735682d", + "sha256:50793a44ba0d228ed8cad4d0925e00dfd62ea32f44ddee8854f8066447272d05", + "sha256:511c93d8b1bbbf103ff3f1f120c5a68a9866ce03dea6ac406537f93ca9b19139", + "sha256:734c269e82e5f307fb6e17945953b67659d1731e65309787b8f7ba267d1468f2", + "sha256:798b095381eb42cf40db6876339e7bed84093e5868018a9e73d8e1f7ab4bb21e", + "sha256:799621dcdcdcbb2516546a40123b87bf88de75fe7459f7bd8144f079ace6ec3e", + "sha256:7a58825ff2254e2612c5a932174398a4ea8fbddd8a64a02c880cc32ee28b8820", + "sha256:7bcf52aeb983bd803b7c6106eae1b2d9a0c7ab1241bc6b45e2174ba2b7283031", + "sha256:9ccf4c0e3e2e3237012b516c74c49de8872ccdf9129739f7a0b9d7444a8c4862", + "sha256:a307eb0984eb43e815dcacea3ac50c11d00a936ecf694c46991cd5a23bcb0ec0", + "sha256:a454d5d3fee4b7cc627345791eb2ca4b27fa3bbb062ccf362ecaaa51679a07ed", + "sha256:aa7bf572ae1e006104c584be70dc634849cf0dc62f42f4ee194774f97e7fd17d", + "sha256:acbfa79d44228d96296279068441f980dc63dbed52522d9227ff9f4d96c6627e", + "sha256:b651b61c1af6cda2ee201450f2ffe048a5959bc88e43e6c312f4c93e69c9e929", + "sha256:b779617f5b94486bfd0f22162cd72eb5f2beb0214a14b75fdafb7b2c908ed0cb", + "sha256:d59beef203a3765db72b1d0943547425c8318ecf7d64c451fd1e130b653c2fbb", + "sha256:d67e86859598eed0d926562da33325dac7767b7b1eff84e232c22abea19f4360", + "sha256:edd9f67671555af1eb99ad3c7550238487dd7ac0ac5205b40204ed61c9a922ac", + "sha256:fcf678a3074613119385a02a07c469ec5130559f5ea843c85a0840c80b5b71c6" ], "markers": "python_version >= '3.6'", - "version": "==0.18" + "version": "==0.16" }, "kafka-python": { "hashes": [ @@ -215,57 +336,87 @@ }, "multidict": { "hashes": [ - "sha256:1ece5a3369835c20ed57adadc663400b5525904e53bae59ec854a5d36b39b21a", - "sha256:275ca32383bc5d1894b6975bb4ca6a7ff16ab76fa622967625baeebcf8079000", - "sha256:3750f2205b800aac4bb03b5ae48025a64e474d2c6cc79547988ba1d4122a09e2", - "sha256:4538273208e7294b2659b1602490f4ed3ab1c8cf9dbdd817e0e9db8e64be2507", - "sha256:5141c13374e6b25fe6bf092052ab55c0c03d21bd66c94a0e3ae371d3e4d865a5", - "sha256:51a4d210404ac61d32dada00a50ea7ba412e6ea945bbe992e4d7a595276d2ec7", - "sha256:5cf311a0f5ef80fe73e4f4c0f0998ec08f954a6ec72b746f3c179e37de1d210d", - "sha256:6513728873f4326999429a8b00fc7ceddb2509b01d5fd3f3be7881a257b8d463", - "sha256:7388d2ef3c55a8ba80da62ecfafa06a1c097c18032a501ffd4cabbc52d7f2b19", - "sha256:9456e90649005ad40558f4cf51dbb842e32807df75146c6d940b6f5abb4a78f3", - "sha256:c026fe9a05130e44157b98fea3ab12969e5b60691a276150db9eda71710cd10b", - "sha256:d14842362ed4cf63751648e7672f7174c9818459d169231d03c56e84daf90b7c", - "sha256:e0d072ae0f2a179c375f67e3da300b47e1a83293c554450b29c900e50afaae87", - "sha256:f07acae137b71af3bb548bd8da720956a3bc9f9a0b87733e0899226a2317aeb7", - "sha256:fbb77a75e529021e7c4a8d4e823d88ef4d23674a202be4f5addffc72cbb91430", - "sha256:fcfbb44c59af3f8ea984de67ec7c306f618a3ec771c2843804069917a8f2e255", - "sha256:feed85993dbdb1dbc29102f50bca65bdc68f2c0c8d352468c25b54874f23c39d" + "sha256:018132dbd8688c7a69ad89c4a3f39ea2f9f33302ebe567a879da8f4ca73f0d0a", + "sha256:051012ccee979b2b06be928a6150d237aec75dd6bf2d1eeeb190baf2b05abc93", + "sha256:05c20b68e512166fddba59a918773ba002fdd77800cad9f55b59790030bab632", + "sha256:07b42215124aedecc6083f1ce6b7e5ec5b50047afa701f3442054373a6deb656", + "sha256:0e3c84e6c67eba89c2dbcee08504ba8644ab4284863452450520dad8f1e89b79", + "sha256:0e929169f9c090dae0646a011c8b058e5e5fb391466016b39d21745b48817fd7", + "sha256:1ab820665e67373de5802acae069a6a05567ae234ddb129f31d290fc3d1aa56d", + "sha256:25b4e5f22d3a37ddf3effc0710ba692cfc792c2b9edfb9c05aefe823256e84d5", + "sha256:2e68965192c4ea61fff1b81c14ff712fc7dc15d2bd120602e4a3494ea6584224", + "sha256:2f1a132f1c88724674271d636e6b7351477c27722f2ed789f719f9e3545a3d26", + "sha256:37e5438e1c78931df5d3c0c78ae049092877e5e9c02dd1ff5abb9cf27a5914ea", + "sha256:3a041b76d13706b7fff23b9fc83117c7b8fe8d5fe9e6be45eee72b9baa75f348", + "sha256:3a4f32116f8f72ecf2a29dabfb27b23ab7cdc0ba807e8459e59a93a9be9506f6", + "sha256:46c73e09ad374a6d876c599f2328161bcd95e280f84d2060cf57991dec5cfe76", + "sha256:46dd362c2f045095c920162e9307de5ffd0a1bfbba0a6e990b344366f55a30c1", + "sha256:4b186eb7d6ae7c06eb4392411189469e6a820da81447f46c0072a41c748ab73f", + "sha256:54fd1e83a184e19c598d5e70ba508196fd0bbdd676ce159feb412a4a6664f952", + "sha256:585fd452dd7782130d112f7ddf3473ffdd521414674c33876187e101b588738a", + "sha256:5cf3443199b83ed9e955f511b5b241fd3ae004e3cb81c58ec10f4fe47c7dce37", + "sha256:6a4d5ce640e37b0efcc8441caeea8f43a06addace2335bd11151bc02d2ee31f9", + "sha256:7df80d07818b385f3129180369079bd6934cf70469f99daaebfac89dca288359", + "sha256:806068d4f86cb06af37cd65821554f98240a19ce646d3cd24e1c33587f313eb8", + "sha256:830f57206cc96ed0ccf68304141fec9481a096c4d2e2831f311bde1c404401da", + "sha256:929006d3c2d923788ba153ad0de8ed2e5ed39fdbe8e7be21e2f22ed06c6783d3", + "sha256:9436dc58c123f07b230383083855593550c4d301d2532045a17ccf6eca505f6d", + "sha256:9dd6e9b1a913d096ac95d0399bd737e00f2af1e1594a787e00f7975778c8b2bf", + "sha256:ace010325c787c378afd7f7c1ac66b26313b3344628652eacd149bdd23c68841", + "sha256:b47a43177a5e65b771b80db71e7be76c0ba23cc8aa73eeeb089ed5219cdbe27d", + "sha256:b797515be8743b771aa868f83563f789bbd4b236659ba52243b735d80b29ed93", + "sha256:b7993704f1a4b204e71debe6095150d43b2ee6150fa4f44d6d966ec356a8d61f", + "sha256:d5c65bdf4484872c4af3150aeebe101ba560dcfb34488d9a8ff8dbcd21079647", + "sha256:d81eddcb12d608cc08081fa88d046c78afb1bf8107e6feab5d43503fea74a635", + "sha256:dc862056f76443a0db4509116c5cd480fe1b6a2d45512a653f9a855cc0517456", + "sha256:ecc771ab628ea281517e24fd2c52e8f31c41e66652d07599ad8818abaad38cda", + "sha256:f200755768dc19c6f4e2b672421e0ebb3dd54c38d5a4f262b872d8cfcc9e93b5", + "sha256:f21756997ad8ef815d8ef3d34edd98804ab5ea337feedcd62fb52d22bf531281", + "sha256:fc13a9524bc18b6fb6e0dbec3533ba0496bbed167c56d0aabefd965584557d80" ], "markers": "python_version >= '3.5'", - "version": "==4.7.6" + "version": "==5.1.0" }, "numpy": { "hashes": [ - "sha256:1408c3527a74a0209c781ac82bde2182b0f0bf54dea6e6a363fe0cc4488a7ce7", - "sha256:173f28921b15d341afadf6c3898a34f20a0569e4ad5435297ba262ee8941e77b", - "sha256:1865fdf51446839ca3fffaab172461f2b781163f6f395f1aed256b1ddc253622", - "sha256:3119daed207e9410eaf57dcf9591fdc68045f60483d94956bee0bfdcba790953", - "sha256:35590b9c33c0f1c9732b3231bb6a72d1e4f77872390c47d50a615686ae7ed3fd", - "sha256:37e5ebebb0eb54c5b4a9b04e6f3018e16b8ef257d26c8945925ba8105008e645", - "sha256:37ece2bd095e9781a7156852e43d18044fd0d742934833335599c583618181b9", - "sha256:3ab67966c8d45d55a2bdf40701536af6443763907086c0a6d1232688e27e5447", - "sha256:47f10ab202fe4d8495ff484b5561c65dd59177949ca07975663f4494f7269e3e", - "sha256:55df0f7483b822855af67e38fb3a526e787adf189383b4934305565d71c4b148", - "sha256:5d732d17b8a9061540a10fda5bfeabca5785700ab5469a5e9b93aca5e2d3a5fb", - "sha256:68b69f52e6545af010b76516f5daaef6173e73353e3295c5cb9f96c35d755641", - "sha256:7e8229f3687cdadba2c4faef39204feb51ef7c1a9b669247d49a24f3e2e1617c", - "sha256:8002574a6b46ac3b5739a003b5233376aeac5163e5dcd43dd7ad062f3e186129", - "sha256:876f60de09734fbcb4e27a97c9a286b51284df1326b1ac5f1bf0ad3678236b22", - "sha256:9ce242162015b7e88092dccd0e854548c0926b75c7924a3495e02c6067aba1f5", - "sha256:a35c4e64dfca659fe4d0f1421fc0f05b8ed1ca8c46fb73d9e5a7f175f85696bb", - "sha256:aeba539285dcf0a1ba755945865ec61240ede5432df41d6e29fab305f4384db2", - "sha256:b15c3f1ed08df4980e02cc79ee058b788a3d0bef2fb3c9ca90bb8cbd5b8a3a04", - "sha256:c2f91f88230042a130ceb1b496932aa717dcbd665350beb821534c5c7e15881c", - "sha256:d748ef349bfef2e1194b59da37ed5a29c19ea8d7e6342019921ba2ba4fd8b624", - "sha256:e0d7447679ae9a7124385ccf0ea990bb85bb869cef217e2ea6c844b6a6855073" + "sha256:1dbe1c91269f880e364526649a52eff93ac30035507ae980d2fed33aaee633ac", + "sha256:357768c2e4451ac241465157a3e929b265dfac85d9214074985b1786244f2ef3", + "sha256:3820724272f9913b597ccd13a467cc492a0da6b05df26ea09e78b171a0bb9da6", + "sha256:4391bd07606be175aafd267ef9bea87cf1b8210c787666ce82073b05f202add1", + "sha256:4aa48afdce4660b0076a00d80afa54e8a97cd49f457d68a4342d188a09451c1a", + "sha256:58459d3bad03343ac4b1b42ed14d571b8743dc80ccbf27444f266729df1d6f5b", + "sha256:5c3c8def4230e1b959671eb959083661b4a0d2e9af93ee339c7dada6759a9470", + "sha256:5f30427731561ce75d7048ac254dbe47a2ba576229250fb60f0fb74db96501a1", + "sha256:643843bcc1c50526b3a71cd2ee561cf0d8773f062c8cbaf9ffac9fdf573f83ab", + "sha256:67c261d6c0a9981820c3a149d255a76918278a6b03b6a036800359aba1256d46", + "sha256:67f21981ba2f9d7ba9ade60c9e8cbaa8cf8e9ae51673934480e45cf55e953673", + "sha256:6aaf96c7f8cebc220cdfc03f1d5a31952f027dda050e5a703a0d1c396075e3e7", + "sha256:7c4068a8c44014b2d55f3c3f574c376b2494ca9cc73d2f1bd692382b6dffe3db", + "sha256:7c7e5fa88d9ff656e067876e4736379cc962d185d5cd808014a8a928d529ef4e", + "sha256:7f5ae4f304257569ef3b948810816bc87c9146e8c446053539947eedeaa32786", + "sha256:82691fda7c3f77c90e62da69ae60b5ac08e87e775b09813559f8901a88266552", + "sha256:8737609c3bbdd48e380d463134a35ffad3b22dc56295eff6f79fd85bd0eeeb25", + "sha256:9f411b2c3f3d76bba0865b35a425157c5dcf54937f82bbeb3d3c180789dd66a6", + "sha256:a6be4cb0ef3b8c9250c19cc122267263093eee7edd4e3fa75395dfda8c17a8e2", + "sha256:bcb238c9c96c00d3085b264e5c1a1207672577b93fa666c3b14a45240b14123a", + "sha256:bf2ec4b75d0e9356edea834d1de42b31fe11f726a81dfb2c2112bc1eaa508fcf", + "sha256:d136337ae3cc69aa5e447e78d8e1514be8c3ec9b54264e680cf0b4bd9011574f", + "sha256:d4bf4d43077db55589ffc9009c0ba0a94fa4908b9586d6ccce2e0b164c86303c", + "sha256:d6a96eef20f639e6a97d23e57dd0c1b1069a7b4fd7027482a4c5c451cd7732f4", + "sha256:d9caa9d5e682102453d96a0ee10c7241b72859b01a941a397fd965f23b3e016b", + "sha256:dd1c8f6bd65d07d3810b90d02eba7997e32abbdf1277a481d698969e921a3be0", + "sha256:e31f0bb5928b793169b87e3d1e070f2342b22d5245c755e2b81caa29756246c3", + "sha256:ecb55251139706669fdec2ff073c98ef8e9a84473e51e716211b41aa0f18e656", + "sha256:ee5ec40fdd06d62fe5d4084bef4fd50fd4bb6bfd2bf519365f569dc470163ab0", + "sha256:f17e562de9edf691a42ddb1eb4a5541c20dd3f9e65b09ded2beb0799c0cf29bb", + "sha256:fdffbfb6832cd0b300995a2b08b8f6fa9f6e856d562800fea9182316d99c4e8e" ], "markers": "python_version >= '3.8'", - "version": "==1.23.1" + "version": "==1.21.6" }, "pyyaml": { "hashes": [ + "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf", "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293", "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b", "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57", @@ -277,26 +428,32 @@ "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287", "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513", "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0", + "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782", "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0", "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92", "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f", "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2", "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc", + "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1", "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c", "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86", "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4", "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c", "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34", "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b", + "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d", "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c", "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb", + "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7", "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737", "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3", "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d", + "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358", "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53", "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78", "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803", "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a", + "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f", "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174", "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5" ], @@ -338,7 +495,7 @@ "sha256:f1a25a61495b6f7bb986accc5b597a3541d9bd3ef0016f50be16dbb32025b302", "sha256:fa411b1d8f371d3a49d31b0789eb6da2537dadbb2aef74a43aa99a78195c3f76" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==19.0.2" }, "setuptools-dso": { @@ -373,84 +530,54 @@ }, "tickit": { "git": "https://github.com/dls-controls/tickit.git", - "ref": "eac7366430c094c811b68bb8bce17a356844b780" + "ref": "13d1e3a973c3330231a56815663944df89894afa" }, "tickit-devices": { "editable": true, "path": "." }, - "typing-extensions": { - "hashes": [ - "sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02", - "sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6" - ], - "markers": "python_version >= '3.7'", - "version": "==4.3.0" - }, "yarl": { "hashes": [ - "sha256:076eede537ab978b605f41db79a56cad2e7efeea2aa6e0fa8f05a26c24a034fb", - "sha256:07b21e274de4c637f3e3b7104694e53260b5fc10d51fb3ec5fed1da8e0f754e3", - "sha256:0ab5a138211c1c366404d912824bdcf5545ccba5b3ff52c42c4af4cbdc2c5035", - "sha256:0c03f456522d1ec815893d85fccb5def01ffaa74c1b16ff30f8aaa03eb21e453", - "sha256:12768232751689c1a89b0376a96a32bc7633c08da45ad985d0c49ede691f5c0d", - "sha256:19cd801d6f983918a3f3a39f3a45b553c015c5aac92ccd1fac619bd74beece4a", - "sha256:1ca7e596c55bd675432b11320b4eacc62310c2145d6801a1f8e9ad160685a231", - "sha256:1e4808f996ca39a6463f45182e2af2fae55e2560be586d447ce8016f389f626f", - "sha256:205904cffd69ae972a1707a1bd3ea7cded594b1d773a0ce66714edf17833cdae", - "sha256:20df6ff4089bc86e4a66e3b1380460f864df3dd9dccaf88d6b3385d24405893b", - "sha256:21ac44b763e0eec15746a3d440f5e09ad2ecc8b5f6dcd3ea8cb4773d6d4703e3", - "sha256:29e256649f42771829974e742061c3501cc50cf16e63f91ed8d1bf98242e5507", - "sha256:2d800b9c2eaf0684c08be5f50e52bfa2aa920e7163c2ea43f4f431e829b4f0fd", - "sha256:2d93a049d29df172f48bcb09acf9226318e712ce67374f893b460b42cc1380ae", - "sha256:31a9a04ecccd6b03e2b0e12e82131f1488dea5555a13a4d32f064e22a6003cfe", - "sha256:3d1a50e461615747dd93c099f297c1994d472b0f4d2db8a64e55b1edf704ec1c", - "sha256:449c957ffc6bc2309e1fbe67ab7d2c1efca89d3f4912baeb8ead207bb3cc1cd4", - "sha256:4a88510731cd8d4befaba5fbd734a7dd914de5ab8132a5b3dde0bbd6c9476c64", - "sha256:4c322cbaa4ed78a8aac89b2174a6df398faf50e5fc12c4c191c40c59d5e28357", - "sha256:5395da939ffa959974577eff2cbfc24b004a2fb6c346918f39966a5786874e54", - "sha256:5587bba41399854703212b87071c6d8638fa6e61656385875f8c6dff92b2e461", - "sha256:56c11efb0a89700987d05597b08a1efcd78d74c52febe530126785e1b1a285f4", - "sha256:5999c4662631cb798496535afbd837a102859568adc67d75d2045e31ec3ac497", - "sha256:59ddd85a1214862ce7c7c66457f05543b6a275b70a65de366030d56159a979f0", - "sha256:6347f1a58e658b97b0a0d1ff7658a03cb79bdbda0331603bed24dd7054a6dea1", - "sha256:6628d750041550c5d9da50bb40b5cf28a2e63b9388bac10fedd4f19236ef4957", - "sha256:6afb336e23a793cd3b6476c30f030a0d4c7539cd81649683b5e0c1b0ab0bf350", - "sha256:6c8148e0b52bf9535c40c48faebb00cb294ee577ca069d21bd5c48d302a83780", - "sha256:76577f13333b4fe345c3704811ac7509b31499132ff0181f25ee26619de2c843", - "sha256:7c0da7e44d0c9108d8b98469338705e07f4bb7dab96dbd8fa4e91b337db42548", - "sha256:7de89c8456525650ffa2bb56a3eee6af891e98f498babd43ae307bd42dca98f6", - "sha256:7ec362167e2c9fd178f82f252b6d97669d7245695dc057ee182118042026da40", - "sha256:7fce6cbc6c170ede0221cc8c91b285f7f3c8b9fe28283b51885ff621bbe0f8ee", - "sha256:85cba594433915d5c9a0d14b24cfba0339f57a2fff203a5d4fd070e593307d0b", - "sha256:8b0af1cf36b93cee99a31a545fe91d08223e64390c5ecc5e94c39511832a4bb6", - "sha256:9130ddf1ae9978abe63808b6b60a897e41fccb834408cde79522feb37fb72fb0", - "sha256:99449cd5366fe4608e7226c6cae80873296dfa0cde45d9b498fefa1de315a09e", - "sha256:9de955d98e02fab288c7718662afb33aab64212ecb368c5dc866d9a57bf48880", - "sha256:a0fb2cb4204ddb456a8e32381f9a90000429489a25f64e817e6ff94879d432fc", - "sha256:a165442348c211b5dea67c0206fc61366212d7082ba8118c8c5c1c853ea4d82e", - "sha256:ab2a60d57ca88e1d4ca34a10e9fb4ab2ac5ad315543351de3a612bbb0560bead", - "sha256:abc06b97407868ef38f3d172762f4069323de52f2b70d133d096a48d72215d28", - "sha256:af887845b8c2e060eb5605ff72b6f2dd2aab7a761379373fd89d314f4752abbf", - "sha256:b19255dde4b4f4c32e012038f2c169bb72e7f081552bea4641cab4d88bc409dd", - "sha256:b3ded839a5c5608eec8b6f9ae9a62cb22cd037ea97c627f38ae0841a48f09eae", - "sha256:c1445a0c562ed561d06d8cbc5c8916c6008a31c60bc3655cdd2de1d3bf5174a0", - "sha256:d0272228fabe78ce00a3365ffffd6f643f57a91043e119c289aaba202f4095b0", - "sha256:d0b51530877d3ad7a8d47b2fff0c8df3b8f3b8deddf057379ba50b13df2a5eae", - "sha256:d0f77539733e0ec2475ddcd4e26777d08996f8cd55d2aef82ec4d3896687abda", - "sha256:d2b8f245dad9e331540c350285910b20dd913dc86d4ee410c11d48523c4fd546", - "sha256:dd032e8422a52e5a4860e062eb84ac94ea08861d334a4bcaf142a63ce8ad4802", - "sha256:de49d77e968de6626ba7ef4472323f9d2e5a56c1d85b7c0e2a190b2173d3b9be", - "sha256:de839c3a1826a909fdbfe05f6fe2167c4ab033f1133757b5936efe2f84904c07", - "sha256:e80ed5a9939ceb6fda42811542f31c8602be336b1fb977bccb012e83da7e4936", - "sha256:ea30a42dc94d42f2ba4d0f7c0ffb4f4f9baa1b23045910c0c32df9c9902cb272", - "sha256:ea513a25976d21733bff523e0ca836ef1679630ef4ad22d46987d04b372d57fc", - "sha256:ed19b74e81b10b592084a5ad1e70f845f0aacb57577018d31de064e71ffa267a", - "sha256:f5af52738e225fcc526ae64071b7e5342abe03f42e0e8918227b38c9aa711e28", - "sha256:fae37373155f5ef9b403ab48af5136ae9851151f7aacd9926251ab26b953118b" + "sha256:00d7ad91b6583602eb9c1d085a2cf281ada267e9a197e8b7cae487dadbfa293e", + "sha256:0355a701b3998dcd832d0dc47cc5dedf3874f966ac7f870e0f3a6788d802d434", + "sha256:15263c3b0b47968c1d90daa89f21fcc889bb4b1aac5555580d74565de6836366", + "sha256:2ce4c621d21326a4a5500c25031e102af589edb50c09b321049e388b3934eec3", + "sha256:31ede6e8c4329fb81c86706ba8f6bf661a924b53ba191b27aa5fcee5714d18ec", + "sha256:324ba3d3c6fee56e2e0b0d09bf5c73824b9f08234339d2b788af65e60040c959", + "sha256:329412812ecfc94a57cd37c9d547579510a9e83c516bc069470db5f75684629e", + "sha256:4736eaee5626db8d9cda9eb5282028cc834e2aeb194e0d8b50217d707e98bb5c", + "sha256:4953fb0b4fdb7e08b2f3b3be80a00d28c5c8a2056bb066169de00e6501b986b6", + "sha256:4c5bcfc3ed226bf6419f7a33982fb4b8ec2e45785a0561eb99274ebbf09fdd6a", + "sha256:547f7665ad50fa8563150ed079f8e805e63dd85def6674c97efd78eed6c224a6", + "sha256:5b883e458058f8d6099e4420f0cc2567989032b5f34b271c0827de9f1079a424", + "sha256:63f90b20ca654b3ecc7a8d62c03ffa46999595f0167d6450fa8383bab252987e", + "sha256:68dc568889b1c13f1e4745c96b931cc94fdd0defe92a72c2b8ce01091b22e35f", + "sha256:69ee97c71fee1f63d04c945f56d5d726483c4762845400a6795a3b75d56b6c50", + "sha256:6d6283d8e0631b617edf0fd726353cb76630b83a089a40933043894e7f6721e2", + "sha256:72a660bdd24497e3e84f5519e57a9ee9220b6f3ac4d45056961bf22838ce20cc", + "sha256:73494d5b71099ae8cb8754f1df131c11d433b387efab7b51849e7e1e851f07a4", + "sha256:7356644cbed76119d0b6bd32ffba704d30d747e0c217109d7979a7bc36c4d970", + "sha256:8a9066529240171b68893d60dca86a763eae2139dd42f42106b03cf4b426bf10", + "sha256:8aa3decd5e0e852dc68335abf5478a518b41bf2ab2f330fe44916399efedfae0", + "sha256:97b5bdc450d63c3ba30a127d018b866ea94e65655efaf889ebeabc20f7d12406", + "sha256:9ede61b0854e267fd565e7527e2f2eb3ef8858b301319be0604177690e1a3896", + "sha256:b2e9a456c121e26d13c29251f8267541bd75e6a1ccf9e859179701c36a078643", + "sha256:b5dfc9a40c198334f4f3f55880ecf910adebdcb2a0b9a9c23c9345faa9185721", + "sha256:bafb450deef6861815ed579c7a6113a879a6ef58aed4c3a4be54400ae8871478", + "sha256:c49ff66d479d38ab863c50f7bb27dee97c6627c5fe60697de15529da9c3de724", + "sha256:ce3beb46a72d9f2190f9e1027886bfc513702d748047b548b05dab7dfb584d2e", + "sha256:d26608cf178efb8faa5ff0f2d2e77c208f471c5a3709e577a7b3fd0445703ac8", + "sha256:d597767fcd2c3dc49d6eea360c458b65643d1e4dbed91361cf5e36e53c1f8c96", + "sha256:d5c32c82990e4ac4d8150fd7652b972216b204de4e83a122546dce571c1bdf25", + "sha256:d8d07d102f17b68966e2de0e07bfd6e139c7c02ef06d3a0f8d2f0f055e13bb76", + "sha256:e46fba844f4895b36f4c398c5af062a9808d1f26b2999c58909517384d5deda2", + "sha256:e6b5460dc5ad42ad2b36cca524491dfcaffbfd9c8df50508bddc354e787b8dc2", + "sha256:f040bcc6725c821a4c0665f3aa96a4d0805a7aaf2caf266d256b8ed71b9f041c", + "sha256:f0b059678fd549c66b89bed03efcabb009075bd131c248ecdf087bdb6faba24a", + "sha256:fcbb48a93e8699eae920f8d92f7160c03567b421bc17362a9ffbbd706a816f71" ], "markers": "python_version >= '3.7'", - "version": "==1.8.1" + "version": "==1.6.3" } }, "develop": { @@ -463,44 +590,122 @@ }, "aiohttp": { "hashes": [ - "sha256:173267050501e1537293df06723bc5e719990889e2820ba3932969983892e960", - "sha256:438f1f1555c02c50894604d94944cff188fe138b46467b7fa99fdceb51ab5842", - "sha256:90bed250d1435aef33a1f8c439c5056d5d25a44fe6caf33fcafafed805bad4dc", - "sha256:93c3b14747413f38f094a60e98f55e73831f0c9a23ae7faa3dc97d8963e13021", - "sha256:a6e70a38d883185b1921d8122759661c39ade54949770394412a9e713fec6fa7", - "sha256:b5036133c1ba77ed5a70208d2a021a90b76fdf8bf523ae33dae46d4f4380d86f", - "sha256:c138451a82cdbf65cddf952941d5c7a1a2cac8ce3bc618dee8d889e5251ec7a5", - "sha256:c94770383e49f9cc5912b926364ad022a6c8a5dbf5498933ca3a5713c6daf738", - "sha256:ea26536ae06df6dac021303a0df72c79e55512070e6a304ba93ad468a3a754dc" + "sha256:01d7bdb774a9acc838e6b8f1d114f45303841b89b95984cbb7d80ea41172a9e3", + "sha256:03a6d5349c9ee8f79ab3ff3694d6ce1cfc3ced1c9d36200cb8f08ba06bd3b782", + "sha256:04d48b8ce6ab3cf2097b1855e1505181bdd05586ca275f2505514a6e274e8e75", + "sha256:0770e2806a30e744b4e21c9d73b7bee18a1cfa3c47991ee2e5a65b887c49d5cf", + "sha256:07b05cd3305e8a73112103c834e91cd27ce5b4bd07850c4b4dbd1877d3f45be7", + "sha256:086f92daf51a032d062ec5f58af5ca6a44d082c35299c96376a41cbb33034675", + "sha256:099ebd2c37ac74cce10a3527d2b49af80243e2a4fa39e7bce41617fbc35fa3c1", + "sha256:0c7ebbbde809ff4e970824b2b6cb7e4222be6b95a296e46c03cf050878fc1785", + "sha256:102e487eeb82afac440581e5d7f8f44560b36cf0bdd11abc51a46c1cd88914d4", + "sha256:11691cf4dc5b94236ccc609b70fec991234e7ef8d4c02dd0c9668d1e486f5abf", + "sha256:11a67c0d562e07067c4e86bffc1553f2cf5b664d6111c894671b2b8712f3aba5", + "sha256:12de6add4038df8f72fac606dff775791a60f113a725c960f2bab01d8b8e6b15", + "sha256:13487abd2f761d4be7c8ff9080de2671e53fff69711d46de703c310c4c9317ca", + "sha256:15b09b06dae900777833fe7fc4b4aa426556ce95847a3e8d7548e2d19e34edb8", + "sha256:1c182cb873bc91b411e184dab7a2b664d4fea2743df0e4d57402f7f3fa644bac", + "sha256:1ed0b6477896559f17b9eaeb6d38e07f7f9ffe40b9f0f9627ae8b9926ae260a8", + "sha256:28d490af82bc6b7ce53ff31337a18a10498303fe66f701ab65ef27e143c3b0ef", + "sha256:2e5d962cf7e1d426aa0e528a7e198658cdc8aa4fe87f781d039ad75dcd52c516", + "sha256:2ed076098b171573161eb146afcb9129b5ff63308960aeca4b676d9d3c35e700", + "sha256:2f2f69dca064926e79997f45b2f34e202b320fd3782f17a91941f7eb85502ee2", + "sha256:31560d268ff62143e92423ef183680b9829b1b482c011713ae941997921eebc8", + "sha256:31d1e1c0dbf19ebccbfd62eff461518dcb1e307b195e93bba60c965a4dcf1ba0", + "sha256:37951ad2f4a6df6506750a23f7cbabad24c73c65f23f72e95897bb2cecbae676", + "sha256:3af642b43ce56c24d063325dd2cf20ee012d2b9ba4c3c008755a301aaea720ad", + "sha256:44db35a9e15d6fe5c40d74952e803b1d96e964f683b5a78c3cc64eb177878155", + "sha256:473d93d4450880fe278696549f2e7aed8cd23708c3c1997981464475f32137db", + "sha256:477c3ea0ba410b2b56b7efb072c36fa91b1e6fc331761798fa3f28bb224830dd", + "sha256:4a4a4e30bf1edcad13fb0804300557aedd07a92cabc74382fdd0ba6ca2661091", + "sha256:4aed991a28ea3ce320dc8ce655875e1e00a11bdd29fe9444dd4f88c30d558602", + "sha256:51467000f3647d519272392f484126aa716f747859794ac9924a7aafa86cd411", + "sha256:55c3d1072704d27401c92339144d199d9de7b52627f724a949fc7d5fc56d8b93", + "sha256:589c72667a5febd36f1315aa6e5f56dd4aa4862df295cb51c769d16142ddd7cd", + "sha256:5bfde62d1d2641a1f5173b8c8c2d96ceb4854f54a44c23102e2ccc7e02f003ec", + "sha256:5c23b1ad869653bc818e972b7a3a79852d0e494e9ab7e1a701a3decc49c20d51", + "sha256:61bfc23df345d8c9716d03717c2ed5e27374e0fe6f659ea64edcd27b4b044cf7", + "sha256:6ae828d3a003f03ae31915c31fa684b9890ea44c9c989056fea96e3d12a9fa17", + "sha256:6c7cefb4b0640703eb1069835c02486669312bf2f12b48a748e0a7756d0de33d", + "sha256:6d69f36d445c45cda7b3b26afef2fc34ef5ac0cdc75584a87ef307ee3c8c6d00", + "sha256:6f0d5f33feb5f69ddd57a4a4bd3d56c719a141080b445cbf18f238973c5c9923", + "sha256:6f8b01295e26c68b3a1b90efb7a89029110d3a4139270b24fda961893216c440", + "sha256:713ac174a629d39b7c6a3aa757b337599798da4c1157114a314e4e391cd28e32", + "sha256:718626a174e7e467f0558954f94af117b7d4695d48eb980146016afa4b580b2e", + "sha256:7187a76598bdb895af0adbd2fb7474d7f6025d170bc0a1130242da817ce9e7d1", + "sha256:71927042ed6365a09a98a6377501af5c9f0a4d38083652bcd2281a06a5976724", + "sha256:7d08744e9bae2ca9c382581f7dce1273fe3c9bae94ff572c3626e8da5b193c6a", + "sha256:7dadf3c307b31e0e61689cbf9e06be7a867c563d5a63ce9dca578f956609abf8", + "sha256:81e3d8c34c623ca4e36c46524a3530e99c0bc95ed068fd6e9b55cb721d408fb2", + "sha256:844a9b460871ee0a0b0b68a64890dae9c415e513db0f4a7e3cab41a0f2fedf33", + "sha256:8b7ef7cbd4fec9a1e811a5de813311ed4f7ac7d93e0fda233c9b3e1428f7dd7b", + "sha256:97ef77eb6b044134c0b3a96e16abcb05ecce892965a2124c566af0fd60f717e2", + "sha256:99b5eeae8e019e7aad8af8bb314fb908dd2e028b3cdaad87ec05095394cce632", + "sha256:a25fa703a527158aaf10dafd956f7d42ac6d30ec80e9a70846253dd13e2f067b", + "sha256:a2f635ce61a89c5732537a7896b6319a8fcfa23ba09bec36e1b1ac0ab31270d2", + "sha256:a79004bb58748f31ae1cbe9fa891054baaa46fb106c2dc7af9f8e3304dc30316", + "sha256:a996d01ca39b8dfe77440f3cd600825d05841088fd6bc0144cc6c2ec14cc5f74", + "sha256:b0e20cddbd676ab8a64c774fefa0ad787cc506afd844de95da56060348021e96", + "sha256:b6613280ccedf24354406caf785db748bebbddcf31408b20c0b48cb86af76866", + "sha256:b9d00268fcb9f66fbcc7cd9fe423741d90c75ee029a1d15c09b22d23253c0a44", + "sha256:bb01ba6b0d3f6c68b89fce7305080145d4877ad3acaed424bae4d4ee75faa950", + "sha256:c2aef4703f1f2ddc6df17519885dbfa3514929149d3ff900b73f45998f2532fa", + "sha256:c34dc4958b232ef6188c4318cb7b2c2d80521c9a56c52449f8f93ab7bc2a8a1c", + "sha256:c3630c3ef435c0a7c549ba170a0633a56e92629aeed0e707fec832dee313fb7a", + "sha256:c3d6a4d0619e09dcd61021debf7059955c2004fa29f48788a3dfaf9c9901a7cd", + "sha256:d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd", + "sha256:d2f9b69293c33aaa53d923032fe227feac867f81682f002ce33ffae978f0a9a9", + "sha256:e999f2d0e12eea01caeecb17b653f3713d758f6dcc770417cf29ef08d3931421", + "sha256:ea302f34477fda3f85560a06d9ebdc7fa41e82420e892fc50b577e35fc6a50b2", + "sha256:eaba923151d9deea315be1f3e2b31cc39a6d1d2f682f942905951f4e40200922", + "sha256:ef9612483cb35171d51d9173647eed5d0069eaa2ee812793a75373447d487aa4", + "sha256:f5315a2eb0239185af1bddb1abf472d877fede3cc8d143c6cddad37678293237", + "sha256:fa0ffcace9b3aa34d205d8130f7873fcfefcb6a4dd3dd705b0dab69af6712642", + "sha256:fc5471e1a54de15ef71c1bc6ebe80d4dc681ea600e68bfd1cbce40427f0b7578" ], "markers": "python_version >= '3.6'", - "version": "==4.0.0a1" + "version": "==3.8.1" }, "aiokafka": { "hashes": [ - "sha256:16731e8aa0fc70dc35c31041599c9a5237dd5d2c1a4d04af58f30a942191a281", - "sha256:1a9b6ecb606062b3595bc5104b85b42b62621a86d179b75d708279041152f461", - "sha256:34eda0b6eb794c36f4100be772f3b120a3c00daaf342f593f32994a762aed7e8", - "sha256:383cc7d45b47676fea60dbedee747c5c08dde5c10b1be0afc6598fb21a7891b4", - "sha256:3b1f1e9ad66883ed809d737d57edfb13f1aeb9b08c6fd6b71afefce712c13dad", - "sha256:5371bd663f545ced555775e7e49f39a54b243435098a9699582bb3b32884e332", - "sha256:594d2a29875f78d56251141ff95a982c5be64844dc9ae619c285f36c57a08c6e", - "sha256:6116b68ca975caafd7efd338ffdaec63789e1c334af6174e20edc1d16d14e463", - "sha256:7d56627c3250ba2359dfa90f2c8a3ab995795e0116038905b2f8a608cd1fd606", - "sha256:7fe02a3868236d84356d5fa7c7625ed3a27e52699477c5ee8bd5dc9b5adb592f", - "sha256:a3bfe4ad7d3829a98c8391a9a28f179b47df4f66e26ea5b1c665f872b6e21809", - "sha256:a8fc41d18731d8879483aecb93ae7ebf5457f63daf4c8923ddc046792c2c3096", - "sha256:b1958277eaa702509591c0674790a8c9aced8fef7723dafae0f9aec6d2da71a5", - "sha256:b19f077e12fe23e359f7a7dca9baf8532c63f4c8149703ce4c56de372d17e26c", - "sha256:be43d7ddd700d501a6f4c59c859baa9888c2d086b69882f542951bae41234f6a", - "sha256:c96824cef1a480fd2ab4bbd9e9aa737c9191211bab5f7787ef401926d5fda95d", - "sha256:cda55f5cfb19ea7d2f55a51d320a57312f152dab3e333fa1fbfcdde7a9e25a53", - "sha256:ce23baeaacf501f619967067d2c0d4c2b2b761012f9f9c8a49593e96c7550aff", - "sha256:d801bb2f5a4ae726a433ae74a5d34e7e0d44128de53c9c7eea5cb4cdaaf80175", - "sha256:e6e78206e5d031e6644d3a46153a146d2d2afff4cf9da9a81edb9f8714114b62", - "sha256:ebbb258840f134bad0e6ca8681a87cd292a1f4ed7253a821c16b4e9f2610a04a" - ], - "version": "==0.7.2" + "sha256:02156dee5156a0c5283d45df0f0e8aa516ec7f3d966d7dfeb35f8ada7c8f8557", + "sha256:02f67258a78e5d9d17470816ea879a653c5efecc0c6686e18d792fbd38e1f70c", + "sha256:035d1fb4cb22273bb0a47f31040fabfd9b248f8026dd306dd50e7e69f005a71d", + "sha256:061799f1b8b005f950012a11948ff8a6ab48114eac91341acd8feec5430f0f31", + "sha256:09cef9cf579193b497d3c65644b71ba1523660b7677805d0efea6c3206e4e643", + "sha256:120d3c477e7e9a53dd55f1a16b9c67e8a51cdc38e5e46fc25aae7d20f78519f2", + "sha256:2294ba68ff87fdf6cf70a5603afb4020c4fc7a39053ccd8e6abdf0aa34ba1ca3", + "sha256:2f1a2fcb5f0643527d77446437d27ed93ae94844c1b324e904a813acce675db8", + "sha256:45704e5a8c81e4db6333ab6315effc1b83feec1dfc2fc3a28e7c7600b0d80a23", + "sha256:47cda205e8fe16edf126c362a59071d0a4b74dd07bee6f070b26e5d2580cc37b", + "sha256:49517e2309826c27eaff940384e90773d89c69da023907663cda7853a00fb9ee", + "sha256:4c463265252236b7759920998862b56bad3d6eedfdfd3fce0774ad99bb2c4877", + "sha256:4cb2544ca8d5d5a4055c57fbb6c4ecfc82e6f3b670485c291b256c90d506acf3", + "sha256:567a3b856639bff36b8c74a92dfecd64ace8d07d755bb3ee6d5332273d2a8c6e", + "sha256:5fac6f1168c15b08f3fcb951347343a78d8c130292127d8a4e23466a5d2510f7", + "sha256:6e7d031b8bc08f9d9c4149c6afaedb650082309f01a3b79f0619814cc299fc4d", + "sha256:8b5e71d6da8edf0f592080488b198af42fbe9778de077762e4452d574e694efa", + "sha256:8ebb032a05a6696b25abbe5db677890adca9a3284d13e1975842009c1d7678dd", + "sha256:90a4cb54ae23ff55758a9ce8f3ba1ec67c6f2328f9197c3bacc61a24f812cf04", + "sha256:90a91155aeb28c872b74ecb3c9f671253db10cf23dc3af858bd9ed1630c0d1ae", + "sha256:95edb38631bf5dbb8cd65fecd8620e11a15534cd6dd22e0dc45488b4266b5452", + "sha256:b19d00b16637d02cfcee3d5cfdbcfd497702c09ae1f63e194830798cd223f910", + "sha256:b5a6fb1cfd77eac4b397ef5af3765d1d881c86b157137b12ca4f12aef1db433c", + "sha256:b7390a9d9d03a2a3dbee0f8fa6735b008408e0f561a279b3df13e9758ab6d67f", + "sha256:c70ed4b09e01d774d1821db30f6fbc6475a41224d0dc1488d018ef97610dc3da", + "sha256:dfd8d58f7418aabc07f1e8c1b904f478bf955919b743d4d44607dbf18a2c54b2", + "sha256:e8276baed94281ef4548f19e039b9b4a8af79afee324bd259d8898638ca15da6", + "sha256:edcf1cdcf9246edd5c4c1b649609a7ac5bfe4276da586aede470b73f9d00b809", + "sha256:f3a2138649ca2427a91dfc0927ddd445a9a6aaf9a9b0972d683cb230923f821f" + ], + "version": "==0.7.1" + }, + "aiosignal": { + "hashes": [ + "sha256:26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a", + "sha256:78ed67db6c7b7ced4f98e495e572106d5c432a93e1ddd1bf475e1dc05f5b7df2" + ], + "version": "==1.2.0" }, "aiozmq": { "hashes": [ @@ -526,11 +731,11 @@ }, "async-timeout": { "hashes": [ - "sha256:0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f", - "sha256:4291ca197d287d274d0b6cb5d6f8f8f82d434ed288f962539ff18cc9012f9ea3" + "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15", + "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c" ], "markers": "python_full_version >= '3.5.3'", - "version": "==3.0.1" + "version": "==4.0.2" }, "attrs": { "hashes": [ @@ -579,26 +784,18 @@ }, "certifi": { "hashes": [ - "sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d", - "sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412" + "sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14", + "sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382" ], "markers": "python_version >= '3.6'", - "version": "==2022.6.15" - }, - "chardet": { - "hashes": [ - "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", - "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" - ], - "version": "==3.0.4" + "version": "==2022.9.24" }, "charset-normalizer": { "hashes": [ - "sha256:5189b6f22b01957427f35b6a08d9a0bc45b46d3788ef5a92e978433c7a35f8a5", - "sha256:575e708016ff3a5e3681541cb9d79312c416835686d054a23accb873b254f413" + "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", + "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" ], - "markers": "python_version >= '3.6'", - "version": "==2.1.0" + "version": "==2.1.1" }, "click": { "hashes": [ @@ -613,50 +810,59 @@ "toml" ], "hashes": [ - "sha256:04010af3c06ce2bfeb3b1e4e05d136f88d88c25f76cd4faff5d1fd84d11581ea", - "sha256:05de0762c1caed4a162b3e305f36cf20a548ff4da0be6766ad5c870704be3660", - "sha256:068d6f2a893af838291b8809c876973d885543411ea460f3e6886ac0ee941732", - "sha256:0a84376e4fd13cebce2c0ef8c2f037929c8307fb94af1e5dbe50272a1c651b5d", - "sha256:0e34247274bde982bbc613894d33f9e36358179db2ed231dd101c48dd298e7b0", - "sha256:0e3a41aad5919613483aad9ebd53336905cab1bd6788afd3995c2a972d89d795", - "sha256:306788fd019bb90e9cbb83d3f3c6becad1c048dd432af24f8320cf38ac085684", - "sha256:39ebd8e120cb77a06ee3d5fc26f9732670d1c397d7cd3acf02f6f62693b89b80", - "sha256:411fdd9f4203afd93b056c0868c8f9e5e16813e765de962f27e4e5798356a052", - "sha256:4822327b35cb032ff16af3bec27f73985448f08e874146b5b101e0e558b613dd", - "sha256:52f8b9fcf3c5e427d51bbab1fb92b575a9a9235d516f175b24712bcd4b5be917", - "sha256:53c8edd3b83a4ddba3d8c506f1359401e7770b30f2188f15c17a338adf5a14db", - "sha256:555a498999c44f5287cc95500486cd0d4f021af9162982cbe504d4cb388f73b5", - "sha256:59fc88bc13e30f25167e807b8cad3c41b7218ef4473a20c86fd98a7968733083", - "sha256:5a559aab40c716de80c7212295d0dc96bc1b6c719371c20dd18c5187c3155518", - "sha256:5de1e9335e2569974e20df0ce31493d315a830d7987e71a24a2a335a8d8459d3", - "sha256:6630d8d943644ea62132789940ca97d05fac83f73186eaf0930ffa715fbdab6b", - "sha256:73a10939dc345460ca0655356a470dd3de9759919186a82383c87b6eb315faf2", - "sha256:7856ea39059d75f822ff0df3a51ea6d76307c897048bdec3aad1377e4e9dca20", - "sha256:877ee5478fd78e100362aed56db47ccc5f23f6e7bb035a8896855f4c3e49bc9b", - "sha256:920a734fe3d311ca01883b4a19aa386c97b82b69fbc023458899cff0a0d621b9", - "sha256:923f9084d7e1d31b5f74c92396b05b18921ed01ee5350402b561a79dce3ea48d", - "sha256:a0d2df4227f645a879010461df2cea6b7e3fb5a97d7eafa210f7fb60345af9e8", - "sha256:a2738ba1ee544d6f294278cfb6de2dc1f9a737a780469b5366e662a218f806c3", - "sha256:a42eaaae772f14a5194f181740a67bfd48e8806394b8c67aa4399e09d0d6b5db", - "sha256:ab2b1a89d2bc7647622e9eaf06128a5b5451dccf7c242deaa31420b055716481", - "sha256:ab9ef0187d6c62b09dec83a84a3b94f71f9690784c84fd762fb3cf2d2b44c914", - "sha256:adf1a0d272633b21d645dd6e02e3293429c1141c7d65a58e4cbcd592d53b8e01", - "sha256:b104b6b1827d6a22483c469e3983a204bcf9c6bf7544bf90362c4654ebc2edf3", - "sha256:bc698580216050b5f4a34d2cdd2838b429c53314f1c4835fab7338200a8396f2", - "sha256:cdf7b83f04a313a21afb1f8730fe4dd09577fefc53bbdfececf78b2006f4268e", - "sha256:d5191d53afbe5b6059895fa7f58223d3751c42b8101fb3ce767e1a0b1a1d8f87", - "sha256:d75314b00825d70e1e34b07396e23f47ed1d4feedc0122748f9f6bd31a544840", - "sha256:e4d64304acf79766e650f7acb81d263a3ea6e2d0d04c5172b7189180ff2c023c", - "sha256:ec2ae1f398e5aca655b7084392d23e80efb31f7a660d2eecf569fb9f79b3fb94", - "sha256:eff095a5aac7011fdb51a2c82a8fae9ec5211577f4b764e1e59cfa27ceeb1b59", - "sha256:f1eda5cae434282712e40b42aaf590b773382afc3642786ac3ed39053973f61f", - "sha256:f217850ac0e046ede611312703423767ca032a7b952b5257efac963942c055de", - "sha256:f50d3a822947572496ea922ee7825becd8e3ae6fbd2400cd8236b7d64b17f285", - "sha256:fc294de50941d3da66a09dca06e206297709332050973eca17040278cb0918ff", - "sha256:ff9832434a9193fbd716fbe05f9276484e18d26cc4cf850853594bb322807ac3" + "sha256:027018943386e7b942fa832372ebc120155fd970837489896099f5cfa2890f79", + "sha256:11b990d520ea75e7ee8dcab5bc908072aaada194a794db9f6d7d5cfd19661e5a", + "sha256:12adf310e4aafddc58afdb04d686795f33f4d7a6fa67a7a9d4ce7d6ae24d949f", + "sha256:1431986dac3923c5945271f169f59c45b8802a114c8f548d611f2015133df77a", + "sha256:1ef221513e6f68b69ee9e159506d583d31aa3567e0ae84eaad9d6ec1107dddaa", + "sha256:20c8ac5386253717e5ccc827caad43ed66fea0efe255727b1053a8154d952398", + "sha256:2198ea6fc548de52adc826f62cb18554caedfb1d26548c1b7c88d8f7faa8f6ba", + "sha256:255758a1e3b61db372ec2736c8e2a1fdfaf563977eedbdf131de003ca5779b7d", + "sha256:265de0fa6778d07de30bcf4d9dc471c3dc4314a23a3c6603d356a3c9abc2dfcf", + "sha256:33a7da4376d5977fbf0a8ed91c4dffaaa8dbf0ddbf4c8eea500a2486d8bc4d7b", + "sha256:42eafe6778551cf006a7c43153af1211c3aaab658d4d66fa5fcc021613d02518", + "sha256:4433b90fae13f86fafff0b326453dd42fc9a639a0d9e4eec4d366436d1a41b6d", + "sha256:4a5375e28c5191ac38cca59b38edd33ef4cc914732c916f2929029b4bfb50795", + "sha256:4a8dbc1f0fbb2ae3de73eb0bdbb914180c7abfbf258e90b311dcd4f585d44bd2", + "sha256:59f53f1dc5b656cafb1badd0feb428c1e7bc19b867479ff72f7a9dd9b479f10e", + "sha256:5dbec3b9095749390c09ab7c89d314727f18800060d8d24e87f01fb9cfb40b32", + "sha256:633713d70ad6bfc49b34ead4060531658dc6dfc9b3eb7d8a716d5873377ab745", + "sha256:6b07130585d54fe8dff3d97b93b0e20290de974dc8177c320aeaf23459219c0b", + "sha256:6c4459b3de97b75e3bd6b7d4b7f0db13f17f504f3d13e2a7c623786289dd670e", + "sha256:6d4817234349a80dbf03640cec6109cd90cba068330703fa65ddf56b60223a6d", + "sha256:723e8130d4ecc8f56e9a611e73b31219595baa3bb252d539206f7bbbab6ffc1f", + "sha256:784f53ebc9f3fd0e2a3f6a78b2be1bd1f5575d7863e10c6e12504f240fd06660", + "sha256:7b6be138d61e458e18d8e6ddcddd36dd96215edfe5f1168de0b1b32635839b62", + "sha256:7ccf362abd726b0410bf8911c31fbf97f09f8f1061f8c1cf03dfc4b6372848f6", + "sha256:83516205e254a0cb77d2d7bb3632ee019d93d9f4005de31dca0a8c3667d5bc04", + "sha256:851cf4ff24062c6aec510a454b2584f6e998cada52d4cb58c5e233d07172e50c", + "sha256:8f830ed581b45b82451a40faabb89c84e1a998124ee4212d440e9c6cf70083e5", + "sha256:94e2565443291bd778421856bc975d351738963071e9b8839ca1fc08b42d4bef", + "sha256:95203854f974e07af96358c0b261f1048d8e1083f2de9b1c565e1be4a3a48cfc", + "sha256:97117225cdd992a9c2a5515db1f66b59db634f59d0679ca1fa3fe8da32749cae", + "sha256:98e8a10b7a314f454d9eff4216a9a94d143a7ee65018dd12442e898ee2310578", + "sha256:a1170fa54185845505fbfa672f1c1ab175446c887cce8212c44149581cf2d466", + "sha256:a6b7d95969b8845250586f269e81e5dfdd8ff828ddeb8567a4a2eaa7313460c4", + "sha256:a8fb6cf131ac4070c9c5a3e21de0f7dc5a0fbe8bc77c9456ced896c12fcdad91", + "sha256:af4fffaffc4067232253715065e30c5a7ec6faac36f8fc8d6f64263b15f74db0", + "sha256:b4a5be1748d538a710f87542f22c2cad22f80545a847ad91ce45e77417293eb4", + "sha256:b5604380f3415ba69de87a289a2b56687faa4fe04dbee0754bfcae433489316b", + "sha256:b9023e237f4c02ff739581ef35969c3739445fb059b060ca51771e69101efffe", + "sha256:bc8ef5e043a2af066fa8cbfc6e708d58017024dc4345a1f9757b329a249f041b", + "sha256:c4ed2820d919351f4167e52425e096af41bfabacb1857186c1ea32ff9983ed75", + "sha256:cca4435eebea7962a52bdb216dec27215d0df64cf27fc1dd538415f5d2b9da6b", + "sha256:d900bb429fdfd7f511f868cedd03a6bbb142f3f9118c09b99ef8dc9bf9643c3c", + "sha256:d9ecf0829c6a62b9b573c7bb6d4dcd6ba8b6f80be9ba4fc7ed50bf4ac9aecd72", + "sha256:dbdb91cd8c048c2b09eb17713b0c12a54fbd587d79adcebad543bc0cd9a3410b", + "sha256:de3001a203182842a4630e7b8d1a2c7c07ec1b45d3084a83d5d227a3806f530f", + "sha256:e07f4a4a9b41583d6eabec04f8b68076ab3cd44c20bd29332c6572dda36f372e", + "sha256:ef8674b0ee8cc11e2d574e3e2998aea5df5ab242e012286824ea3c6970580e53", + "sha256:f4f05d88d9a80ad3cac6244d36dd89a3c00abc16371769f1340101d3cb899fc3", + "sha256:f642e90754ee3e06b0e7e51bce3379590e76b7f76b708e1a71ff043f87025c84", + "sha256:fc2af30ed0d5ae0b1abdb4ebdce598eafd5b35397d4d75deb341a614d333d987" ], "markers": "python_version >= '3.7'", - "version": "==6.4.3" + "version": "==6.5.0" }, "docutils": { "hashes": [ @@ -703,6 +909,7 @@ "epicsdbbuilder": { "hashes": [ "sha256:32321c0eff5209a1604464a19e30a73429f597efe4df69f1f859758c3a14ebc7", + "sha256:40e01ca308b667d17b31dc1907816df20c31b389415268d9ec6e2be6c3b8f283", "sha256:698ad5882de4a626a82086139ff95204e8de72e63d03d9f22d4418da3a6c8566", "sha256:ae8dc724c72478d2c6a68b08145d027a50af98702d17e4692f2d73f145818e74" ], @@ -726,18 +933,82 @@ }, "flake8-isort": { "hashes": [ - "sha256:26571500cd54976bbc0cf1006ffbcd1a68dd102f816b7a1051b219616ba9fee0", - "sha256:5b87630fb3719bf4c1833fd11e0d9534f43efdeba524863e15d8f14a7ef6adbf" - ], - "version": "==4.2.0" + "sha256:c73f9cbd1bf209887f602a27b827164ccfeba1676801b2aa23cb49051a1be79c", + "sha256:e336f928c7edc509684930ab124414194b7f4e237c712af8fcbdf49d8747b10c" + ], + "version": "==5.0.0" + }, + "frozenlist": { + "hashes": [ + "sha256:006d3595e7d4108a12025ddf415ae0f6c9e736e726a5db0183326fd191b14c5e", + "sha256:01a73627448b1f2145bddb6e6c2259988bb8aee0fb361776ff8604b99616cd08", + "sha256:03a7dd1bfce30216a3f51a84e6dd0e4a573d23ca50f0346634916ff105ba6e6b", + "sha256:0437fe763fb5d4adad1756050cbf855bbb2bf0d9385c7bb13d7a10b0dd550486", + "sha256:04cb491c4b1c051734d41ea2552fde292f5f3a9c911363f74f39c23659c4af78", + "sha256:0c36e78b9509e97042ef869c0e1e6ef6429e55817c12d78245eb915e1cca7468", + "sha256:25af28b560e0c76fa41f550eacb389905633e7ac02d6eb3c09017fa1c8cdfde1", + "sha256:2fdc3cd845e5a1f71a0c3518528bfdbfe2efaf9886d6f49eacc5ee4fd9a10953", + "sha256:30530930410855c451bea83f7b272fb1c495ed9d5cc72895ac29e91279401db3", + "sha256:31977f84828b5bb856ca1eb07bf7e3a34f33a5cddce981d880240ba06639b94d", + "sha256:3c62964192a1c0c30b49f403495911298810bada64e4f03249ca35a33ca0417a", + "sha256:3f7c935c7b58b0d78c0beea0c7358e165f95f1fd8a7e98baa40d22a05b4a8141", + "sha256:40dff8962b8eba91fd3848d857203f0bd704b5f1fa2b3fc9af64901a190bba08", + "sha256:40ec383bc194accba825fbb7d0ef3dda5736ceab2375462f1d8672d9f6b68d07", + "sha256:436496321dad302b8b27ca955364a439ed1f0999311c393dccb243e451ff66aa", + "sha256:4406cfabef8f07b3b3af0f50f70938ec06d9f0fc26cbdeaab431cbc3ca3caeaa", + "sha256:45334234ec30fc4ea677f43171b18a27505bfb2dba9aca4398a62692c0ea8868", + "sha256:47be22dc27ed933d55ee55845d34a3e4e9f6fee93039e7f8ebadb0c2f60d403f", + "sha256:4a44ebbf601d7bac77976d429e9bdb5a4614f9f4027777f9e54fd765196e9d3b", + "sha256:4eda49bea3602812518765810af732229b4291d2695ed24a0a20e098c45a707b", + "sha256:57f4d3f03a18facacb2a6bcd21bccd011e3b75d463dc49f838fd699d074fabd1", + "sha256:603b9091bd70fae7be28bdb8aa5c9990f4241aa33abb673390a7f7329296695f", + "sha256:65bc6e2fece04e2145ab6e3c47428d1bbc05aede61ae365b2c1bddd94906e478", + "sha256:691ddf6dc50480ce49f68441f1d16a4c3325887453837036e0fb94736eae1e58", + "sha256:6983a31698490825171be44ffbafeaa930ddf590d3f051e397143a5045513b01", + "sha256:6a202458d1298ced3768f5a7d44301e7c86defac162ace0ab7434c2e961166e8", + "sha256:6eb275c6385dd72594758cbe96c07cdb9bd6becf84235f4a594bdf21e3596c9d", + "sha256:754728d65f1acc61e0f4df784456106e35afb7bf39cfe37227ab00436fb38676", + "sha256:768efd082074bb203c934e83a61654ed4931ef02412c2fbdecea0cff7ecd0274", + "sha256:772965f773757a6026dea111a15e6e2678fbd6216180f82a48a40b27de1ee2ab", + "sha256:871d42623ae15eb0b0e9df65baeee6976b2e161d0ba93155411d58ff27483ad8", + "sha256:88aafd445a233dbbf8a65a62bc3249a0acd0d81ab18f6feb461cc5a938610d24", + "sha256:8c905a5186d77111f02144fab5b849ab524f1e876a1e75205cd1386a9be4b00a", + "sha256:8cf829bd2e2956066dd4de43fd8ec881d87842a06708c035b37ef632930505a2", + "sha256:92e650bd09b5dda929523b9f8e7f99b24deac61240ecc1a32aeba487afcd970f", + "sha256:93641a51f89473837333b2f8100f3f89795295b858cd4c7d4a1f18e299dc0a4f", + "sha256:94c7a8a9fc9383b52c410a2ec952521906d355d18fccc927fca52ab575ee8b93", + "sha256:9f892d6a94ec5c7b785e548e42722e6f3a52f5f32a8461e82ac3e67a3bd073f1", + "sha256:acb267b09a509c1df5a4ca04140da96016f40d2ed183cdc356d237286c971b51", + "sha256:adac9700675cf99e3615eb6a0eb5e9f5a4143c7d42c05cea2e7f71c27a3d0846", + "sha256:aff388be97ef2677ae185e72dc500d19ecaf31b698986800d3fc4f399a5e30a5", + "sha256:b5009062d78a8c6890d50b4e53b0ddda31841b3935c1937e2ed8c1bda1c7fb9d", + "sha256:b684c68077b84522b5c7eafc1dc735bfa5b341fb011d5552ebe0968e22ed641c", + "sha256:b9e3e9e365991f8cc5f5edc1fd65b58b41d0514a6a7ad95ef5c7f34eb49b3d3e", + "sha256:bd89acd1b8bb4f31b47072615d72e7f53a948d302b7c1d1455e42622de180eae", + "sha256:bde99812f237f79eaf3f04ebffd74f6718bbd216101b35ac7955c2d47c17da02", + "sha256:c6c321dd013e8fc20735b92cb4892c115f5cdb82c817b1e5b07f6b95d952b2f0", + "sha256:ce6f2ba0edb7b0c1d8976565298ad2deba6f8064d2bebb6ffce2ca896eb35b0b", + "sha256:d2257aaba9660f78c7b1d8fea963b68f3feffb1a9d5d05a18401ca9eb3e8d0a3", + "sha256:d26b650b71fdc88065b7a21f8ace70175bcf3b5bdba5ea22df4bfd893e795a3b", + "sha256:d6d32ff213aef0fd0bcf803bffe15cfa2d4fde237d1d4838e62aec242a8362fa", + "sha256:e1e26ac0a253a2907d654a37e390904426d5ae5483150ce3adedb35c8c06614a", + "sha256:e30b2f9683812eb30cf3f0a8e9f79f8d590a7999f731cf39f9105a7c4a39489d", + "sha256:e84cb61b0ac40a0c3e0e8b79c575161c5300d1d89e13c0e02f76193982f066ed", + "sha256:e982878792c971cbd60ee510c4ee5bf089a8246226dea1f2138aa0bb67aff148", + "sha256:f20baa05eaa2bcd5404c445ec51aed1c268d62600362dc6cfe04fae34a424bd9", + "sha256:f7353ba3367473d1d616ee727945f439e027f0bb16ac1a750219a8344d1d5d3c", + "sha256:f96293d6f982c58ebebb428c50163d010c2f05de0cde99fd681bfdc18d4b2dc2", + "sha256:ff9310f05b9d9c5c4dd472983dc956901ee6cb2c3ec1ab116ecdde25f3ce4951" + ], + "version": "==1.3.0" }, "idna": { "hashes": [ - "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff", - "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d" + "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", + "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" ], "markers": "python_version >= '3.5'", - "version": "==3.3" + "version": "==3.4" }, "imagesize": { "hashes": [ @@ -749,66 +1020,44 @@ }, "immutables": { "hashes": [ - "sha256:03696193b276db3a9b619629685198886ddd7c4098c544bd8d0f87532c74120b", - "sha256:13159cedb698fdd243d9f2a7469c1628e075a180fc02f865dd98322b92a14aaf", - "sha256:1330f96eb6a3a11f5d02f30b2c6393ef30d01a79f7144d63d2a3e6ff05cb99db", - "sha256:1338aad6fd69f11442adcbb3402a028c90f6e945682ddb8aba462a3827f2d427", - "sha256:1acbbc333f1643fd1ed21bcc3e09aad2ef6648478a0cae76a2ca5823764a7d3b", - "sha256:1d6821d7718cf9f4a7b1d9e765fc22a9d1ae0fad3fabd8724b4e614d2a6e0b54", - "sha256:210efea163a704597cfdb2d30713d3c0963c30f0d997539c9ab5da40e3d6a886", - "sha256:29a5886845cd0ca8263b721337750a895e28feee2f16694a526977a791909db5", - "sha256:2aa5292630b08c874972931bac06ee381cb6fb7382d7be1856234d7bd4a8e676", - "sha256:2b6c820c9bb5aac62b76de703384bb8bb706108be90c3def4a7f047f185a92bb", - "sha256:45bd862a5dfb952eaff4a9c2448712c5a550dd956575e23cbfc512010fb06c74", - "sha256:525fe9001b5a96c325eec41677efaeb8c3610776e834ce7f31fbe3d33cc05252", - "sha256:5336c7974084cce62f7e29aaff81a3c3f75e0fd0a23a2faeb986ae0ea08d8cf4", - "sha256:535616ad7ca1174a27ade637192c970bfedb0b0e0467e69ce415b40d7cf7ba0c", - "sha256:53fccddd28cc3214aa48ca564702311c07eac069190dd890e097802c5d69b33a", - "sha256:54577e46c5332d7390212040c084335b7d667504847ed2788428d44f20e595ce", - "sha256:5caf9c670e6851e7f310716c7dcdf8705236d13056eda1fab3deaad5d7198468", - "sha256:5d43b16b6adbe1327c6688e14b125cb3b940e748790b305de96c8d55668ac25f", - "sha256:5f32b5933393e4cc204d8f9e7d9f503ec052e30f612090be0de0dd31b1464b35", - "sha256:69352b45a115808219feaf0bb7a551e9aa76c72684db93cd03f11474165f4569", - "sha256:6baf4dc11ba0e9f41a6cbde7ecaa7af9cb482559b92ba3254e3e37a518b1970e", - "sha256:6e979a9225507e3cd830ea73ac68b69fe82f495313a891485800daa5b6567e05", - "sha256:6ee2d6f8816fce53fa89b6a1ba2d4a96b344bf584d6ed0b10a871b17fff46e49", - "sha256:734ec4467dd15f9135ca5ecccc91e796a67d27c227e81554f9e06b1bb3b28d6d", - "sha256:74456c579cfd53f883cdcc0700e3871648a3316767efc1adf8c723ad3d8addec", - "sha256:77bdc96dc24e32839557cde3785f8039a369c95529ff9179044b81d0ba4bd02c", - "sha256:798b4d6c388116effa7523591e4e39865292e4fa74e169b05a0759a16f604ce1", - "sha256:853d63f4a07b2ea2131ba0831aeec11f6a6ee5e290e8f175bf56842762d7412e", - "sha256:8b650d779a46441dccd02e7ee8326dbd0dec633c6bd75e9fe13373a6b19570dd", - "sha256:90da9dea0a1c0a907d511f124cd87fe090c0e30a951c3fe68bc9782ae4f2c77f", - "sha256:989606e440492736112b471dcd80586e3d4a63bc6f8ff4f9d1d612e0f96cb683", - "sha256:98f67bd36532582751dcc9021fdb60e7efc82e5717ae5927b84d0b86ea58fe12", - "sha256:9949f704b80d0e601587d0a3b1a0cc6ff5d49528f6dfc1c8a1476b2137bb925e", - "sha256:9a86dcca4bb406f80e7a18c233aec0e76a7530c456e24aa1e19a708a34f2aac1", - "sha256:9d72527fde329e3b566b67c954237be52b07d6e84ff23dcc1e94499755cacff6", - "sha256:9f17407491164beb689d426f7985f79ae9dfa69868653cfbdb95645f6bf05cb0", - "sha256:a29e3aa0fe05fb2cc6b31039f448aa6206d7f0cdb660c98aa9be6d12070d6840", - "sha256:a3bad4d43009fa61ea40d887e6fa89ae7c4e62dff5e4a878d60b76cf245720bb", - "sha256:ac9e05f846392e983fb59f74ed2334031b366251d16d24122e4c85f70fb6e2da", - "sha256:b3621256bc8058a7973f736b9e2c940e17133476265a0a83b8df8c0f446ca32f", - "sha256:bc830a689a55e404f0e23d7d69e01c218fa8a0be54a6ca5df45b6fbfeeac648a", - "sha256:d11da4946e19f3b24a873b2ba2891cc226a89bb398561c62dfb966a9b6501a4a", - "sha256:d841dfa15b932bdad27f5149bce86b32d0dd8a29679ed61405677317b6893447", - "sha256:de1a091ab89b7ba50501a915a0fbdceb52b079c752f4f7c76d2060237774a714", - "sha256:e04b61ddffd4ccb4d7ab823b2e55dbb4ad47c37697e311fae4b98b3c023ab194", - "sha256:e4c2110173649acf67bd763bbd2a9c3a863a1d20fd7f3db3493ce4e0fb04fae5", - "sha256:f6edb73619aa0a5fe4a77d97dd9d39bfeef61a5afe71aa5bdceccf59b933999e", - "sha256:fade8ccf7afbc1e7ea353159fa90cc04395f2f4f57658160d7a02f6aa60c4e77", - "sha256:ffced8535cc673fcfb411d28ba5744689a6978fa596c803725a76f43c1bda911" + "sha256:0020aaa4010b136056c20a46ce53204e1407a9e4464246cb2cf95b90808d9161", + "sha256:064001638ab5d36f6aa05b6101446f4a5793fb71e522bc81b8fc65a1894266ff", + "sha256:0a396314b9024fa55bf83a27813fd76cf9f27dce51f53b0f19b51de035146251", + "sha256:19bdede174847c2ef1292df0f23868ab3918b560febb09fcac6eec621bd4812b", + "sha256:1de393f1b188740ca7b38f946f2bbc7edf3910d2048f03bbb8d01f17a038d67c", + "sha256:2505d93395d3f8ae4223e21465994c3bc6952015a38dc4f03cb3e07a2b8d8325", + "sha256:298a301f85f307b4c056a0825eb30f060e64d73605e783289f3df37dd762bab8", + "sha256:29c9ed003eacb92e630ef200e31f47236c2139b39476894f7963b32bd39bafa3", + "sha256:4a2a71678348fb95b13ca108d447f559a754c41b47bd1e7e4fb23974e735682d", + "sha256:50793a44ba0d228ed8cad4d0925e00dfd62ea32f44ddee8854f8066447272d05", + "sha256:511c93d8b1bbbf103ff3f1f120c5a68a9866ce03dea6ac406537f93ca9b19139", + "sha256:734c269e82e5f307fb6e17945953b67659d1731e65309787b8f7ba267d1468f2", + "sha256:798b095381eb42cf40db6876339e7bed84093e5868018a9e73d8e1f7ab4bb21e", + "sha256:799621dcdcdcbb2516546a40123b87bf88de75fe7459f7bd8144f079ace6ec3e", + "sha256:7a58825ff2254e2612c5a932174398a4ea8fbddd8a64a02c880cc32ee28b8820", + "sha256:7bcf52aeb983bd803b7c6106eae1b2d9a0c7ab1241bc6b45e2174ba2b7283031", + "sha256:9ccf4c0e3e2e3237012b516c74c49de8872ccdf9129739f7a0b9d7444a8c4862", + "sha256:a307eb0984eb43e815dcacea3ac50c11d00a936ecf694c46991cd5a23bcb0ec0", + "sha256:a454d5d3fee4b7cc627345791eb2ca4b27fa3bbb062ccf362ecaaa51679a07ed", + "sha256:aa7bf572ae1e006104c584be70dc634849cf0dc62f42f4ee194774f97e7fd17d", + "sha256:acbfa79d44228d96296279068441f980dc63dbed52522d9227ff9f4d96c6627e", + "sha256:b651b61c1af6cda2ee201450f2ffe048a5959bc88e43e6c312f4c93e69c9e929", + "sha256:b779617f5b94486bfd0f22162cd72eb5f2beb0214a14b75fdafb7b2c908ed0cb", + "sha256:d59beef203a3765db72b1d0943547425c8318ecf7d64c451fd1e130b653c2fbb", + "sha256:d67e86859598eed0d926562da33325dac7767b7b1eff84e232c22abea19f4360", + "sha256:edd9f67671555af1eb99ad3c7550238487dd7ac0ac5205b40204ed61c9a922ac", + "sha256:fcf678a3074613119385a02a07c469ec5130559f5ea843c85a0840c80b5b71c6" ], "markers": "python_version >= '3.6'", - "version": "==0.18" + "version": "==0.16" }, "importlib-metadata": { "hashes": [ - "sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670", - "sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23" + "sha256:da31db32b304314d044d3c12c79bd59e307889b287ad12ff387b3500835fc2ab", + "sha256:ddb0e35065e8938f867ed4928d0ae5bf2a53b7773871bfe6bcc7e4fcdc7dea43" ], "markers": "python_version < '3.10'", - "version": "==4.12.0" + "version": "==5.0.0" }, "iniconfig": { "hashes": [ @@ -822,7 +1071,7 @@ "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7", "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951" ], - "markers": "python_full_version >= '3.6.1' and python_version < '4'", + "markers": "python_version < '4' and python_full_version >= '3.6.1'", "version": "==5.10.1" }, "jinja2": { @@ -903,55 +1152,76 @@ }, "multidict": { "hashes": [ - "sha256:1ece5a3369835c20ed57adadc663400b5525904e53bae59ec854a5d36b39b21a", - "sha256:275ca32383bc5d1894b6975bb4ca6a7ff16ab76fa622967625baeebcf8079000", - "sha256:3750f2205b800aac4bb03b5ae48025a64e474d2c6cc79547988ba1d4122a09e2", - "sha256:4538273208e7294b2659b1602490f4ed3ab1c8cf9dbdd817e0e9db8e64be2507", - "sha256:5141c13374e6b25fe6bf092052ab55c0c03d21bd66c94a0e3ae371d3e4d865a5", - "sha256:51a4d210404ac61d32dada00a50ea7ba412e6ea945bbe992e4d7a595276d2ec7", - "sha256:5cf311a0f5ef80fe73e4f4c0f0998ec08f954a6ec72b746f3c179e37de1d210d", - "sha256:6513728873f4326999429a8b00fc7ceddb2509b01d5fd3f3be7881a257b8d463", - "sha256:7388d2ef3c55a8ba80da62ecfafa06a1c097c18032a501ffd4cabbc52d7f2b19", - "sha256:9456e90649005ad40558f4cf51dbb842e32807df75146c6d940b6f5abb4a78f3", - "sha256:c026fe9a05130e44157b98fea3ab12969e5b60691a276150db9eda71710cd10b", - "sha256:d14842362ed4cf63751648e7672f7174c9818459d169231d03c56e84daf90b7c", - "sha256:e0d072ae0f2a179c375f67e3da300b47e1a83293c554450b29c900e50afaae87", - "sha256:f07acae137b71af3bb548bd8da720956a3bc9f9a0b87733e0899226a2317aeb7", - "sha256:fbb77a75e529021e7c4a8d4e823d88ef4d23674a202be4f5addffc72cbb91430", - "sha256:fcfbb44c59af3f8ea984de67ec7c306f618a3ec771c2843804069917a8f2e255", - "sha256:feed85993dbdb1dbc29102f50bca65bdc68f2c0c8d352468c25b54874f23c39d" + "sha256:018132dbd8688c7a69ad89c4a3f39ea2f9f33302ebe567a879da8f4ca73f0d0a", + "sha256:051012ccee979b2b06be928a6150d237aec75dd6bf2d1eeeb190baf2b05abc93", + "sha256:05c20b68e512166fddba59a918773ba002fdd77800cad9f55b59790030bab632", + "sha256:07b42215124aedecc6083f1ce6b7e5ec5b50047afa701f3442054373a6deb656", + "sha256:0e3c84e6c67eba89c2dbcee08504ba8644ab4284863452450520dad8f1e89b79", + "sha256:0e929169f9c090dae0646a011c8b058e5e5fb391466016b39d21745b48817fd7", + "sha256:1ab820665e67373de5802acae069a6a05567ae234ddb129f31d290fc3d1aa56d", + "sha256:25b4e5f22d3a37ddf3effc0710ba692cfc792c2b9edfb9c05aefe823256e84d5", + "sha256:2e68965192c4ea61fff1b81c14ff712fc7dc15d2bd120602e4a3494ea6584224", + "sha256:2f1a132f1c88724674271d636e6b7351477c27722f2ed789f719f9e3545a3d26", + "sha256:37e5438e1c78931df5d3c0c78ae049092877e5e9c02dd1ff5abb9cf27a5914ea", + "sha256:3a041b76d13706b7fff23b9fc83117c7b8fe8d5fe9e6be45eee72b9baa75f348", + "sha256:3a4f32116f8f72ecf2a29dabfb27b23ab7cdc0ba807e8459e59a93a9be9506f6", + "sha256:46c73e09ad374a6d876c599f2328161bcd95e280f84d2060cf57991dec5cfe76", + "sha256:46dd362c2f045095c920162e9307de5ffd0a1bfbba0a6e990b344366f55a30c1", + "sha256:4b186eb7d6ae7c06eb4392411189469e6a820da81447f46c0072a41c748ab73f", + "sha256:54fd1e83a184e19c598d5e70ba508196fd0bbdd676ce159feb412a4a6664f952", + "sha256:585fd452dd7782130d112f7ddf3473ffdd521414674c33876187e101b588738a", + "sha256:5cf3443199b83ed9e955f511b5b241fd3ae004e3cb81c58ec10f4fe47c7dce37", + "sha256:6a4d5ce640e37b0efcc8441caeea8f43a06addace2335bd11151bc02d2ee31f9", + "sha256:7df80d07818b385f3129180369079bd6934cf70469f99daaebfac89dca288359", + "sha256:806068d4f86cb06af37cd65821554f98240a19ce646d3cd24e1c33587f313eb8", + "sha256:830f57206cc96ed0ccf68304141fec9481a096c4d2e2831f311bde1c404401da", + "sha256:929006d3c2d923788ba153ad0de8ed2e5ed39fdbe8e7be21e2f22ed06c6783d3", + "sha256:9436dc58c123f07b230383083855593550c4d301d2532045a17ccf6eca505f6d", + "sha256:9dd6e9b1a913d096ac95d0399bd737e00f2af1e1594a787e00f7975778c8b2bf", + "sha256:ace010325c787c378afd7f7c1ac66b26313b3344628652eacd149bdd23c68841", + "sha256:b47a43177a5e65b771b80db71e7be76c0ba23cc8aa73eeeb089ed5219cdbe27d", + "sha256:b797515be8743b771aa868f83563f789bbd4b236659ba52243b735d80b29ed93", + "sha256:b7993704f1a4b204e71debe6095150d43b2ee6150fa4f44d6d966ec356a8d61f", + "sha256:d5c65bdf4484872c4af3150aeebe101ba560dcfb34488d9a8ff8dbcd21079647", + "sha256:d81eddcb12d608cc08081fa88d046c78afb1bf8107e6feab5d43503fea74a635", + "sha256:dc862056f76443a0db4509116c5cd480fe1b6a2d45512a653f9a855cc0517456", + "sha256:ecc771ab628ea281517e24fd2c52e8f31c41e66652d07599ad8818abaad38cda", + "sha256:f200755768dc19c6f4e2b672421e0ebb3dd54c38d5a4f262b872d8cfcc9e93b5", + "sha256:f21756997ad8ef815d8ef3d34edd98804ab5ea337feedcd62fb52d22bf531281", + "sha256:fc13a9524bc18b6fb6e0dbec3533ba0496bbed167c56d0aabefd965584557d80" ], "markers": "python_version >= '3.5'", - "version": "==4.7.6" + "version": "==5.1.0" }, "mypy": { "hashes": [ - "sha256:02ef476f6dcb86e6f502ae39a16b93285fef97e7f1ff22932b657d1ef1f28655", - "sha256:0d054ef16b071149917085f51f89555a576e2618d5d9dd70bd6eea6410af3ac9", - "sha256:19830b7dba7d5356d3e26e2427a2ec91c994cd92d983142cbd025ebe81d69cf3", - "sha256:1f7656b69974a6933e987ee8ffb951d836272d6c0f81d727f1d0e2696074d9e6", - "sha256:23488a14a83bca6e54402c2e6435467a4138785df93ec85aeff64c6170077fb0", - "sha256:23c7ff43fff4b0df93a186581885c8512bc50fc4d4910e0f838e35d6bb6b5e58", - "sha256:25c5750ba5609a0c7550b73a33deb314ecfb559c350bb050b655505e8aed4103", - "sha256:2ad53cf9c3adc43cf3bea0a7d01a2f2e86db9fe7596dfecb4496a5dda63cbb09", - "sha256:3fa7a477b9900be9b7dd4bab30a12759e5abe9586574ceb944bc29cddf8f0417", - "sha256:40b0f21484238269ae6a57200c807d80debc6459d444c0489a102d7c6a75fa56", - "sha256:4b21e5b1a70dfb972490035128f305c39bc4bc253f34e96a4adf9127cf943eb2", - "sha256:5a361d92635ad4ada1b1b2d3630fc2f53f2127d51cf2def9db83cba32e47c856", - "sha256:77a514ea15d3007d33a9e2157b0ba9c267496acf12a7f2b9b9f8446337aac5b0", - "sha256:855048b6feb6dfe09d3353466004490b1872887150c5bb5caad7838b57328cc8", - "sha256:9796a2ba7b4b538649caa5cecd398d873f4022ed2333ffde58eaf604c4d2cb27", - "sha256:98e02d56ebe93981c41211c05adb630d1d26c14195d04d95e49cd97dbc046dc5", - "sha256:b793b899f7cf563b1e7044a5c97361196b938e92f0a4343a5d27966a53d2ec71", - "sha256:d1ea5d12c8e2d266b5fb8c7a5d2e9c0219fedfeb493b7ed60cd350322384ac27", - "sha256:d2022bfadb7a5c2ef410d6a7c9763188afdb7f3533f22a0a32be10d571ee4bbe", - "sha256:d3348e7eb2eea2472db611486846742d5d52d1290576de99d59edeb7cd4a42ca", - "sha256:d744f72eb39f69312bc6c2abf8ff6656973120e2eb3f3ec4f758ed47e414a4bf", - "sha256:ef943c72a786b0f8d90fd76e9b39ce81fb7171172daf84bf43eaf937e9f220a9", - "sha256:f2899a3cbd394da157194f913a931edfd4be5f274a88041c9dc2d9cdcb1c315c" + "sha256:1021c241e8b6e1ca5a47e4d52601274ac078a89845cfde66c6d5f769819ffa1d", + "sha256:14d53cdd4cf93765aa747a7399f0961a365bcddf7855d9cef6306fa41de01c24", + "sha256:175f292f649a3af7082fe36620369ffc4661a71005aa9f8297ea473df5772046", + "sha256:26ae64555d480ad4b32a267d10cab7aec92ff44de35a7cd95b2b7cb8e64ebe3e", + "sha256:41fd1cf9bc0e1c19b9af13a6580ccb66c381a5ee2cf63ee5ebab747a4badeba3", + "sha256:5085e6f442003fa915aeb0a46d4da58128da69325d8213b4b35cc7054090aed5", + "sha256:58f27ebafe726a8e5ccb58d896451dd9a662a511a3188ff6a8a6a919142ecc20", + "sha256:6389af3e204975d6658de4fb8ac16f58c14e1bacc6142fee86d1b5b26aa52bda", + "sha256:724d36be56444f569c20a629d1d4ee0cb0ad666078d59bb84f8f887952511ca1", + "sha256:75838c649290d83a2b83a88288c1eb60fe7a05b36d46cbea9d22efc790002146", + "sha256:7b35ce03a289480d6544aac85fa3674f493f323d80ea7226410ed065cd46f206", + "sha256:85f7a343542dc8b1ed0a888cdd34dca56462654ef23aa673907305b260b3d746", + "sha256:86ebe67adf4d021b28c3f547da6aa2cce660b57f0432617af2cca932d4d378a6", + "sha256:8ee8c2472e96beb1045e9081de8e92f295b89ac10c4109afdf3a23ad6e644f3e", + "sha256:91781eff1f3f2607519c8b0e8518aad8498af1419e8442d5d0afb108059881fc", + "sha256:a692a8e7d07abe5f4b2dd32d731812a0175626a90a223d4b58f10f458747dd8a", + "sha256:a705a93670c8b74769496280d2fe6cd59961506c64f329bb179970ff1d24f9f8", + "sha256:c6e564f035d25c99fd2b863e13049744d96bd1947e3d3d2f16f5828864506763", + "sha256:cebca7fd333f90b61b3ef7f217ff75ce2e287482206ef4a8b18f32b49927b1a2", + "sha256:d6af646bd46f10d53834a8e8983e130e47d8ab2d4b7a97363e35b24e1d588947", + "sha256:e7aeaa763c7ab86d5b66ff27f68493d672e44c8099af636d433a7f3fa5596d40", + "sha256:eaa97b9ddd1dd9901a22a879491dbb951b5dec75c3b90032e2baa7336777363b", + "sha256:eb7a068e503be3543c4bd329c994103874fa543c1727ba5288393c21d912d795", + "sha256:f793e3dd95e166b66d50e7b63e69e58e88643d80a3dcc3bcd81368e0478b089c" ], "markers": "python_version >= '3.9'", - "version": "==0.971" + "version": "==0.982" }, "mypy-extensions": { "hashes": [ @@ -962,31 +1232,40 @@ }, "numpy": { "hashes": [ - "sha256:1408c3527a74a0209c781ac82bde2182b0f0bf54dea6e6a363fe0cc4488a7ce7", - "sha256:173f28921b15d341afadf6c3898a34f20a0569e4ad5435297ba262ee8941e77b", - "sha256:1865fdf51446839ca3fffaab172461f2b781163f6f395f1aed256b1ddc253622", - "sha256:3119daed207e9410eaf57dcf9591fdc68045f60483d94956bee0bfdcba790953", - "sha256:35590b9c33c0f1c9732b3231bb6a72d1e4f77872390c47d50a615686ae7ed3fd", - "sha256:37e5ebebb0eb54c5b4a9b04e6f3018e16b8ef257d26c8945925ba8105008e645", - "sha256:37ece2bd095e9781a7156852e43d18044fd0d742934833335599c583618181b9", - "sha256:3ab67966c8d45d55a2bdf40701536af6443763907086c0a6d1232688e27e5447", - "sha256:47f10ab202fe4d8495ff484b5561c65dd59177949ca07975663f4494f7269e3e", - "sha256:55df0f7483b822855af67e38fb3a526e787adf189383b4934305565d71c4b148", - "sha256:5d732d17b8a9061540a10fda5bfeabca5785700ab5469a5e9b93aca5e2d3a5fb", - "sha256:68b69f52e6545af010b76516f5daaef6173e73353e3295c5cb9f96c35d755641", - "sha256:7e8229f3687cdadba2c4faef39204feb51ef7c1a9b669247d49a24f3e2e1617c", - "sha256:8002574a6b46ac3b5739a003b5233376aeac5163e5dcd43dd7ad062f3e186129", - "sha256:876f60de09734fbcb4e27a97c9a286b51284df1326b1ac5f1bf0ad3678236b22", - "sha256:9ce242162015b7e88092dccd0e854548c0926b75c7924a3495e02c6067aba1f5", - "sha256:a35c4e64dfca659fe4d0f1421fc0f05b8ed1ca8c46fb73d9e5a7f175f85696bb", - "sha256:aeba539285dcf0a1ba755945865ec61240ede5432df41d6e29fab305f4384db2", - "sha256:b15c3f1ed08df4980e02cc79ee058b788a3d0bef2fb3c9ca90bb8cbd5b8a3a04", - "sha256:c2f91f88230042a130ceb1b496932aa717dcbd665350beb821534c5c7e15881c", - "sha256:d748ef349bfef2e1194b59da37ed5a29c19ea8d7e6342019921ba2ba4fd8b624", - "sha256:e0d7447679ae9a7124385ccf0ea990bb85bb869cef217e2ea6c844b6a6855073" + "sha256:1dbe1c91269f880e364526649a52eff93ac30035507ae980d2fed33aaee633ac", + "sha256:357768c2e4451ac241465157a3e929b265dfac85d9214074985b1786244f2ef3", + "sha256:3820724272f9913b597ccd13a467cc492a0da6b05df26ea09e78b171a0bb9da6", + "sha256:4391bd07606be175aafd267ef9bea87cf1b8210c787666ce82073b05f202add1", + "sha256:4aa48afdce4660b0076a00d80afa54e8a97cd49f457d68a4342d188a09451c1a", + "sha256:58459d3bad03343ac4b1b42ed14d571b8743dc80ccbf27444f266729df1d6f5b", + "sha256:5c3c8def4230e1b959671eb959083661b4a0d2e9af93ee339c7dada6759a9470", + "sha256:5f30427731561ce75d7048ac254dbe47a2ba576229250fb60f0fb74db96501a1", + "sha256:643843bcc1c50526b3a71cd2ee561cf0d8773f062c8cbaf9ffac9fdf573f83ab", + "sha256:67c261d6c0a9981820c3a149d255a76918278a6b03b6a036800359aba1256d46", + "sha256:67f21981ba2f9d7ba9ade60c9e8cbaa8cf8e9ae51673934480e45cf55e953673", + "sha256:6aaf96c7f8cebc220cdfc03f1d5a31952f027dda050e5a703a0d1c396075e3e7", + "sha256:7c4068a8c44014b2d55f3c3f574c376b2494ca9cc73d2f1bd692382b6dffe3db", + "sha256:7c7e5fa88d9ff656e067876e4736379cc962d185d5cd808014a8a928d529ef4e", + "sha256:7f5ae4f304257569ef3b948810816bc87c9146e8c446053539947eedeaa32786", + "sha256:82691fda7c3f77c90e62da69ae60b5ac08e87e775b09813559f8901a88266552", + "sha256:8737609c3bbdd48e380d463134a35ffad3b22dc56295eff6f79fd85bd0eeeb25", + "sha256:9f411b2c3f3d76bba0865b35a425157c5dcf54937f82bbeb3d3c180789dd66a6", + "sha256:a6be4cb0ef3b8c9250c19cc122267263093eee7edd4e3fa75395dfda8c17a8e2", + "sha256:bcb238c9c96c00d3085b264e5c1a1207672577b93fa666c3b14a45240b14123a", + "sha256:bf2ec4b75d0e9356edea834d1de42b31fe11f726a81dfb2c2112bc1eaa508fcf", + "sha256:d136337ae3cc69aa5e447e78d8e1514be8c3ec9b54264e680cf0b4bd9011574f", + "sha256:d4bf4d43077db55589ffc9009c0ba0a94fa4908b9586d6ccce2e0b164c86303c", + "sha256:d6a96eef20f639e6a97d23e57dd0c1b1069a7b4fd7027482a4c5c451cd7732f4", + "sha256:d9caa9d5e682102453d96a0ee10c7241b72859b01a941a397fd965f23b3e016b", + "sha256:dd1c8f6bd65d07d3810b90d02eba7997e32abbdf1277a481d698969e921a3be0", + "sha256:e31f0bb5928b793169b87e3d1e070f2342b22d5245c755e2b81caa29756246c3", + "sha256:ecb55251139706669fdec2ff073c98ef8e9a84473e51e716211b41aa0f18e656", + "sha256:ee5ec40fdd06d62fe5d4084bef4fd50fd4bb6bfd2bf519365f569dc470163ab0", + "sha256:f17e562de9edf691a42ddb1eb4a5541c20dd3f9e65b09ded2beb0799c0cf29bb", + "sha256:fdffbfb6832cd0b300995a2b08b8f6fa9f6e856d562800fea9182316d99c4e8e" ], "markers": "python_version >= '3.8'", - "version": "==1.23.1" + "version": "==1.21.6" }, "packaging": { "hashes": [ @@ -998,10 +1277,10 @@ }, "pathspec": { "hashes": [ - "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a", - "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1" + "sha256:46846318467efc4556ccfd27816e004270a9eeeeb4d062ce5e6fc7a87c573f93", + "sha256:7ace6161b621d31e7902eb6b5ae148d12cfd23f4a249b9ffb6b9fee12084323d" ], - "version": "==0.9.0" + "version": "==0.10.1" }, "platformdirs": { "hashes": [ @@ -1053,11 +1332,11 @@ }, "pygments": { "hashes": [ - "sha256:5eb116118f9612ff1ee89ac96437bb6b49e8f04d8a13b514ba26f620208e26eb", - "sha256:dc9c10fb40944260f6ed4c688ece0cd2048414940f1cea51b8b226318411c519" + "sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1", + "sha256:f643f331ab57ba3c9d89212ee4a2dabc6e94f117cf4eefde99a0574720d14c42" ], "markers": "python_version >= '3.6'", - "version": "==2.12.0" + "version": "==2.13.0" }, "pyparsing": { "hashes": [ @@ -1069,19 +1348,19 @@ }, "pytest": { "hashes": [ - "sha256:13d0e3ccfc2b6e26be000cb6568c832ba67ba32e719443bfe725814d3c42433c", - "sha256:a06a0425453864a270bc45e71f783330a7428defb4230fb5e6a731fde06ecd45" + "sha256:1377bda3466d70b55e3f5cecfa55bb7cfcf219c7964629b967c37cf0bda818b7", + "sha256:4f365fec2dff9c1162f834d9f18af1ba13062db0c708bf7b946f8a5c76180c39" ], - "markers": "python_version >= '3.6' and python_version < '3.10'", - "version": "==7.1.2" + "markers": "python_version < '3.10' and python_version >= '3.6'", + "version": "==7.1.3" }, "pytest-asyncio": { "hashes": [ - "sha256:7a97e37cfe1ed296e2e84941384bdd37c376453912d397ed39293e0916f521fa", - "sha256:ac4ebf3b6207259750bc32f4c1d8fcd7e79739edbc67ad0c58dd150b1d072fed" + "sha256:6d895b02432c028e6957d25fc936494e78c6305736e785d9fee408b1efbc7ff4", + "sha256:e0fe5dbea40516b661ef1bcfe0bd9461c2847c4ef4bb40012324f2454fb7d56d" ], "markers": "python_version >= '3.7'", - "version": "==0.19.0" + "version": "==0.17.2" }, "pytest-black": { "hashes": [ @@ -1092,11 +1371,11 @@ }, "pytest-cov": { "hashes": [ - "sha256:578d5d15ac4a25e5f961c938b85a05b09fdaae9deef3bb6de9a6e766622ca7a6", - "sha256:e7f0f5b1617d2210a2cabc266dfe2f4c75a8d32fb89eafb7ad9d06f6d076d470" + "sha256:2feb1b751d66a8bd934e5edfa2e961d11309dc37b73b0eabe73b5945fee20f6b", + "sha256:996b79efde6433cdbd0088872dbc5fb3ed7fe1578b68cdbba634f14bb8dd0470" ], "markers": "python_version >= '3.6'", - "version": "==3.0.0" + "version": "==4.0.0" }, "pytest-flake8": { "hashes": [ @@ -1107,28 +1386,29 @@ }, "pytest-mypy": { "hashes": [ - "sha256:9ffa3bf405c12c5c6be9e92e22bebb6ab2c91b9c32f45b0f0c93af473269ab5c", - "sha256:a2505fcf61f1c0c51f950d4623ea8ca2daf6fb2101a5603554bad2e130202083" + "sha256:1fa55723a4bf1d054fcba1c3bd694215a2a65cc95ab10164f5808afd893f3b11", + "sha256:6e68e8eb7ceeb7d1c83a1590912f784879f037b51adfb9c17b95c6b2fc57466b" ], "markers": "python_version >= '3.5'", - "version": "==0.9.1" + "version": "==0.8.1" }, "pytest-pydocstyle": { "hashes": [ - "sha256:1f2d937349cfeb4965c530a0c0f2442b48c03299558db435b65549719510d32b" + "sha256:58228aef833dc4ed0a3a3216ebc8586f9798c7d0a98832eaf70a17269f773d4e" ], "markers": "python_version ~= '3.7'", - "version": "==2.3.0" + "version": "==2.3.1" }, "pytz": { "hashes": [ - "sha256:bc824559e43e8ab983426a49525079d186b25372ff63aa3430ccd527d95edc3a", - "sha256:d9b245e63af49c4e51afdec5402f56b99c0cb483a84a12bb8b7db980386baade" + "sha256:2c0784747071402c6e99f0bafdb7da0fa22645f06554c7ae06bf6358897e9c91", + "sha256:48ce799d83b6f8aab2020e369b627446696619e79645419610b9facd909b3174" ], - "version": "==2022.2" + "version": "==2022.4" }, "pyyaml": { "hashes": [ + "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf", "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293", "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b", "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57", @@ -1140,26 +1420,32 @@ "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287", "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513", "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0", + "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782", "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0", "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92", "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f", "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2", "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc", + "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1", "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c", "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86", "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4", "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c", "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34", "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b", + "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d", "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c", "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb", + "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7", "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737", "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3", "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d", + "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358", "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53", "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78", "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803", "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a", + "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f", "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174", "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5" ], @@ -1201,7 +1487,7 @@ "sha256:f1a25a61495b6f7bb986accc5b597a3541d9bd3ef0016f50be16dbb32025b302", "sha256:fa411b1d8f371d3a49d31b0789eb6da2537dadbb2aef74a43aa99a78195c3f76" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==19.0.2" }, "requests": { @@ -1251,11 +1537,11 @@ }, "sphinx": { "hashes": [ - "sha256:309a8da80cb6da9f4713438e5b55861877d5d7976b69d87e336733637ea12693", - "sha256:ba3224a4e206e1fbdecf98a4fae4992ef9b24b85ebf7b584bb340156eaf08d89" + "sha256:7bf8ca9637a4ee15af412d1a1d9689fec70523a68ca9bb9127c2f3eeb344e2e6", + "sha256:ebf612653238bcc8f4359627a9b7ce44ede6fdd75d9d30f68255c7383d3a6226" ], "markers": "python_version >= '3.6'", - "version": "==5.1.1" + "version": "==4.5.0" }, "sphinx-rtd-theme": { "hashes": [ @@ -1267,6 +1553,7 @@ }, "sphinx-rtd-theme-github-versions": { "hashes": [ + "sha256:0df27ae9a9cd902468c808dbee5a43f4db8ce43cbcf2ecc78d2fe47698bb0ded", "sha256:23018e51a5d27ef4f69dd86314f73b19088f2cfd91c74a24db1517832233dc07", "sha256:7f67ba75cac8ddd51326f0b2f314bf653e72b4c96a5adc6e779acc8c01da81ab" ], @@ -1323,7 +1610,7 @@ }, "tickit": { "git": "https://github.com/dls-controls/tickit.git", - "ref": "eac7366430c094c811b68bb8bce17a356844b780" + "ref": "13d1e3a973c3330231a56815663944df89894afa" }, "tickit-devices": { "editable": true, @@ -1334,7 +1621,7 @@ "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f" ], - "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'", + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==0.10.2" }, "tomli": { @@ -1353,99 +1640,77 @@ }, "types-pyyaml": { "hashes": [ - "sha256:7f7da2fd11e9bc1e5e9eb3ea1be84f4849747017a59fc2eee0ea34ed1147c2e0", - "sha256:8f890028123607379c63550179ddaec4517dc751f4c527a52bb61934bf495989" + "sha256:2e7b81b2b7af751634425107b986086c6ba7cb61270a43a5c290c58be8cdbc3a", + "sha256:bca83cbfc0be48600a8abf1e3d87fb762a91e6d35d724029a3321dd2dce2ceb1" ], - "version": "==6.0.11" + "version": "==5.4.3" }, "typing-extensions": { "hashes": [ - "sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02", - "sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6" + "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa", + "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e" ], - "markers": "python_version >= '3.7'", - "version": "==4.3.0" + "markers": "python_version < '3.10'", + "version": "==4.4.0" }, "urllib3": { "hashes": [ - "sha256:c33ccba33c819596124764c23a97d25f32b28433ba0dedeb77d873a38722c9bc", - "sha256:ea6e8fb210b19d950fab93b60c9009226c63a28808bc8386e05301e25883ac0a" + "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e", + "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' and python_version < '4'", - "version": "==1.26.11" + "version": "==1.26.12" }, "yarl": { "hashes": [ - "sha256:076eede537ab978b605f41db79a56cad2e7efeea2aa6e0fa8f05a26c24a034fb", - "sha256:07b21e274de4c637f3e3b7104694e53260b5fc10d51fb3ec5fed1da8e0f754e3", - "sha256:0ab5a138211c1c366404d912824bdcf5545ccba5b3ff52c42c4af4cbdc2c5035", - "sha256:0c03f456522d1ec815893d85fccb5def01ffaa74c1b16ff30f8aaa03eb21e453", - "sha256:12768232751689c1a89b0376a96a32bc7633c08da45ad985d0c49ede691f5c0d", - "sha256:19cd801d6f983918a3f3a39f3a45b553c015c5aac92ccd1fac619bd74beece4a", - "sha256:1ca7e596c55bd675432b11320b4eacc62310c2145d6801a1f8e9ad160685a231", - "sha256:1e4808f996ca39a6463f45182e2af2fae55e2560be586d447ce8016f389f626f", - "sha256:205904cffd69ae972a1707a1bd3ea7cded594b1d773a0ce66714edf17833cdae", - "sha256:20df6ff4089bc86e4a66e3b1380460f864df3dd9dccaf88d6b3385d24405893b", - "sha256:21ac44b763e0eec15746a3d440f5e09ad2ecc8b5f6dcd3ea8cb4773d6d4703e3", - "sha256:29e256649f42771829974e742061c3501cc50cf16e63f91ed8d1bf98242e5507", - "sha256:2d800b9c2eaf0684c08be5f50e52bfa2aa920e7163c2ea43f4f431e829b4f0fd", - "sha256:2d93a049d29df172f48bcb09acf9226318e712ce67374f893b460b42cc1380ae", - "sha256:31a9a04ecccd6b03e2b0e12e82131f1488dea5555a13a4d32f064e22a6003cfe", - "sha256:3d1a50e461615747dd93c099f297c1994d472b0f4d2db8a64e55b1edf704ec1c", - "sha256:449c957ffc6bc2309e1fbe67ab7d2c1efca89d3f4912baeb8ead207bb3cc1cd4", - "sha256:4a88510731cd8d4befaba5fbd734a7dd914de5ab8132a5b3dde0bbd6c9476c64", - "sha256:4c322cbaa4ed78a8aac89b2174a6df398faf50e5fc12c4c191c40c59d5e28357", - "sha256:5395da939ffa959974577eff2cbfc24b004a2fb6c346918f39966a5786874e54", - "sha256:5587bba41399854703212b87071c6d8638fa6e61656385875f8c6dff92b2e461", - "sha256:56c11efb0a89700987d05597b08a1efcd78d74c52febe530126785e1b1a285f4", - "sha256:5999c4662631cb798496535afbd837a102859568adc67d75d2045e31ec3ac497", - "sha256:59ddd85a1214862ce7c7c66457f05543b6a275b70a65de366030d56159a979f0", - "sha256:6347f1a58e658b97b0a0d1ff7658a03cb79bdbda0331603bed24dd7054a6dea1", - "sha256:6628d750041550c5d9da50bb40b5cf28a2e63b9388bac10fedd4f19236ef4957", - "sha256:6afb336e23a793cd3b6476c30f030a0d4c7539cd81649683b5e0c1b0ab0bf350", - "sha256:6c8148e0b52bf9535c40c48faebb00cb294ee577ca069d21bd5c48d302a83780", - "sha256:76577f13333b4fe345c3704811ac7509b31499132ff0181f25ee26619de2c843", - "sha256:7c0da7e44d0c9108d8b98469338705e07f4bb7dab96dbd8fa4e91b337db42548", - "sha256:7de89c8456525650ffa2bb56a3eee6af891e98f498babd43ae307bd42dca98f6", - "sha256:7ec362167e2c9fd178f82f252b6d97669d7245695dc057ee182118042026da40", - "sha256:7fce6cbc6c170ede0221cc8c91b285f7f3c8b9fe28283b51885ff621bbe0f8ee", - "sha256:85cba594433915d5c9a0d14b24cfba0339f57a2fff203a5d4fd070e593307d0b", - "sha256:8b0af1cf36b93cee99a31a545fe91d08223e64390c5ecc5e94c39511832a4bb6", - "sha256:9130ddf1ae9978abe63808b6b60a897e41fccb834408cde79522feb37fb72fb0", - "sha256:99449cd5366fe4608e7226c6cae80873296dfa0cde45d9b498fefa1de315a09e", - "sha256:9de955d98e02fab288c7718662afb33aab64212ecb368c5dc866d9a57bf48880", - "sha256:a0fb2cb4204ddb456a8e32381f9a90000429489a25f64e817e6ff94879d432fc", - "sha256:a165442348c211b5dea67c0206fc61366212d7082ba8118c8c5c1c853ea4d82e", - "sha256:ab2a60d57ca88e1d4ca34a10e9fb4ab2ac5ad315543351de3a612bbb0560bead", - "sha256:abc06b97407868ef38f3d172762f4069323de52f2b70d133d096a48d72215d28", - "sha256:af887845b8c2e060eb5605ff72b6f2dd2aab7a761379373fd89d314f4752abbf", - "sha256:b19255dde4b4f4c32e012038f2c169bb72e7f081552bea4641cab4d88bc409dd", - "sha256:b3ded839a5c5608eec8b6f9ae9a62cb22cd037ea97c627f38ae0841a48f09eae", - "sha256:c1445a0c562ed561d06d8cbc5c8916c6008a31c60bc3655cdd2de1d3bf5174a0", - "sha256:d0272228fabe78ce00a3365ffffd6f643f57a91043e119c289aaba202f4095b0", - "sha256:d0b51530877d3ad7a8d47b2fff0c8df3b8f3b8deddf057379ba50b13df2a5eae", - "sha256:d0f77539733e0ec2475ddcd4e26777d08996f8cd55d2aef82ec4d3896687abda", - "sha256:d2b8f245dad9e331540c350285910b20dd913dc86d4ee410c11d48523c4fd546", - "sha256:dd032e8422a52e5a4860e062eb84ac94ea08861d334a4bcaf142a63ce8ad4802", - "sha256:de49d77e968de6626ba7ef4472323f9d2e5a56c1d85b7c0e2a190b2173d3b9be", - "sha256:de839c3a1826a909fdbfe05f6fe2167c4ab033f1133757b5936efe2f84904c07", - "sha256:e80ed5a9939ceb6fda42811542f31c8602be336b1fb977bccb012e83da7e4936", - "sha256:ea30a42dc94d42f2ba4d0f7c0ffb4f4f9baa1b23045910c0c32df9c9902cb272", - "sha256:ea513a25976d21733bff523e0ca836ef1679630ef4ad22d46987d04b372d57fc", - "sha256:ed19b74e81b10b592084a5ad1e70f845f0aacb57577018d31de064e71ffa267a", - "sha256:f5af52738e225fcc526ae64071b7e5342abe03f42e0e8918227b38c9aa711e28", - "sha256:fae37373155f5ef9b403ab48af5136ae9851151f7aacd9926251ab26b953118b" + "sha256:00d7ad91b6583602eb9c1d085a2cf281ada267e9a197e8b7cae487dadbfa293e", + "sha256:0355a701b3998dcd832d0dc47cc5dedf3874f966ac7f870e0f3a6788d802d434", + "sha256:15263c3b0b47968c1d90daa89f21fcc889bb4b1aac5555580d74565de6836366", + "sha256:2ce4c621d21326a4a5500c25031e102af589edb50c09b321049e388b3934eec3", + "sha256:31ede6e8c4329fb81c86706ba8f6bf661a924b53ba191b27aa5fcee5714d18ec", + "sha256:324ba3d3c6fee56e2e0b0d09bf5c73824b9f08234339d2b788af65e60040c959", + "sha256:329412812ecfc94a57cd37c9d547579510a9e83c516bc069470db5f75684629e", + "sha256:4736eaee5626db8d9cda9eb5282028cc834e2aeb194e0d8b50217d707e98bb5c", + "sha256:4953fb0b4fdb7e08b2f3b3be80a00d28c5c8a2056bb066169de00e6501b986b6", + "sha256:4c5bcfc3ed226bf6419f7a33982fb4b8ec2e45785a0561eb99274ebbf09fdd6a", + "sha256:547f7665ad50fa8563150ed079f8e805e63dd85def6674c97efd78eed6c224a6", + "sha256:5b883e458058f8d6099e4420f0cc2567989032b5f34b271c0827de9f1079a424", + "sha256:63f90b20ca654b3ecc7a8d62c03ffa46999595f0167d6450fa8383bab252987e", + "sha256:68dc568889b1c13f1e4745c96b931cc94fdd0defe92a72c2b8ce01091b22e35f", + "sha256:69ee97c71fee1f63d04c945f56d5d726483c4762845400a6795a3b75d56b6c50", + "sha256:6d6283d8e0631b617edf0fd726353cb76630b83a089a40933043894e7f6721e2", + "sha256:72a660bdd24497e3e84f5519e57a9ee9220b6f3ac4d45056961bf22838ce20cc", + "sha256:73494d5b71099ae8cb8754f1df131c11d433b387efab7b51849e7e1e851f07a4", + "sha256:7356644cbed76119d0b6bd32ffba704d30d747e0c217109d7979a7bc36c4d970", + "sha256:8a9066529240171b68893d60dca86a763eae2139dd42f42106b03cf4b426bf10", + "sha256:8aa3decd5e0e852dc68335abf5478a518b41bf2ab2f330fe44916399efedfae0", + "sha256:97b5bdc450d63c3ba30a127d018b866ea94e65655efaf889ebeabc20f7d12406", + "sha256:9ede61b0854e267fd565e7527e2f2eb3ef8858b301319be0604177690e1a3896", + "sha256:b2e9a456c121e26d13c29251f8267541bd75e6a1ccf9e859179701c36a078643", + "sha256:b5dfc9a40c198334f4f3f55880ecf910adebdcb2a0b9a9c23c9345faa9185721", + "sha256:bafb450deef6861815ed579c7a6113a879a6ef58aed4c3a4be54400ae8871478", + "sha256:c49ff66d479d38ab863c50f7bb27dee97c6627c5fe60697de15529da9c3de724", + "sha256:ce3beb46a72d9f2190f9e1027886bfc513702d748047b548b05dab7dfb584d2e", + "sha256:d26608cf178efb8faa5ff0f2d2e77c208f471c5a3709e577a7b3fd0445703ac8", + "sha256:d597767fcd2c3dc49d6eea360c458b65643d1e4dbed91361cf5e36e53c1f8c96", + "sha256:d5c32c82990e4ac4d8150fd7652b972216b204de4e83a122546dce571c1bdf25", + "sha256:d8d07d102f17b68966e2de0e07bfd6e139c7c02ef06d3a0f8d2f0f055e13bb76", + "sha256:e46fba844f4895b36f4c398c5af062a9808d1f26b2999c58909517384d5deda2", + "sha256:e6b5460dc5ad42ad2b36cca524491dfcaffbfd9c8df50508bddc354e787b8dc2", + "sha256:f040bcc6725c821a4c0665f3aa96a4d0805a7aaf2caf266d256b8ed71b9f041c", + "sha256:f0b059678fd549c66b89bed03efcabb009075bd131c248ecdf087bdb6faba24a", + "sha256:fcbb48a93e8699eae920f8d92f7160c03567b421bc17362a9ffbbd706a816f71" ], "markers": "python_version >= '3.7'", - "version": "==1.8.1" + "version": "==1.6.3" }, "zipp": { "hashes": [ - "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2", - "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009" + "sha256:3a7af91c3db40ec72dd9d154ae18e008c69efe8ca88dde4f9a731bb82fe2f9eb", + "sha256:972cfa31bc2fedd3fa838a51e9bc7e64b7fb725a8c00e7431554311f180e9980" ], "markers": "python_version >= '3.7'", - "version": "==3.8.1" + "version": "==3.9.0" } } } From bdfb0981c3d2d88db52a5735b47d59811a95c13a Mon Sep 17 00:00:00 2001 From: Eva Lott Date: Thu, 1 Dec 2022 14:25:22 +0000 Subject: [PATCH 12/16] #26 Added the logic to control the waveform --- s03_configs/oav.yaml | 8 - tickit_devices/oav/db_files/DI-IOC.db | 338 +- tickit_devices/oav/db_files/DI-OAV.db | 1857 ++++++----- tickit_devices/oav/db_files/EA-BL.db | 2 +- tickit_devices/oav/db_files/EA-FSCN.db | 3632 +++++++++++----------- tickit_devices/oav/db_files/EA-OAV.db | 2 +- tickit_devices/oav/db_files/MO-IOC.db | 35 +- tickit_devices/oav/oav_edge_detection.py | 239 +- 8 files changed, 3140 insertions(+), 2973 deletions(-) diff --git a/s03_configs/oav.yaml b/s03_configs/oav.yaml index 47960c1b..4fc2eba8 100644 --- a/s03_configs/oav.yaml +++ b/s03_configs/oav.yaml @@ -1,7 +1,3 @@ -- tickit_devices.oav.oav_edge_detection.OAV_MO_IOC: - name: oav_mo_ioc - inputs: {} - port: 25566 - tickit_devices.oav.oav_edge_detection.OAV_DI_OAV: name: oav_di_oav inputs: {} @@ -18,7 +14,3 @@ name: oav_ea_oav inputs: {} port: 25562 -- tickit_devices.oav.oav_edge_detection.OAV_EA_BL: - name: oav_ea_bl - inputs: {} - port: 25561 diff --git a/tickit_devices/oav/db_files/DI-IOC.db b/tickit_devices/oav/db_files/DI-IOC.db index c9daa00f..d2337d25 100755 --- a/tickit_devices/oav/db_files/DI-IOC.db +++ b/tickit_devices/oav/db_files/DI-IOC.db @@ -2,9 +2,9 @@ #% macro, IOC, Device prefix # Used by Channel Access Security to determine access to this IOC. -record(mbbo, "S03SIM-DI-IOC-01:ACCESS") +record(mbbo, "BL03S-DI-IOC-01:ACCESS") { - field(DESC, "S03SIM-DI-IOC-01 Acc Mode") + field(DESC, "BL03S-DI-IOC-01 Acc Mode") field(PINI, "YES") field(ZRST, "Running") field(ZRSV, "NO_ALARM") @@ -16,35 +16,35 @@ record(mbbo, "S03SIM-DI-IOC-01:ACCESS") field(THSV, "MAJOR") info(autosaveFields, "VAL") } -record(stringin, "S03SIM-DI-IOC-01:STARTTOD") +record(stringin, "BL03S-DI-IOC-01:STARTTOD") { field(DESC, "Time and date of startup") field(DTYP, "Soft Timestamp") field(PINI, "YES") field(INP, "@%Y-%m-%d %H:%M:%S") } -record(stringin, "S03SIM-DI-IOC-01:TOD") +record(stringin, "BL03S-DI-IOC-01:TOD") { field(DESC, "Current time and date") field(DTYP, "Soft Timestamp") field(SCAN, "1 second") field(INP, "@%Y-%m-%d %H:%M:%S") } -record(calcout, "S03SIM-DI-IOC-01:HEARTBEAT") +record(calcout, "BL03S-DI-IOC-01:HEARTBEAT") { field(DESC, "1 Hz counter since startup") field(CALC, "(A<2147483647)?A+1:1") field(SCAN, "1 second") - field(INPA, "S03SIM-DI-IOC-01:HEARTBEAT") + field(INPA, "BL03S-DI-IOC-01:HEARTBEAT") } # if autosave is working, START_CNT creates a running count of # number of times the IOC was started. -record(calcout, "S03SIM-DI-IOC-01:START_CNT") +record(calcout, "BL03S-DI-IOC-01:START_CNT") { field(DESC, "Increments at startup") field(CALC, "A+1") field(PINI, "YES") - field(INPA, "S03SIM-DI-IOC-01:START_CNT") + field(INPA, "BL03S-DI-IOC-01:START_CNT") info(autosaveFields_pass0, "VAL") } # @@ -52,16 +52,16 @@ record(calcout, "S03SIM-DI-IOC-01:START_CNT") # PV updates the Access Security mechanism dynamically. # The .acf file is re-read. # -record( sub, "S03SIM-DI-IOC-01:READACF") +record( sub, "BL03S-DI-IOC-01:READACF") { - field( DESC, "S03SIM-DI-IOC-01 ACF Update") + field( DESC, "BL03S-DI-IOC-01 ACF Update") field( INAM, "asSubInit") field( SNAM, "asSubProcess") field( BRSV, "INVALID") } -record(sub, "S03SIM-DI-IOC-01:SYSRESET") +record(sub, "BL03S-DI-IOC-01:SYSRESET") { - alias("S03SIM-DI-IOC-01:SysReset") + alias("BL03S-DI-IOC-01:SysReset") field(DESC, "IOC Restart" ) field(SNAM, "rebootProc") field(BRSV,"INVALID") @@ -70,7 +70,7 @@ record(sub, "S03SIM-DI-IOC-01:SYSRESET") #% archiver 1 Monitor #% alh -record(ai, "S03SIM-DI-IOC-01:CA_CLNT_CNT") { +record(ai, "BL03S-DI-IOC-01:CA_CLNT_CNT") { field(DESC, "Number of CA Clients") field(SCAN, "I/O Intr") field(DTYP, "IOC stats") @@ -85,7 +85,7 @@ record(ai, "S03SIM-DI-IOC-01:CA_CLNT_CNT") { #% archiver 1 Monitor #% alh -record(ai, "S03SIM-DI-IOC-01:CA_CONN_CNT") { +record(ai, "BL03S-DI-IOC-01:CA_CONN_CNT") { field(DESC, "Number of CA Connections") field(SCAN, "I/O Intr") field(DTYP, "IOC stats") @@ -98,35 +98,35 @@ record(ai, "S03SIM-DI-IOC-01:CA_CONN_CNT") { info(autosaveFields_pass0, "HOPR LOPR HIHI HIGH LOW LOLO HHSV HSV LSV LLSV") } -record(ai, "S03SIM-DI-IOC-01:RECORD_CNT") { +record(ai, "BL03S-DI-IOC-01:RECORD_CNT") { field(DESC, "Number of Records") field(PINI, "YES") field(DTYP, "IOC stats") field(INP, "@records") } -record(ai, "S03SIM-DI-IOC-01:FD_MAX") { +record(ai, "BL03S-DI-IOC-01:FD_MAX") { field(DESC, "Max File Descriptors") field(PINI, "YES") field(DTYP, "IOC stats") field(INP, "@maxfd") } -record(ai, "S03SIM-DI-IOC-01:FD_CNT") { +record(ai, "BL03S-DI-IOC-01:FD_CNT") { field(DESC, "Allocated File Descriptors") field(SCAN, "I/O Intr") field(DTYP, "IOC stats") - field(FLNK, "S03SIM-DI-IOC-01:FD_FREE PP MS") + field(FLNK, "BL03S-DI-IOC-01:FD_FREE PP MS") field(INP, "@fd") } #% archiver 1 Monitor #% alh -record(calc, "S03SIM-DI-IOC-01:FD_FREE") { +record(calc, "BL03S-DI-IOC-01:FD_FREE") { field(DESC, "Available FDs") field(CALC, "B>0?B-A:C") - field(INPA, "S03SIM-DI-IOC-01:FD_CNT NPP MS") - field(INPB, "S03SIM-DI-IOC-01:FD_MAX NPP MS") + field(INPA, "BL03S-DI-IOC-01:FD_CNT NPP MS") + field(INPB, "BL03S-DI-IOC-01:FD_MAX NPP MS") field(INPC, "1000") field(HOPR, "150") field(LOLO, "5") @@ -137,7 +137,7 @@ record(calc, "S03SIM-DI-IOC-01:FD_FREE") { } #% archiver 1 Monitor -record(ai, "S03SIM-DI-IOC-01:SYS_CPU_LOAD") { +record(ai, "BL03S-DI-IOC-01:SYS_CPU_LOAD") { field(DESC, "System CPU Load") field(SCAN, "I/O Intr") field(DTYP, "IOC stats") @@ -154,8 +154,8 @@ record(ai, "S03SIM-DI-IOC-01:SYS_CPU_LOAD") { #% archiver 1 Monitor #% alh -record(ai, "S03SIM-DI-IOC-01:IOC_CPU_LOAD") { - alias("S03SIM-DI-IOC-01:LOAD") +record(ai, "BL03S-DI-IOC-01:IOC_CPU_LOAD") { + alias("BL03S-DI-IOC-01:LOAD") field(DESC, "IOC CPU Load") field(SCAN, "I/O Intr") field(DTYP, "IOC stats") @@ -170,7 +170,7 @@ record(ai, "S03SIM-DI-IOC-01:IOC_CPU_LOAD") { info(autosaveFields_pass0, "HOPR LOPR HIHI HIGH LOW LOLO HHSV HSV LSV LLSV") } -record(ai, "S03SIM-DI-IOC-01:CPU_CNT") { +record(ai, "BL03S-DI-IOC-01:CPU_CNT") { field(DESC, "Number of CPUs") field(DTYP, "IOC stats") field(INP, "@no_of_cpus") @@ -179,7 +179,7 @@ record(ai, "S03SIM-DI-IOC-01:CPU_CNT") { #% archiver 1 Monitor #% alh -record(ai, "S03SIM-DI-IOC-01:SUSP_TASK_CNT") { +record(ai, "BL03S-DI-IOC-01:SUSP_TASK_CNT") { field(DESC, "Number Suspended Tasks") field(SCAN, "I/O Intr") field(DTYP, "IOC stats") @@ -190,7 +190,7 @@ record(ai, "S03SIM-DI-IOC-01:SUSP_TASK_CNT") { } #% archiver 1 Monitor -record(ai, "S03SIM-DI-IOC-01:MEM_USED") { +record(ai, "BL03S-DI-IOC-01:MEM_USED") { field(DESC, "Allocated Memory") field(SCAN, "I/O Intr") field(DTYP, "IOC stats") @@ -199,7 +199,7 @@ record(ai, "S03SIM-DI-IOC-01:MEM_USED") { } #% archiver 1 Monitor -record(ai, "S03SIM-DI-IOC-01:MEM_FREE") { +record(ai, "BL03S-DI-IOC-01:MEM_FREE") { field(DESC, "Free Memory") field(SCAN, "I/O Intr") field(DTYP, "IOC stats") @@ -210,7 +210,7 @@ record(ai, "S03SIM-DI-IOC-01:MEM_FREE") { info(autosaveFields_pass0, "HOPR LOPR LOW LOLO LSV LLSV") } -record(ai, "S03SIM-DI-IOC-01:MEM_MAX") { +record(ai, "BL03S-DI-IOC-01:MEM_MAX") { field(DESC, "Maximum Memory") field(SCAN, "I/O Intr") field(DTYP, "IOC stats") @@ -218,7 +218,7 @@ record(ai, "S03SIM-DI-IOC-01:MEM_MAX") { field(EGU, "byte") } -record(ao, "S03SIM-DI-IOC-01:CA_UPD_TIME") { +record(ao, "BL03S-DI-IOC-01:CA_UPD_TIME") { field(DESC, "CA Check Update Period") field(DTYP, "IOC stats") field(OUT, "@ca_scan_rate") @@ -230,7 +230,7 @@ record(ao, "S03SIM-DI-IOC-01:CA_UPD_TIME") { field(PINI, "YES") } -record(ao, "S03SIM-DI-IOC-01:FD_UPD_TIME") { +record(ao, "BL03S-DI-IOC-01:FD_UPD_TIME") { field(DESC, "FD Check Update Period") field(DTYP, "IOC stats") field(OUT, "@fd_scan_rate") @@ -242,7 +242,7 @@ record(ao, "S03SIM-DI-IOC-01:FD_UPD_TIME") { field(PINI, "YES") } -record(ao, "S03SIM-DI-IOC-01:LOAD_UPD_TIME") { +record(ao, "BL03S-DI-IOC-01:LOAD_UPD_TIME") { field(DESC, "CPU Check Update Period") field(DTYP, "IOC stats") field(OUT, "@cpu_scan_rate") @@ -254,7 +254,7 @@ record(ao, "S03SIM-DI-IOC-01:LOAD_UPD_TIME") { field(PINI, "YES") } -record(ao, "S03SIM-DI-IOC-01:MEM_UPD_TIME") { +record(ao, "BL03S-DI-IOC-01:MEM_UPD_TIME") { field(DESC, "Memory Check Update Period") field(DTYP, "IOC stats") field(OUT, "@memory_scan_rate") @@ -266,21 +266,21 @@ record(ao, "S03SIM-DI-IOC-01:MEM_UPD_TIME") { field(PINI, "YES") } -record(stringin, "S03SIM-DI-IOC-01:ST_SCRIPT1") { +record(stringin, "BL03S-DI-IOC-01:ST_SCRIPT1") { field(DESC, "Startup Script Part1") field(DTYP, "IOC stats") field(INP, "@startup_script_1") field(PINI, "YES") } -record(stringin, "S03SIM-DI-IOC-01:ST_SCRIPT2") { +record(stringin, "BL03S-DI-IOC-01:ST_SCRIPT2") { field(DESC, "Startup Script Part2") field(DTYP, "IOC stats") field(INP, "@startup_script_2") field(PINI, "YES") } -record(waveform, "S03SIM-DI-IOC-01:ST_SCRIPT") { +record(waveform, "BL03S-DI-IOC-01:ST_SCRIPT") { field(DESC, "Startup Script") field(DTYP, "IOC stats") field(INP, "@startup_script") @@ -289,21 +289,21 @@ record(waveform, "S03SIM-DI-IOC-01:ST_SCRIPT") { field(PINI, "YES") } -record(stringin, "S03SIM-DI-IOC-01:KERNEL_VERS") { +record(stringin, "BL03S-DI-IOC-01:KERNEL_VERS") { field(DESC, "Kernel Version") field(DTYP, "IOC stats") field(INP, "@kernel_ver") field(PINI, "YES") } -record(stringin, "S03SIM-DI-IOC-01:EPICS_VERS") { +record(stringin, "BL03S-DI-IOC-01:EPICS_VERS") { field(DESC, "EPICS Version") field(DTYP, "IOC stats") field(INP, "@epics_ver") field(PINI, "YES") } -record(waveform, "S03SIM-DI-IOC-01:EPICS_VERSION") { +record(waveform, "BL03S-DI-IOC-01:EPICS_VERSION") { field(DESC, "EPICS Version") field(DTYP, "IOC stats") field(INP, "@epics_ver") @@ -312,28 +312,28 @@ record(waveform, "S03SIM-DI-IOC-01:EPICS_VERSION") { field(PINI, "YES") } -record(stringin, "S03SIM-DI-IOC-01:HOSTNAME") { +record(stringin, "BL03S-DI-IOC-01:HOSTNAME") { field(DESC, "Host Name") field(DTYP, "IOC stats") field(INP, "@hostname") field(PINI, "YES") } -record(stringin, "S03SIM-DI-IOC-01:APP_DIR1") { +record(stringin, "BL03S-DI-IOC-01:APP_DIR1") { field(DESC, "Application Directory Part 1") field(DTYP, "IOC stats") field(INP, "@pwd1") field(PINI, "YES") } -record(stringin, "S03SIM-DI-IOC-01:APP_DIR2") { +record(stringin, "BL03S-DI-IOC-01:APP_DIR2") { field(DESC, "Application Directory Part 2") field(DTYP, "IOC stats") field(INP, "@pwd2") field(PINI, "YES") } -record(waveform, "S03SIM-DI-IOC-01:APP_DIR") { +record(waveform, "BL03S-DI-IOC-01:APP_DIR") { field(DESC, "Application Directory") field(DTYP, "IOC stats") field(INP, "@pwd") @@ -342,7 +342,7 @@ record(waveform, "S03SIM-DI-IOC-01:APP_DIR") { field(PINI, "YES") } -record(stringin, "S03SIM-DI-IOC-01:UPTIME") { +record(stringin, "BL03S-DI-IOC-01:UPTIME") { field(DESC, "Elapsed Time since Start") field(SCAN, "1 second") field(DTYP, "IOC stats") @@ -350,41 +350,41 @@ record(stringin, "S03SIM-DI-IOC-01:UPTIME") { field(PINI, "YES") } -record(stringin, "S03SIM-DI-IOC-01:ENGINEER") { +record(stringin, "BL03S-DI-IOC-01:ENGINEER") { field(DESC, "Engineer") field(DTYP, "IOC stats") field(INP, "@engineer") field(PINI, "YES") } -record(stringin, "S03SIM-DI-IOC-01:LOCATION") { +record(stringin, "BL03S-DI-IOC-01:LOCATION") { field(DESC, "Location") field(DTYP, "IOC stats") field(INP, "@location") field(PINI, "YES") } -record(ai, "S03SIM-DI-IOC-01:PROCESS_ID") { +record(ai, "BL03S-DI-IOC-01:PROCESS_ID") { field(DESC, "Process ID") field(PINI, "YES") field(DTYP, "IOC stats") field(INP, "@proc_id") } -record(ai, "S03SIM-DI-IOC-01:PARENT_ID") { +record(ai, "BL03S-DI-IOC-01:PARENT_ID") { field(DESC, "Parent Process ID") field(PINI, "YES") field(DTYP, "IOC stats") field(INP, "@parent_proc_id") } -record(stringin, "S03SIM-DI-IOC-01:DLSVER") { +record(stringin, "BL03S-DI-IOC-01:DLSVER") { field(DESC, "IOC version") field(DTYP, "IOC stats") field(INP, "@dlsver") field(PINI, "YES") } -record(ai, "S03SIM-DI-IOC-01:GTIM_TIME") { +record(ai, "BL03S-DI-IOC-01:GTIM_TIME") { field(DESC, "Gen Time Secs since 1990") field(SCAN, "1 second") field(DTYP, "General Time") @@ -393,7 +393,7 @@ record(ai, "S03SIM-DI-IOC-01:GTIM_TIME") { field(EGU, "sec") } -record(bo, "S03SIM-DI-IOC-01:GTIM_RESET") { +record(bo, "BL03S-DI-IOC-01:GTIM_RESET") { field(DESC, "Gen Time Error Reset") field(DTYP, "General Time") field(OUT, "@RSTERRCNT") @@ -401,7 +401,7 @@ record(bo, "S03SIM-DI-IOC-01:GTIM_RESET") { field(ONAM, "Reset") } -record(longin, "S03SIM-DI-IOC-01:GTIM_ERR_CNT") { +record(longin, "BL03S-DI-IOC-01:GTIM_ERR_CNT") { field(DESC, "Gen Time Error Count") field(DTYP, "General Time") field(INP, "@GETERRCNT") @@ -410,93 +410,93 @@ record(longin, "S03SIM-DI-IOC-01:GTIM_ERR_CNT") { field(HHSV, "MAJOR") } -record(stringin, "S03SIM-DI-IOC-01:GTIM_CUR_SRC") { +record(stringin, "BL03S-DI-IOC-01:GTIM_CUR_SRC") { field(DESC, "Gen Time Current Provider") field(DTYP, "General Time") field(INP, "@BESTTCP") field(SCAN, "1 second") } -record(stringin, "S03SIM-DI-IOC-01:GTIM_EVT_SRC") { +record(stringin, "BL03S-DI-IOC-01:GTIM_EVT_SRC") { field(DESC, "Gen Time Event Provider") field(DTYP, "General Time") field(INP, "@BESTTEP") field(SCAN, "1 second") } -record(stringin, "S03SIM-DI-IOC-01:GTIM_HI_SRC") { +record(stringin, "BL03S-DI-IOC-01:GTIM_HI_SRC") { field(DESC, "Gen Time Highest Provider") field(DTYP, "General Time") field(INP, "@TOPTCP") field(SCAN, "1 second") } -record(stringin, "S03SIM-DI-IOC-01:CA_ADDR_LIST") { +record(stringin, "BL03S-DI-IOC-01:CA_ADDR_LIST") { field(DESC, "EPICS_CA_ADDR_LIST") field(DTYP, "IOC epics var") field(INP, "@EPICS_CA_ADDR_LIST") field(PINI, "YES") } -record(stringin, "S03SIM-DI-IOC-01:CA_CONN_TIME") { +record(stringin, "BL03S-DI-IOC-01:CA_CONN_TIME") { field(DESC, "EPICS_CA_CONN_TMO") field(DTYP, "IOC epics var") field(INP, "@EPICS_CA_CONN_TMO") field(PINI, "YES") } -record(stringin, "S03SIM-DI-IOC-01:CA_AUTO_ADDR") { +record(stringin, "BL03S-DI-IOC-01:CA_AUTO_ADDR") { field(DESC, "EPICS_CA_AUTO_ADDR_LIST") field(DTYP, "IOC epics var") field(INP, "@EPICS_CA_AUTO_ADDR_LIST") field(PINI, "YES") } -record(stringin, "S03SIM-DI-IOC-01:CA_RPTR_PORT") { +record(stringin, "BL03S-DI-IOC-01:CA_RPTR_PORT") { field(DESC, "EPICS_CA_REPEATER_PORT") field(DTYP, "IOC epics var") field(INP, "@EPICS_CA_REPEATER_PORT") field(PINI, "YES") } -record(stringin, "S03SIM-DI-IOC-01:CA_SRVR_PORT") { +record(stringin, "BL03S-DI-IOC-01:CA_SRVR_PORT") { field(DESC, "EPICS_CA_SERVER_PORT") field(DTYP, "IOC epics var") field(INP, "@EPICS_CA_SERVER_PORT") field(PINI, "YES") } -record(stringin, "S03SIM-DI-IOC-01:CA_MAX_ARRAY") { +record(stringin, "BL03S-DI-IOC-01:CA_MAX_ARRAY") { field(DESC, "EPICS_CA_MAX_ARRAY_BYTES") field(DTYP, "IOC epics var") field(INP, "@EPICS_CA_MAX_ARRAY_BYTES") field(PINI, "YES") } -record(stringin, "S03SIM-DI-IOC-01:CA_SRCH_TIME") { +record(stringin, "BL03S-DI-IOC-01:CA_SRCH_TIME") { field(DESC, "EPICS_CA_MAX_SEARCH_PERIOD") field(DTYP, "IOC epics var") field(INP, "@EPICS_CA_MAX_SEARCH_PERIOD") field(PINI, "YES") } -record(stringin, "S03SIM-DI-IOC-01:CA_BEAC_TIME") { +record(stringin, "BL03S-DI-IOC-01:CA_BEAC_TIME") { field(DESC, "EPICS_CA_BEACON_PERIOD") field(DTYP, "IOC epics var") field(INP, "@EPICS_CA_BEACON_PERIOD") field(PINI, "YES") } -record(stringin, "S03SIM-DI-IOC-01:TIMEZONE") { +record(stringin, "BL03S-DI-IOC-01:TIMEZONE") { field(DESC, "EPICS_TIMEZONE") field(DTYP, "IOC epics var") field(INP, "@EPICS_TIMEZONE") field(PINI, "YES") } -record(stringin, "S03SIM-DI-IOC-01:TS_NTP_INET") { +record(stringin, "BL03S-DI-IOC-01:TS_NTP_INET") { field(DESC, "EPICS_TS_NTP_INET") field(DTYP, "IOC epics var") field(INP, "@EPICS_TS_NTP_INET") field(PINI, "YES") } -record(stringin, "S03SIM-DI-IOC-01:IOC_LOG_PORT") { +record(stringin, "BL03S-DI-IOC-01:IOC_LOG_PORT") { field(DESC, "EPICS_IOC_LOG_PORT") field(DTYP, "IOC epics var") field(INP, "@EPICS_IOC_LOG_PORT") field(PINI, "YES") } -record(stringin, "S03SIM-DI-IOC-01:IOC_LOG_INET") { +record(stringin, "BL03S-DI-IOC-01:IOC_LOG_INET") { field(DESC, "EPICS_IOC_LOG_INET") field(DTYP, "IOC epics var") field(INP, "@EPICS_IOC_LOG_INET") @@ -505,14 +505,14 @@ record(stringin, "S03SIM-DI-IOC-01:IOC_LOG_INET") { #% macro, __doc__, Create some records for reading IOC statistics and details. #% macro, IOC, Device prefix -record(bo, "S03SIM-DI-IOC-01:01HZ_MODE") { +record(bo, "BL03S-DI-IOC-01:01HZ_MODE") { field(DESC, "01HZ Mode") field(DOL, "1") field(PINI, "YES") field(ZNAM, "Relative") field(ONAM, "Absolute") } -record(sub, "S03SIM-DI-IOC-01:01HZ_UPD_TIME") { +record(sub, "BL03S-DI-IOC-01:01HZ_UPD_TIME") { field(DESC, "01HZ Update Time") field(SCAN, "10 second") field(EGU, "second") @@ -526,21 +526,21 @@ record(sub, "S03SIM-DI-IOC-01:01HZ_UPD_TIME") { field(LSV, "MINOR") field(LLSV, "MAJOR") field(BRSV, "INVALID") - field(INPA, "S03SIM-DI-IOC-01:01HZ_MODE") + field(INPA, "BL03S-DI-IOC-01:01HZ_MODE") field(B, "1.0") field(C, "5.0") } #% macro, __doc__, Create some records for reading IOC statistics and details. #% macro, IOC, Device prefix -record(bo, "S03SIM-DI-IOC-01:02HZ_MODE") { +record(bo, "BL03S-DI-IOC-01:02HZ_MODE") { field(DESC, "02HZ Mode") field(DOL, "1") field(PINI, "YES") field(ZNAM, "Relative") field(ONAM, "Absolute") } -record(sub, "S03SIM-DI-IOC-01:02HZ_UPD_TIME") { +record(sub, "BL03S-DI-IOC-01:02HZ_UPD_TIME") { field(DESC, "02HZ Update Time") field(SCAN, "5 second") field(EGU, "second") @@ -554,21 +554,21 @@ record(sub, "S03SIM-DI-IOC-01:02HZ_UPD_TIME") { field(LSV, "MINOR") field(LLSV, "MAJOR") field(BRSV, "INVALID") - field(INPA, "S03SIM-DI-IOC-01:02HZ_MODE") + field(INPA, "BL03S-DI-IOC-01:02HZ_MODE") field(B, "1.0") field(C, "5.0") } #% macro, __doc__, Create some records for reading IOC statistics and details. #% macro, IOC, Device prefix -record(bo, "S03SIM-DI-IOC-01:05HZ_MODE") { +record(bo, "BL03S-DI-IOC-01:05HZ_MODE") { field(DESC, "05HZ Mode") field(DOL, "1") field(PINI, "YES") field(ZNAM, "Relative") field(ONAM, "Absolute") } -record(sub, "S03SIM-DI-IOC-01:05HZ_UPD_TIME") { +record(sub, "BL03S-DI-IOC-01:05HZ_UPD_TIME") { field(DESC, "05HZ Update Time") field(SCAN, "2 second") field(EGU, "second") @@ -582,21 +582,21 @@ record(sub, "S03SIM-DI-IOC-01:05HZ_UPD_TIME") { field(LSV, "MINOR") field(LLSV, "MAJOR") field(BRSV, "INVALID") - field(INPA, "S03SIM-DI-IOC-01:05HZ_MODE") + field(INPA, "BL03S-DI-IOC-01:05HZ_MODE") field(B, "1.0") field(C, "5.0") } #% macro, __doc__, Create some records for reading IOC statistics and details. #% macro, IOC, Device prefix -record(bo, "S03SIM-DI-IOC-01:1HZ_MODE") { +record(bo, "BL03S-DI-IOC-01:1HZ_MODE") { field(DESC, "1HZ Mode") field(DOL, "1") field(PINI, "YES") field(ZNAM, "Relative") field(ONAM, "Absolute") } -record(sub, "S03SIM-DI-IOC-01:1HZ_UPD_TIME") { +record(sub, "BL03S-DI-IOC-01:1HZ_UPD_TIME") { field(DESC, "1HZ Update Time") field(SCAN, "1 second") field(EGU, "second") @@ -610,21 +610,21 @@ record(sub, "S03SIM-DI-IOC-01:1HZ_UPD_TIME") { field(LSV, "MINOR") field(LLSV, "MAJOR") field(BRSV, "INVALID") - field(INPA, "S03SIM-DI-IOC-01:1HZ_MODE") + field(INPA, "BL03S-DI-IOC-01:1HZ_MODE") field(B, "1.0") field(C, "5.0") } #% macro, __doc__, Create some records for reading IOC statistics and details. #% macro, IOC, Device prefix -record(bo, "S03SIM-DI-IOC-01:2HZ_MODE") { +record(bo, "BL03S-DI-IOC-01:2HZ_MODE") { field(DESC, "2HZ Mode") field(DOL, "1") field(PINI, "YES") field(ZNAM, "Relative") field(ONAM, "Absolute") } -record(sub, "S03SIM-DI-IOC-01:2HZ_UPD_TIME") { +record(sub, "BL03S-DI-IOC-01:2HZ_UPD_TIME") { field(DESC, "2HZ Update Time") field(SCAN, ".5 second") field(EGU, "second") @@ -638,21 +638,21 @@ record(sub, "S03SIM-DI-IOC-01:2HZ_UPD_TIME") { field(LSV, "MINOR") field(LLSV, "MAJOR") field(BRSV, "INVALID") - field(INPA, "S03SIM-DI-IOC-01:2HZ_MODE") + field(INPA, "BL03S-DI-IOC-01:2HZ_MODE") field(B, "1.0") field(C, "5.0") } #% macro, __doc__, Create some records for reading IOC statistics and details. #% macro, IOC, Device prefix -record(bo, "S03SIM-DI-IOC-01:5HZ_MODE") { +record(bo, "BL03S-DI-IOC-01:5HZ_MODE") { field(DESC, "5HZ Mode") field(DOL, "1") field(PINI, "YES") field(ZNAM, "Relative") field(ONAM, "Absolute") } -record(sub, "S03SIM-DI-IOC-01:5HZ_UPD_TIME") { +record(sub, "BL03S-DI-IOC-01:5HZ_UPD_TIME") { field(DESC, "5HZ Update Time") field(SCAN, ".2 second") field(EGU, "second") @@ -666,21 +666,21 @@ record(sub, "S03SIM-DI-IOC-01:5HZ_UPD_TIME") { field(LSV, "MINOR") field(LLSV, "MAJOR") field(BRSV, "INVALID") - field(INPA, "S03SIM-DI-IOC-01:5HZ_MODE") + field(INPA, "BL03S-DI-IOC-01:5HZ_MODE") field(B, "1.0") field(C, "5.0") } #% macro, __doc__, Create some records for reading IOC statistics and details. #% macro, IOC, Device prefix -record(bo, "S03SIM-DI-IOC-01:10HZ_MODE") { +record(bo, "BL03S-DI-IOC-01:10HZ_MODE") { field(DESC, "10HZ Mode") field(DOL, "1") field(PINI, "YES") field(ZNAM, "Relative") field(ONAM, "Absolute") } -record(sub, "S03SIM-DI-IOC-01:10HZ_UPD_TIME") { +record(sub, "BL03S-DI-IOC-01:10HZ_UPD_TIME") { field(DESC, "10HZ Update Time") field(SCAN, ".1 second") field(EGU, "second") @@ -694,74 +694,74 @@ record(sub, "S03SIM-DI-IOC-01:10HZ_UPD_TIME") { field(LSV, "MINOR") field(LLSV, "MAJOR") field(BRSV, "INVALID") - field(INPA, "S03SIM-DI-IOC-01:10HZ_MODE") + field(INPA, "BL03S-DI-IOC-01:10HZ_MODE") field(B, "1.0") field(C, "5.0") } -record(calc, "S03SIM-DI-IOC-01:SCANMON_SEVR") { +record(calc, "BL03S-DI-IOC-01:SCANMON_SEVR") { field(DESC, "ScanMon Max Severity") field(SCAN, "1 second") field(CALC, "0") - field(INPA, "S03SIM-DI-IOC-01:01HZ_UPD_TIME.SEVR MS") - field(INPB, "S03SIM-DI-IOC-01:02HZ_UPD_TIME.SEVR MS") - field(INPC, "S03SIM-DI-IOC-01:05HZ_UPD_TIME.SEVR MS") - field(INPD, "S03SIM-DI-IOC-01:1HZ_UPD_TIME.SEVR MS") - field(INPE, "S03SIM-DI-IOC-01:2HZ_UPD_TIME.SEVR MS") - field(INPF, "S03SIM-DI-IOC-01:5HZ_UPD_TIME.SEVR MS") - field(INPG, "S03SIM-DI-IOC-01:10HZ_UPD_TIME.SEVR MS") + field(INPA, "BL03S-DI-IOC-01:01HZ_UPD_TIME.SEVR MS") + field(INPB, "BL03S-DI-IOC-01:02HZ_UPD_TIME.SEVR MS") + field(INPC, "BL03S-DI-IOC-01:05HZ_UPD_TIME.SEVR MS") + field(INPD, "BL03S-DI-IOC-01:1HZ_UPD_TIME.SEVR MS") + field(INPE, "BL03S-DI-IOC-01:2HZ_UPD_TIME.SEVR MS") + field(INPF, "BL03S-DI-IOC-01:5HZ_UPD_TIME.SEVR MS") + field(INPG, "BL03S-DI-IOC-01:10HZ_UPD_TIME.SEVR MS") } # % macro, name, name for gui elements # % macro, EDM_FILE, edm screen, defaults to ioc_stats_softdls.edl # % macro, IOC, ioc name -# % gui, DI1, edm, ioc_stats_softdls.edl, ioc=S03SIM-DI-IOC-01 -# % gui, DI1, edmembed, ioc_embed.edl, ioc=S03SIM-DI-IOC-01,EDM_FILE=ioc_stats_softdls.edl +# % gui, DI1, edm, ioc_stats_softdls.edl, ioc=BL03S-DI-IOC-01 +# % gui, DI1, edmembed, ioc_embed.edl, ioc=BL03S-DI-IOC-01,EDM_FILE=ioc_stats_softdls.edl # This associates BOY screens with the template -# % gui, DI1, boydetail, devIocStatsApp_opi/iocStats_detail.opi, desc=S03SIM-DI-IOC-01, IOC=S03SIM-DI-IOC-01, name=DI1 -# % gui, DI1, boyembed, devIocStatsApp_opi/iocStats_embed.opi, desc=S03SIM-DI-IOC-01, IOC=S03SIM-DI-IOC-01, name=DI1 -# % gui, DI1, boyembed, devIocStatsApp_opi/iocStats_embed_box.opi, desc=S03SIM-DI-IOC-01, IOC=S03SIM-DI-IOC-01, name=DI1 +# % gui, DI1, boydetail, devIocStatsApp_opi/iocStats_detail.opi, desc=BL03S-DI-IOC-01, IOC=BL03S-DI-IOC-01, name=DI1 +# % gui, DI1, boyembed, devIocStatsApp_opi/iocStats_embed.opi, desc=BL03S-DI-IOC-01, IOC=BL03S-DI-IOC-01, name=DI1 +# % gui, DI1, boyembed, devIocStatsApp_opi/iocStats_embed_box.opi, desc=BL03S-DI-IOC-01, IOC=BL03S-DI-IOC-01, name=DI1 # These define what PVs a detail screen should contain -# % gui, DI1, readback, Startup Time,S03SIM-DI-IOC-01:STARTOD -# % gui, DI1, readback, Current Time,S03SIM-DI-IOC-01:TOD -# % gui, DI1, readback, Up Time,S03SIM-DI-IOC-01:UPTIME -# % gui, DI1, readback, Heartbeat,S03SIM-DI-IOC-01:HEARTBEAT -# % gui, DI1, readback, Records,S03SIM-DI-IOC-01:RECORD_CNT -# % gui, DI1, readback, Host Name,S03SIM-DI-IOC-01:HOSTNAME -# % gui, DI1, readback, User Name,S03SIM-DI-IOC-01:ENGINEER -# % gui, DI1, readback, Location,S03SIM-DI-IOC-01:LOCATION -# % gui, DI1, readback, CA Clients,S03SIM-DI-IOC-01:CA_CLNT_CNT -# % gui, DI1, readback, CA PV Conns,S03SIM-DI-IOC-01:CA_CONN_CNT -# % gui, DI1, readback, Susp Tasks,S03SIM-DI-IOC-01:SUSP_TASK_CNT -# % gui, DI1, readback, EPICS Version,S03SIM-DI-IOC-01:EPICS_VERS -# % gui, DI1, readback, OS Version,S03SIM-DI-IOC-01:KERNEL_VERS -# % gui, DI1, readback, Application Directory,S03SIM-DI-IOC-01:APP_DIR1 -# % gui, DI1, readback, Startup Script,S03SIM-DI-IOC-01:ST_SCRIPT1 -# % gui, DI1, readback, Memory Free,S03SIM-DI-IOC-01:MEM_FREE -# % gui, DI1, readback, Memory Used,S03SIM-DI-IOC-01:MEM_USED -# % gui, DI1, readback, Memory Max,S03SIM-DI-IOC-01:MEM_MAX -# % gui, DI1, readback, File Handles Free,S03SIM-DI-IOC-01:FD_FREE -# % gui, DI1, readback, File Handles Max,S03SIM-DI-IOC-01:FD_MAX -# % gui, DI1, readback, IOC CPU Load,S03SIM-DI-IOC-01:IOC_CPU_LOAD -# % gui, DI1, readback, All CPUs Load,S03SIM-DI-IOC-01:SYS_CPU_LOAD -# % gui, DI1, readback, System CPUs,S03SIM-DI-IOC-01:CPU_CNT - -record(stringout,"S03SIM-DI-IOC-01:0:NAME") { +# % gui, DI1, readback, Startup Time,BL03S-DI-IOC-01:STARTOD +# % gui, DI1, readback, Current Time,BL03S-DI-IOC-01:TOD +# % gui, DI1, readback, Up Time,BL03S-DI-IOC-01:UPTIME +# % gui, DI1, readback, Heartbeat,BL03S-DI-IOC-01:HEARTBEAT +# % gui, DI1, readback, Records,BL03S-DI-IOC-01:RECORD_CNT +# % gui, DI1, readback, Host Name,BL03S-DI-IOC-01:HOSTNAME +# % gui, DI1, readback, User Name,BL03S-DI-IOC-01:ENGINEER +# % gui, DI1, readback, Location,BL03S-DI-IOC-01:LOCATION +# % gui, DI1, readback, CA Clients,BL03S-DI-IOC-01:CA_CLNT_CNT +# % gui, DI1, readback, CA PV Conns,BL03S-DI-IOC-01:CA_CONN_CNT +# % gui, DI1, readback, Susp Tasks,BL03S-DI-IOC-01:SUSP_TASK_CNT +# % gui, DI1, readback, EPICS Version,BL03S-DI-IOC-01:EPICS_VERS +# % gui, DI1, readback, OS Version,BL03S-DI-IOC-01:KERNEL_VERS +# % gui, DI1, readback, Application Directory,BL03S-DI-IOC-01:APP_DIR1 +# % gui, DI1, readback, Startup Script,BL03S-DI-IOC-01:ST_SCRIPT1 +# % gui, DI1, readback, Memory Free,BL03S-DI-IOC-01:MEM_FREE +# % gui, DI1, readback, Memory Used,BL03S-DI-IOC-01:MEM_USED +# % gui, DI1, readback, Memory Max,BL03S-DI-IOC-01:MEM_MAX +# % gui, DI1, readback, File Handles Free,BL03S-DI-IOC-01:FD_FREE +# % gui, DI1, readback, File Handles Max,BL03S-DI-IOC-01:FD_MAX +# % gui, DI1, readback, IOC CPU Load,BL03S-DI-IOC-01:IOC_CPU_LOAD +# % gui, DI1, readback, All CPUs Load,BL03S-DI-IOC-01:SYS_CPU_LOAD +# % gui, DI1, readback, System CPUs,BL03S-DI-IOC-01:CPU_CNT + +record(stringout,"BL03S-DI-IOC-01:0:NAME") { field(VAL,"Not In Use") field(DTYP,"Soft Channel") } -record(longout,"S03SIM-DI-IOC-01:0:STATE") { +record(longout,"BL03S-DI-IOC-01:0:STATE") { field(DTYP,"Soft Channel") } #% archiver 10 Monitor VAL -#% None $SEVRCOMMAND UP_ANY dls-alh-handler.py S03SIM-DI-IOC-01:0:STATUS -record(mbbo,"S03SIM-DI-IOC-01:0:STATUS") { +#% None $SEVRCOMMAND UP_ANY dls-alh-handler.py BL03S-DI-IOC-01:0:STATUS +record(mbbo,"BL03S-DI-IOC-01:0:STATUS") { field(DTYP,"Soft Channel") field(NOBT,"3") field(ONVL,"1") @@ -777,25 +777,25 @@ record(mbbo,"S03SIM-DI-IOC-01:0:STATUS") { field(TWSV, "MINOR") field(THSV, "MINOR") } -record(stringout,"S03SIM-DI-IOC-01:0:STATUSST") { +record(stringout,"BL03S-DI-IOC-01:0:STATUSST") { field(DTYP,"Soft Channel") field(VAL,"Status unknown") } -record(stringout,"S03SIM-DI-IOC-01:0:TIME") { +record(stringout,"BL03S-DI-IOC-01:0:TIME") { field(DTYP,"Soft Channel") field(VAL,"Not yet saved") } -record(stringout,"S03SIM-DI-IOC-01:1:NAME") { +record(stringout,"BL03S-DI-IOC-01:1:NAME") { field(VAL,"Not In Use") field(DTYP,"Soft Channel") } -record(longout,"S03SIM-DI-IOC-01:1:STATE") { +record(longout,"BL03S-DI-IOC-01:1:STATE") { field(DTYP,"Soft Channel") } #% archiver 10 Monitor VAL -#% None $SEVRCOMMAND UP_ANY dls-alh-handler.py S03SIM-DI-IOC-01:1:STATUS -record(mbbo,"S03SIM-DI-IOC-01:1:STATUS") { +#% None $SEVRCOMMAND UP_ANY dls-alh-handler.py BL03S-DI-IOC-01:1:STATUS +record(mbbo,"BL03S-DI-IOC-01:1:STATUS") { field(DTYP,"Soft Channel") field(NOBT,"3") field(ONVL,"1") @@ -811,25 +811,25 @@ record(mbbo,"S03SIM-DI-IOC-01:1:STATUS") { field(TWSV, "MINOR") field(THSV, "MINOR") } -record(stringout,"S03SIM-DI-IOC-01:1:STATUSST") { +record(stringout,"BL03S-DI-IOC-01:1:STATUSST") { field(DTYP,"Soft Channel") field(VAL,"Status unknown") } -record(stringout,"S03SIM-DI-IOC-01:1:TIME") { +record(stringout,"BL03S-DI-IOC-01:1:TIME") { field(DTYP,"Soft Channel") field(VAL,"Not yet saved") } -record(stringout,"S03SIM-DI-IOC-01:2:NAME") { +record(stringout,"BL03S-DI-IOC-01:2:NAME") { field(VAL,"Not In Use") field(DTYP,"Soft Channel") } -record(longout,"S03SIM-DI-IOC-01:2:STATE") { +record(longout,"BL03S-DI-IOC-01:2:STATE") { field(DTYP,"Soft Channel") } #% archiver 10 Monitor VAL -#% None $SEVRCOMMAND UP_ANY dls-alh-handler.py S03SIM-DI-IOC-01:2:STATUS -record(mbbo,"S03SIM-DI-IOC-01:2:STATUS") { +#% None $SEVRCOMMAND UP_ANY dls-alh-handler.py BL03S-DI-IOC-01:2:STATUS +record(mbbo,"BL03S-DI-IOC-01:2:STATUS") { field(DTYP,"Soft Channel") field(NOBT,"3") field(ONVL,"1") @@ -845,43 +845,43 @@ record(mbbo,"S03SIM-DI-IOC-01:2:STATUS") { field(TWSV, "MINOR") field(THSV, "MINOR") } -record(stringout,"S03SIM-DI-IOC-01:2:STATUSST") { +record(stringout,"BL03S-DI-IOC-01:2:STATUSST") { field(DTYP,"Soft Channel") field(VAL,"Status unknown") } -record(stringout,"S03SIM-DI-IOC-01:2:TIME") { +record(stringout,"BL03S-DI-IOC-01:2:TIME") { field(DTYP,"Soft Channel") field(VAL,"Not yet saved") } # This associates an edm screen with the template -# % gui, None, edm, save_restoreStatus_more.edl, P=S03SIM-DI-IOC-01 +# % gui, None, edm, save_restoreStatus_more.edl, P=BL03S-DI-IOC-01 # This associates BOY screens with the template -# % gui, None, boydetail, asApp_opi/autosave_detail.opi, desc=S03SIM-DI-IOC-01, device=S03SIM-DI-IOC-01, name=None -# % gui, None, boyembed, asApp_opi/autosave_embed.opi, desc=S03SIM-DI-IOC-01, device=S03SIM-DI-IOC-01, name=None -# % gui, None, boyembed, asApp_opi/autosave_embed_box.opi, desc=S03SIM-DI-IOC-01, device=S03SIM-DI-IOC-01, name=None +# % gui, None, boydetail, asApp_opi/autosave_detail.opi, desc=BL03S-DI-IOC-01, device=BL03S-DI-IOC-01, name=None +# % gui, None, boyembed, asApp_opi/autosave_embed.opi, desc=BL03S-DI-IOC-01, device=BL03S-DI-IOC-01, name=None +# % gui, None, boyembed, asApp_opi/autosave_embed_box.opi, desc=BL03S-DI-IOC-01, device=BL03S-DI-IOC-01, name=None # These define what PVs a detail screen should contain -# % gui, None, readback, General Status, S03SIM-DI-IOC-01:SRSTATUSST -# % gui, None, readback, Recently, S03SIM-DI-IOC-01:SRRECENTST -# % gui, None, readback, Reboot Status, S03SIM-DI-IOC-01:RRSTATUSST -# % gui, None, readback, Reboot time, S03SIM-DI-IOC-01:RRTIME -# % gui, None, readback, File 0 Status, S03SIM-DI-IOC-01:0:STATUSST -# % gui, None, readback, File 0 Name, S03SIM-DI-IOC-01:0:NAME -# % gui, None, readback, File 0 Written, S03SIM-DI-IOC-01:0:TIME -# % gui, None, readback, File 1 Status, S03SIM-DI-IOC-01:1:STATUSST -# % gui, None, readback, File 1 Name, S03SIM-DI-IOC-01:1:NAME -# % gui, None, readback, File 1 Written, S03SIM-DI-IOC-01:1:TIME -# % gui, None, readback, File 2 Status, S03SIM-DI-IOC-01:2:STATUSST -# % gui, None, readback, File 2 Name, S03SIM-DI-IOC-01:2:NAME -# % gui, None, readback, File 2 Written, S03SIM-DI-IOC-01:2:TIME +# % gui, None, readback, General Status, BL03S-DI-IOC-01:SRSTATUSST +# % gui, None, readback, Recently, BL03S-DI-IOC-01:SRRECENTST +# % gui, None, readback, Reboot Status, BL03S-DI-IOC-01:RRSTATUSST +# % gui, None, readback, Reboot time, BL03S-DI-IOC-01:RRTIME +# % gui, None, readback, File 0 Status, BL03S-DI-IOC-01:0:STATUSST +# % gui, None, readback, File 0 Name, BL03S-DI-IOC-01:0:NAME +# % gui, None, readback, File 0 Written, BL03S-DI-IOC-01:0:TIME +# % gui, None, readback, File 1 Status, BL03S-DI-IOC-01:1:STATUSST +# % gui, None, readback, File 1 Name, BL03S-DI-IOC-01:1:NAME +# % gui, None, readback, File 1 Written, BL03S-DI-IOC-01:1:TIME +# % gui, None, readback, File 2 Status, BL03S-DI-IOC-01:2:STATUSST +# % gui, None, readback, File 2 Name, BL03S-DI-IOC-01:2:NAME +# % gui, None, readback, File 2 Written, BL03S-DI-IOC-01:2:TIME # This makes the component icon reflect the status and severity # % gui, None, sevr #% archiver 10 Monitor VAL -#% None $SEVRCOMMAND UP_ANY dls-alh-handler.py S03SIM-DI-IOC-01:RRSTATUS -record(mbbo,"S03SIM-DI-IOC-01:RRSTATUS") { +#% None $SEVRCOMMAND UP_ANY dls-alh-handler.py BL03S-DI-IOC-01:RRSTATUS +record(mbbo,"BL03S-DI-IOC-01:RRSTATUS") { field(DTYP,"Soft Channel") field(NOBT,"3") field(ONVL,"1") @@ -898,20 +898,20 @@ record(mbbo,"S03SIM-DI-IOC-01:RRSTATUS") { field(THSV, "MINOR") } -record(stringout,"S03SIM-DI-IOC-01:RRSTATUSST") { +record(stringout,"BL03S-DI-IOC-01:RRSTATUSST") { field(DTYP,"Soft Channel") field(VAL,"Status unknown") } -record(stringout,"S03SIM-DI-IOC-01:RRTIME") { +record(stringout,"BL03S-DI-IOC-01:RRTIME") { field(DTYP,"Soft Channel") field(VAL,"Not yet saved") } # % gui, None, sevr #% archiver 10 Monitor VAL -#% None $SEVRCOMMAND UP_ANY dls-alh-handler.py S03SIM-DI-IOC-01:SRSTATUS -record(mbbo,"S03SIM-DI-IOC-01:SRSTATUS") { +#% None $SEVRCOMMAND UP_ANY dls-alh-handler.py BL03S-DI-IOC-01:SRSTATUS +record(mbbo,"BL03S-DI-IOC-01:SRSTATUS") { field(DTYP,"Soft Channel") field(NOBT,"3") field(ONVL,"1") @@ -928,16 +928,16 @@ record(mbbo,"S03SIM-DI-IOC-01:SRSTATUS") { field(THSV, "MINOR") } -record(bo,"S03SIM-DI-IOC-01:SRHEARTBT") { +record(bo,"BL03S-DI-IOC-01:SRHEARTBT") { field(DTYP,"Soft Channel") } -record(stringout,"S03SIM-DI-IOC-01:SRSTATUSST") { +record(stringout,"BL03S-DI-IOC-01:SRSTATUSST") { field(DTYP,"Soft Channel") field(VAL,"Status unknown") } -record(stringout,"S03SIM-DI-IOC-01:SRRECENTST") { +record(stringout,"BL03S-DI-IOC-01:SRRECENTST") { field(DTYP,"Soft Channel") field(VAL,"Status unknown") } diff --git a/tickit_devices/oav/db_files/DI-OAV.db b/tickit_devices/oav/db_files/DI-OAV.db index 4a0f2c94..599cb44a 100755 --- a/tickit_devices/oav/db_files/DI-OAV.db +++ b/tickit_devices/oav/db_files/DI-OAV.db @@ -7,9 +7,9 @@ #% macro, ADDR, Asyn Port address, default 0 # This associates a BOY screen with the template -# % gui, OAV.CAM, boydetail, aravisApp_opi/aravis_detail.opi, P=S03SIM-DI-OAV-01, R=:CAM:, DESC=Camera -# % gui, OAV.CAM, boyembed, aravisApp_opi/aravis_embed_box.opi, P=S03SIM-DI-OAV-01, R=:CAM:, DESC=Camera -# % gui, OAV.CAM, boyembed, aravisApp_opi/aravis_embed.opi, P=S03SIM-DI-OAV-01, R=:CAM:, DESC=Camera +# % gui, OAV.CAM, boydetail, aravisApp_opi/aravis_detail.opi, P=BL03S-DI-OAV-01, R=:CAM:, DESC=Camera +# % gui, OAV.CAM, boyembed, aravisApp_opi/aravis_embed_box.opi, P=BL03S-DI-OAV-01, R=:CAM:, DESC=Camera +# % gui, OAV.CAM, boyembed, aravisApp_opi/aravis_embed.opi, P=BL03S-DI-OAV-01, R=:CAM:, DESC=Camera ## ADGenICam.template ## Template database file to control some features of ADGenICam. @@ -44,7 +44,7 @@ # This record contains the version of ADCore # ################################################################### -record(stringin, "S03SIM-DI-OAV-01:CAM:ADCoreVersion_RBV") +record(stringin, "BL03S-DI-OAV-01:CAM:ADCoreVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CAM,0,1)ADCORE_VERSION") @@ -56,7 +56,7 @@ record(stringin, "S03SIM-DI-OAV-01:CAM:ADCoreVersion_RBV") # This record contains the version of the driver or plugin # ################################################################### -record(stringin, "S03SIM-DI-OAV-01:CAM:DriverVersion_RBV") +record(stringin, "BL03S-DI-OAV-01:CAM:DriverVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CAM,0,1)DRIVER_VERSION") @@ -68,7 +68,7 @@ record(stringin, "S03SIM-DI-OAV-01:CAM:DriverVersion_RBV") # This record contains the asyn port name of this detector # ################################################################### -record(stringin, "S03SIM-DI-OAV-01:CAM:PortName_RBV") +record(stringin, "BL03S-DI-OAV-01:CAM:PortName_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CAM,0,1)PORT_NAME_SELF") @@ -80,7 +80,7 @@ record(stringin, "S03SIM-DI-OAV-01:CAM:PortName_RBV") # These records contain basic information about the detector # ################################################################### -record(stringin, "S03SIM-DI-OAV-01:CAM:Manufacturer_RBV") +record(stringin, "BL03S-DI-OAV-01:CAM:Manufacturer_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CAM,0,1)MANUFACTURER") @@ -88,7 +88,7 @@ record(stringin, "S03SIM-DI-OAV-01:CAM:Manufacturer_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-DI-OAV-01:CAM:Model_RBV") +record(stringin, "BL03S-DI-OAV-01:CAM:Model_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CAM,0,1)MODEL") @@ -96,7 +96,7 @@ record(stringin, "S03SIM-DI-OAV-01:CAM:Model_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-DI-OAV-01:CAM:SerialNumber_RBV") +record(stringin, "BL03S-DI-OAV-01:CAM:SerialNumber_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CAM,0,1)SERIAL_NUMBER") @@ -104,7 +104,7 @@ record(stringin, "S03SIM-DI-OAV-01:CAM:SerialNumber_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-DI-OAV-01:CAM:SDKVersion_RBV") +record(stringin, "BL03S-DI-OAV-01:CAM:SDKVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CAM,0,1)SDK_VERSION") @@ -112,7 +112,7 @@ record(stringin, "S03SIM-DI-OAV-01:CAM:SDKVersion_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-DI-OAV-01:CAM:FirmwareVersion_RBV") +record(stringin, "BL03S-DI-OAV-01:CAM:FirmwareVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CAM,0,1)FIRMWARE_VERSION") @@ -124,15 +124,15 @@ record(stringin, "S03SIM-DI-OAV-01:CAM:FirmwareVersion_RBV") # These records control acquisition start and stop # ################################################################### -record(bi, "S03SIM-DI-OAV-01:CAM:Acquire") { +record(bi, "BL03S-DI-OAV-01:CAM:Acquire") { field(DTYP, "asynInt32") field(ZNAM, "Done") field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:CAM:SetAcquireBusy") + field(FLNK, "BL03S-DI-OAV-01:CAM:SetAcquireBusy") info(bi:READBACK, "1") } -record(bi, "S03SIM-DI-OAV-01:CAM:Acquire_RBV") { +record(bi, "BL03S-DI-OAV-01:CAM:Acquire_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)ACQUIRE") field(ZNAM, "Done") @@ -142,15 +142,15 @@ record(bi, "S03SIM-DI-OAV-01:CAM:Acquire_RBV") { field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-DI-OAV-01:CAM:SetAcquireBusy") +record(calcout, "BL03S-DI-OAV-01:CAM:SetAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:CAM:Acquire NPP") + field(INPA, "BL03S-DI-OAV-01:CAM:Acquire NPP") field(CALC, "A") field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:CAM:AcquireBusy PP") + field(OUT, "BL03S-DI-OAV-01:CAM:AcquireBusy PP") } -record(bi, "S03SIM-DI-OAV-01:CAM:AcquireBusy") { +record(bi, "BL03S-DI-OAV-01:CAM:AcquireBusy") { field(ZNAM, "Done") field(ZSV, "NO_ALARM") field(ONAM, "Acquiring") @@ -158,7 +158,7 @@ record(bi, "S03SIM-DI-OAV-01:CAM:AcquireBusy") { field(VAL, "0") } -record(bi, "S03SIM-DI-OAV-01:CAM:AcquireBusyCB") { +record(bi, "BL03S-DI-OAV-01:CAM:AcquireBusyCB") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)ACQUIRE_BUSY") field(ZNAM, "Done") @@ -168,14 +168,14 @@ record(bi, "S03SIM-DI-OAV-01:CAM:AcquireBusyCB") { field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-DI-OAV-01:CAM:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:CAM:AcquireBusyCB CP") +record(calcout, "BL03S-DI-OAV-01:CAM:ClearAcquireBusy") { + field(INPA, "BL03S-DI-OAV-01:CAM:AcquireBusyCB CP") field(CALC, "A") field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:CAM:AcquireBusy PP") + field(OUT, "BL03S-DI-OAV-01:CAM:AcquireBusy PP") } -record(bo, "S03SIM-DI-OAV-01:CAM:WaitForPlugins") { +record(bo, "BL03S-DI-OAV-01:CAM:WaitForPlugins") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.CAM,0,1)WAIT_FOR_PLUGINS") @@ -188,13 +188,13 @@ record(bo, "S03SIM-DI-OAV-01:CAM:WaitForPlugins") { # These records are the array size and data type # ################################################################### # The number of dimensions -record(longout, "S03SIM-DI-OAV-01:CAM:NDimensions") +record(longout, "BL03S-DI-OAV-01:CAM:NDimensions") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.CAM,0,1)ARRAY_NDIMENSIONS") } -record(longin, "S03SIM-DI-OAV-01:CAM:NDimensions_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:NDimensions_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)ARRAY_NDIMENSIONS") @@ -202,346 +202,346 @@ record(longin, "S03SIM-DI-OAV-01:CAM:NDimensions_RBV") } # The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:CAM:Dimensions") +record(waveform, "BL03S-DI-OAV-01:CAM:Dimensions") { field(DTYP, "asynInt32ArrayOut") field(INP, "@asyn(OAV.CAM,0,1)ARRAY_DIMENSIONS") field(FTVL, "LONG") field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim0SA") + field(FLNK, "BL03S-DI-OAV-01:CAM:Dim0SA") } -record(subArray, "S03SIM-DI-OAV-01:CAM:Dim0SA") +record(subArray, "BL03S-DI-OAV-01:CAM:Dim0SA") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize0") + field(FLNK, "BL03S-DI-OAV-01:CAM:ArraySize0") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize0") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySize0") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim1SA") + field(INP, "BL03S-DI-OAV-01:CAM:Dim0SA") + field(FLNK, "BL03S-DI-OAV-01:CAM:Dim1SA") } -record(subArray, "S03SIM-DI-OAV-01:CAM:Dim1SA") +record(subArray, "BL03S-DI-OAV-01:CAM:Dim1SA") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize1") + field(FLNK, "BL03S-DI-OAV-01:CAM:ArraySize1") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize1") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySize1") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim2SA") + field(INP, "BL03S-DI-OAV-01:CAM:Dim1SA") + field(FLNK, "BL03S-DI-OAV-01:CAM:Dim2SA") } -record(subArray, "S03SIM-DI-OAV-01:CAM:Dim2SA") +record(subArray, "BL03S-DI-OAV-01:CAM:Dim2SA") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize2") + field(FLNK, "BL03S-DI-OAV-01:CAM:ArraySize2") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize2") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySize2") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim3SA") + field(INP, "BL03S-DI-OAV-01:CAM:Dim2SA") + field(FLNK, "BL03S-DI-OAV-01:CAM:Dim3SA") } -record(subArray, "S03SIM-DI-OAV-01:CAM:Dim3SA") +record(subArray, "BL03S-DI-OAV-01:CAM:Dim3SA") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize3") + field(FLNK, "BL03S-DI-OAV-01:CAM:ArraySize3") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize3") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySize3") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim4SA") + field(INP, "BL03S-DI-OAV-01:CAM:Dim3SA") + field(FLNK, "BL03S-DI-OAV-01:CAM:Dim4SA") } -record(subArray, "S03SIM-DI-OAV-01:CAM:Dim4SA") +record(subArray, "BL03S-DI-OAV-01:CAM:Dim4SA") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize4") + field(FLNK, "BL03S-DI-OAV-01:CAM:ArraySize4") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize4") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySize4") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim5SA") + field(INP, "BL03S-DI-OAV-01:CAM:Dim4SA") + field(FLNK, "BL03S-DI-OAV-01:CAM:Dim5SA") } -record(subArray, "S03SIM-DI-OAV-01:CAM:Dim5SA") +record(subArray, "BL03S-DI-OAV-01:CAM:Dim5SA") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize5") + field(FLNK, "BL03S-DI-OAV-01:CAM:ArraySize5") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize5") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySize5") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim6SA") + field(INP, "BL03S-DI-OAV-01:CAM:Dim5SA") + field(FLNK, "BL03S-DI-OAV-01:CAM:Dim6SA") } -record(subArray, "S03SIM-DI-OAV-01:CAM:Dim6SA") +record(subArray, "BL03S-DI-OAV-01:CAM:Dim6SA") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize6") + field(FLNK, "BL03S-DI-OAV-01:CAM:ArraySize6") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize6") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySize6") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim7SA") + field(INP, "BL03S-DI-OAV-01:CAM:Dim6SA") + field(FLNK, "BL03S-DI-OAV-01:CAM:Dim7SA") } -record(subArray, "S03SIM-DI-OAV-01:CAM:Dim7SA") +record(subArray, "BL03S-DI-OAV-01:CAM:Dim7SA") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize7") + field(FLNK, "BL03S-DI-OAV-01:CAM:ArraySize7") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize7") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySize7") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim8SA") + field(INP, "BL03S-DI-OAV-01:CAM:Dim7SA") + field(FLNK, "BL03S-DI-OAV-01:CAM:Dim8SA") } -record(subArray, "S03SIM-DI-OAV-01:CAM:Dim8SA") +record(subArray, "BL03S-DI-OAV-01:CAM:Dim8SA") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize8") + field(FLNK, "BL03S-DI-OAV-01:CAM:ArraySize8") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize8") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySize8") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim9SA") + field(INP, "BL03S-DI-OAV-01:CAM:Dim8SA") + field(FLNK, "BL03S-DI-OAV-01:CAM:Dim9SA") } -record(subArray, "S03SIM-DI-OAV-01:CAM:Dim9SA") +record(subArray, "BL03S-DI-OAV-01:CAM:Dim9SA") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize9") + field(FLNK, "BL03S-DI-OAV-01:CAM:ArraySize9") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize9") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySize9") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dim9SA") + field(INP, "BL03S-DI-OAV-01:CAM:Dim9SA") } -record(waveform, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV") +record(waveform, "BL03S-DI-OAV-01:CAM:Dimensions_RBV") { field(DTYP, "asynInt32ArrayIn") field(INP, "@asyn(OAV.CAM,0,1)ARRAY_DIMENSIONS") field(FTVL, "LONG") field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim0SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:CAM:Dim0SA_RBV") field(SCAN, "I/O Intr") } -record(subArray, "S03SIM-DI-OAV-01:CAM:Dim0SA_RBV") +record(subArray, "BL03S-DI-OAV-01:CAM:Dim0SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize0_RBV") + field(FLNK, "BL03S-DI-OAV-01:CAM:ArraySize0_RBV") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize0_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySize0_RBV") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim1SA_RBV") + field(INP, "BL03S-DI-OAV-01:CAM:Dim0SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:CAM:Dim1SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:CAM:Dim1SA_RBV") +record(subArray, "BL03S-DI-OAV-01:CAM:Dim1SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize1_RBV") + field(FLNK, "BL03S-DI-OAV-01:CAM:ArraySize1_RBV") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize1_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySize1_RBV") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim2SA_RBV") + field(INP, "BL03S-DI-OAV-01:CAM:Dim1SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:CAM:Dim2SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:CAM:Dim2SA_RBV") +record(subArray, "BL03S-DI-OAV-01:CAM:Dim2SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize2_RBV") + field(FLNK, "BL03S-DI-OAV-01:CAM:ArraySize2_RBV") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize2_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySize2_RBV") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim3SA_RBV") + field(INP, "BL03S-DI-OAV-01:CAM:Dim2SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:CAM:Dim3SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:CAM:Dim3SA_RBV") +record(subArray, "BL03S-DI-OAV-01:CAM:Dim3SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize3_RBV") + field(FLNK, "BL03S-DI-OAV-01:CAM:ArraySize3_RBV") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize3_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySize3_RBV") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim4SA_RBV") + field(INP, "BL03S-DI-OAV-01:CAM:Dim3SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:CAM:Dim4SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:CAM:Dim4SA_RBV") +record(subArray, "BL03S-DI-OAV-01:CAM:Dim4SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize4_RBV") + field(FLNK, "BL03S-DI-OAV-01:CAM:ArraySize4_RBV") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize4_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySize4_RBV") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim5SA_RBV") + field(INP, "BL03S-DI-OAV-01:CAM:Dim4SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:CAM:Dim5SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:CAM:Dim5SA_RBV") +record(subArray, "BL03S-DI-OAV-01:CAM:Dim5SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize5_RBV") + field(FLNK, "BL03S-DI-OAV-01:CAM:ArraySize5_RBV") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize5_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySize5_RBV") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim6SA_RBV") + field(INP, "BL03S-DI-OAV-01:CAM:Dim5SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:CAM:Dim6SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:CAM:Dim6SA_RBV") +record(subArray, "BL03S-DI-OAV-01:CAM:Dim6SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize6_RBV") + field(FLNK, "BL03S-DI-OAV-01:CAM:ArraySize6_RBV") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize6_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySize6_RBV") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim7SA_RBV") + field(INP, "BL03S-DI-OAV-01:CAM:Dim6SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:CAM:Dim7SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:CAM:Dim7SA_RBV") +record(subArray, "BL03S-DI-OAV-01:CAM:Dim7SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize7_RBV") + field(FLNK, "BL03S-DI-OAV-01:CAM:ArraySize7_RBV") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize7_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySize7_RBV") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim8SA_RBV") + field(INP, "BL03S-DI-OAV-01:CAM:Dim7SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:CAM:Dim8SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:CAM:Dim8SA_RBV") +record(subArray, "BL03S-DI-OAV-01:CAM:Dim8SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize8_RBV") + field(FLNK, "BL03S-DI-OAV-01:CAM:ArraySize8_RBV") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize8_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySize8_RBV") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:CAM:Dim9SA_RBV") + field(INP, "BL03S-DI-OAV-01:CAM:Dim8SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:CAM:Dim9SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:CAM:Dim9SA_RBV") +record(subArray, "BL03S-DI-OAV-01:CAM:Dim9SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ArraySize9_RBV") + field(FLNK, "BL03S-DI-OAV-01:CAM:ArraySize9_RBV") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize9_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySize9_RBV") { - field(INP, "S03SIM-DI-OAV-01:CAM:Dim9SA_RBV") + field(INP, "BL03S-DI-OAV-01:CAM:Dim9SA_RBV") } -record(mbbi, "S03SIM-DI-OAV-01:CAM:BayerPattern_RBV") +record(mbbi, "BL03S-DI-OAV-01:CAM:BayerPattern_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)BAYER_PATTERN") @@ -556,28 +556,28 @@ record(mbbi, "S03SIM-DI-OAV-01:CAM:BayerPattern_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySizeX_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySizeX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)ARRAY_SIZE_X") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySizeY_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySizeY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)ARRAY_SIZE_Y") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySizeZ_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySizeZ_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)ARRAY_SIZE_Z") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:ArraySize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)ARRAY_SIZE") @@ -587,7 +587,7 @@ record(longin, "S03SIM-DI-OAV-01:CAM:ArraySize_RBV") ################################################################### # These records have information on the compression # ################################################################### -record(stringin, "S03SIM-DI-OAV-01:CAM:Codec_RBV") +record(stringin, "BL03S-DI-OAV-01:CAM:Codec_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CAM,0,1)CODEC") @@ -595,7 +595,7 @@ record(stringin, "S03SIM-DI-OAV-01:CAM:Codec_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:CAM:CompressedSize_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:CompressedSize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)COMPRESSED_SIZE") @@ -606,7 +606,7 @@ record(longin, "S03SIM-DI-OAV-01:CAM:CompressedSize_RBV") # These records control the data type # ################################################################### -record(mbbo, "S03SIM-DI-OAV-01:CAM:DataType") +record(mbbo, "BL03S-DI-OAV-01:CAM:DataType") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -635,7 +635,7 @@ record(mbbo, "S03SIM-DI-OAV-01:CAM:DataType") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-DI-OAV-01:CAM:DataType_RBV") +record(mbbi, "BL03S-DI-OAV-01:CAM:DataType_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)DATA_TYPE") @@ -667,7 +667,7 @@ record(mbbi, "S03SIM-DI-OAV-01:CAM:DataType_RBV") # These choices must agree with NDColorMode_t in NDArray.h # ################################################################### -record(mbbo, "S03SIM-DI-OAV-01:CAM:ColorMode") +record(mbbo, "BL03S-DI-OAV-01:CAM:ColorMode") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -691,7 +691,7 @@ record(mbbo, "S03SIM-DI-OAV-01:CAM:ColorMode") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-DI-OAV-01:CAM:ColorMode_RBV") +record(mbbi, "BL03S-DI-OAV-01:CAM:ColorMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)COLOR_MODE") @@ -717,14 +717,14 @@ record(mbbi, "S03SIM-DI-OAV-01:CAM:ColorMode_RBV") ################################################################### # These records are the uniqueId and time stamps of the array # ################################################################### -record(longin, "S03SIM-DI-OAV-01:CAM:UniqueId_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:UniqueId_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)UNIQUE_ID") field(SCAN, "I/O Intr") } -record(ai, "S03SIM-DI-OAV-01:CAM:TimeStamp_RBV") +record(ai, "BL03S-DI-OAV-01:CAM:TimeStamp_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CAM,0,1)TIME_STAMP") @@ -732,14 +732,14 @@ record(ai, "S03SIM-DI-OAV-01:CAM:TimeStamp_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:CAM:EpicsTSSec_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:EpicsTSSec_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)EPICS_TS_SEC") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:CAM:EpicsTSNsec_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:EpicsTSNsec_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)EPICS_TS_NSEC") @@ -750,13 +750,13 @@ record(longin, "S03SIM-DI-OAV-01:CAM:EpicsTSNsec_RBV") # These records provide statistics on array callbacks and # # array callback rates # ################################################################### -record(longout, "S03SIM-DI-OAV-01:CAM:ArrayCounter") +record(longout, "BL03S-DI-OAV-01:CAM:ArrayCounter") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.CAM,0,1)ARRAY_COUNTER") } -record(longin, "S03SIM-DI-OAV-01:CAM:ArrayCounter_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:ArrayCounter_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)ARRAY_COUNTER") @@ -764,12 +764,12 @@ record(longin, "S03SIM-DI-OAV-01:CAM:ArrayCounter_RBV") } # Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:CAM:ArrayRate_RBV") +record(calc, "BL03S-DI-OAV-01:CAM:ArrayRate_RBV") { - field(INPA, "S03SIM-DI-OAV-01:CAM:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:CAM:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPA, "BL03S-DI-OAV-01:CAM:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "BL03S-DI-OAV-01:CAM:ArrayCounter_RBV NPP NMS") # Current counter value field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:CAM:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPD, "BL03S-DI-OAV-01:CAM:ArrayRate_RBV.VAL NPP NMS") # Previous rate field(INPE, "0.0") # Smoothing factor field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") field(PREC, "2" ) @@ -780,7 +780,7 @@ record(calc, "S03SIM-DI-OAV-01:CAM:ArrayRate_RBV") ################################################################### # These records control NDArray callacks # ################################################################### -record(bo, "S03SIM-DI-OAV-01:CAM:ArrayCallbacks") +record(bo, "BL03S-DI-OAV-01:CAM:ArrayCallbacks") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -793,7 +793,7 @@ record(bo, "S03SIM-DI-OAV-01:CAM:ArrayCallbacks") info(autosaveFields, "VAL") } -record(bi, "S03SIM-DI-OAV-01:CAM:ArrayCallbacks_RBV") +record(bi, "BL03S-DI-OAV-01:CAM:ArrayCallbacks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)ARRAY_CALLBACKS") @@ -808,7 +808,7 @@ record(bi, "S03SIM-DI-OAV-01:CAM:ArrayCallbacks_RBV") # This record contains macro definitions for the attributes # ################################################################### -record(waveform, "S03SIM-DI-OAV-01:CAM:NDAttributesMacros") +record(waveform, "BL03S-DI-OAV-01:CAM:NDAttributesMacros") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -822,7 +822,7 @@ record(waveform, "S03SIM-DI-OAV-01:CAM:NDAttributesMacros") # This record is the name of a file defining attributes # ################################################################### -record(waveform, "S03SIM-DI-OAV-01:CAM:NDAttributesFile") +record(waveform, "BL03S-DI-OAV-01:CAM:NDAttributesFile") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -836,7 +836,7 @@ record(waveform, "S03SIM-DI-OAV-01:CAM:NDAttributesFile") # This record defines the status of reading attributes file # ################################################################### -record(mbbi, "S03SIM-DI-OAV-01:CAM:NDAttributesStatus") +record(mbbi, "BL03S-DI-OAV-01:CAM:NDAttributesStatus") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)ND_ATTRIBUTES_STATUS") @@ -859,7 +859,7 @@ record(mbbi, "S03SIM-DI-OAV-01:CAM:NDAttributesStatus") # Status of NDArrayPool - number of buffers, memory used etc. # ################################################################### -record(ai, "S03SIM-DI-OAV-01:CAM:PoolMaxMem") +record(ai, "BL03S-DI-OAV-01:CAM:PoolMaxMem") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CAM,0,1)POOL_MAX_MEMORY") @@ -869,59 +869,59 @@ record(ai, "S03SIM-DI-OAV-01:CAM:PoolMaxMem") field(PINI, "YES") } -record(ai, "S03SIM-DI-OAV-01:CAM:PoolUsedMem") +record(ai, "BL03S-DI-OAV-01:CAM:PoolUsedMem") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CAM,0,1)POOL_USED_MEMORY") field(PREC, "1") field(EGU, "MB") field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:CAM:PoolAllocBuffers") + field(FLNK, "BL03S-DI-OAV-01:CAM:PoolAllocBuffers") info(autosaveFields, "SCAN") } -record(longin, "S03SIM-DI-OAV-01:CAM:PoolAllocBuffers") +record(longin, "BL03S-DI-OAV-01:CAM:PoolAllocBuffers") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:CAM:PoolFreeBuffers") + field(FLNK, "BL03S-DI-OAV-01:CAM:PoolFreeBuffers") } -record(longin, "S03SIM-DI-OAV-01:CAM:PoolFreeBuffers") +record(longin, "BL03S-DI-OAV-01:CAM:PoolFreeBuffers") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:CAM:PoolUsedBuffers") + field(FLNK, "BL03S-DI-OAV-01:CAM:PoolUsedBuffers") } -record(calc, "S03SIM-DI-OAV-01:CAM:PoolUsedBuffers") +record(calc, "BL03S-DI-OAV-01:CAM:PoolUsedBuffers") { - field(INPA, "S03SIM-DI-OAV-01:CAM:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:CAM:PoolFreeBuffers NPP MS") + field(INPA, "BL03S-DI-OAV-01:CAM:PoolAllocBuffers NPP MS") + field(INPB, "BL03S-DI-OAV-01:CAM:PoolFreeBuffers NPP MS") field(CALC, "A-B") } -record(bo, "S03SIM-DI-OAV-01:CAM:EmptyFreeList") +record(bo, "BL03S-DI-OAV-01:CAM:EmptyFreeList") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.CAM,0,1)POOL_EMPTY_FREELIST") } -record(longin, "S03SIM-DI-OAV-01:CAM:NumQueuedArrays") +record(longin, "BL03S-DI-OAV-01:CAM:NumQueuedArrays") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)NUM_QUEUED_ARRAYS") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:CAM:MaxSizeX_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:MaxSizeX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)MAX_SIZE_X") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:CAM:MaxSizeY_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:MaxSizeY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)MAX_SIZE_Y") @@ -933,7 +933,7 @@ record(longin, "S03SIM-DI-OAV-01:CAM:MaxSizeY_RBV") # including binning, region start and size # ################################################################### -record(longout, "S03SIM-DI-OAV-01:CAM:BinX") +record(longout, "BL03S-DI-OAV-01:CAM:BinX") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -942,14 +942,14 @@ record(longout, "S03SIM-DI-OAV-01:CAM:BinX") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:CAM:BinX_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:BinX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)BIN_X") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:CAM:BinY") +record(longout, "BL03S-DI-OAV-01:CAM:BinY") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -958,14 +958,14 @@ record(longout, "S03SIM-DI-OAV-01:CAM:BinY") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:CAM:BinY_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:BinY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)BIN_Y") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:CAM:MinX") +record(longout, "BL03S-DI-OAV-01:CAM:MinX") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -974,14 +974,14 @@ record(longout, "S03SIM-DI-OAV-01:CAM:MinX") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:CAM:MinX_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:MinX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)MIN_X") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:CAM:MinY") +record(longout, "BL03S-DI-OAV-01:CAM:MinY") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -990,14 +990,14 @@ record(longout, "S03SIM-DI-OAV-01:CAM:MinY") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:CAM:MinY_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:MinY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)MIN_Y") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:CAM:SizeX") +record(longout, "BL03S-DI-OAV-01:CAM:SizeX") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -1006,14 +1006,14 @@ record(longout, "S03SIM-DI-OAV-01:CAM:SizeX") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:CAM:SizeX_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:SizeX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)SIZE_X") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:CAM:SizeY") +record(longout, "BL03S-DI-OAV-01:CAM:SizeY") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -1022,14 +1022,14 @@ record(longout, "S03SIM-DI-OAV-01:CAM:SizeY") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:CAM:SizeY_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:SizeY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)SIZE_Y") field(SCAN, "I/O Intr") } -record(bo, "S03SIM-DI-OAV-01:CAM:ReverseX") +record(bo, "BL03S-DI-OAV-01:CAM:ReverseX") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -1040,7 +1040,7 @@ record(bo, "S03SIM-DI-OAV-01:CAM:ReverseX") info(autosaveFields, "VAL") } -record(bi, "S03SIM-DI-OAV-01:CAM:ReverseX_RBV") +record(bi, "BL03S-DI-OAV-01:CAM:ReverseX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)REVERSE_X") @@ -1049,7 +1049,7 @@ record(bi, "S03SIM-DI-OAV-01:CAM:ReverseX_RBV") field(SCAN, "I/O Intr") } -record(bo, "S03SIM-DI-OAV-01:CAM:ReverseY") +record(bo, "BL03S-DI-OAV-01:CAM:ReverseY") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -1060,7 +1060,7 @@ record(bo, "S03SIM-DI-OAV-01:CAM:ReverseY") info(autosaveFields, "VAL") } -record(bi, "S03SIM-DI-OAV-01:CAM:ReverseY_RBV") +record(bi, "BL03S-DI-OAV-01:CAM:ReverseY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)REVERSE_Y") @@ -1074,7 +1074,7 @@ record(bi, "S03SIM-DI-OAV-01:CAM:ReverseY_RBV") # These records control the acquisition time and # # period # ################################################################### -record(ao, "S03SIM-DI-OAV-01:CAM:AcquireTime") +record(ao, "BL03S-DI-OAV-01:CAM:AcquireTime") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -1084,7 +1084,7 @@ record(ao, "S03SIM-DI-OAV-01:CAM:AcquireTime") info(autosaveFields, "VAL") } -record(ai, "S03SIM-DI-OAV-01:CAM:AcquireTime_RBV") +record(ai, "BL03S-DI-OAV-01:CAM:AcquireTime_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CAM,0,1)ACQ_TIME") @@ -1092,7 +1092,7 @@ record(ai, "S03SIM-DI-OAV-01:CAM:AcquireTime_RBV") field(SCAN, "I/O Intr") } -record(ao, "S03SIM-DI-OAV-01:CAM:AcquirePeriod") +record(ao, "BL03S-DI-OAV-01:CAM:AcquirePeriod") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -1102,7 +1102,7 @@ record(ao, "S03SIM-DI-OAV-01:CAM:AcquirePeriod") info(autosaveFields, "VAL") } -record(ai, "S03SIM-DI-OAV-01:CAM:AcquirePeriod_RBV") +record(ai, "BL03S-DI-OAV-01:CAM:AcquirePeriod_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CAM,0,1)ACQ_PERIOD") @@ -1110,7 +1110,7 @@ record(ai, "S03SIM-DI-OAV-01:CAM:AcquirePeriod_RBV") field(SCAN, "I/O Intr") } -record(ai, "S03SIM-DI-OAV-01:CAM:TimeRemaining_RBV") +record(ai, "BL03S-DI-OAV-01:CAM:TimeRemaining_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CAM,0,1)TIME_REMAINING") @@ -1121,7 +1121,7 @@ record(ai, "S03SIM-DI-OAV-01:CAM:TimeRemaining_RBV") ################################################################### # These records control the gain # ################################################################### -record(ao, "S03SIM-DI-OAV-01:CAM:Gain") +record(ao, "BL03S-DI-OAV-01:CAM:Gain") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -1131,7 +1131,7 @@ record(ao, "S03SIM-DI-OAV-01:CAM:Gain") info(autosaveFields, "VAL") } -record(ai, "S03SIM-DI-OAV-01:CAM:Gain_RBV") +record(ai, "BL03S-DI-OAV-01:CAM:Gain_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CAM,0,1)GAIN") @@ -1142,7 +1142,7 @@ record(ai, "S03SIM-DI-OAV-01:CAM:Gain_RBV") ################################################################### # These records control the frame type # ################################################################### -record(mbbo, "S03SIM-DI-OAV-01:CAM:FrameType") +record(mbbo, "BL03S-DI-OAV-01:CAM:FrameType") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -1159,7 +1159,7 @@ record(mbbo, "S03SIM-DI-OAV-01:CAM:FrameType") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-DI-OAV-01:CAM:FrameType_RBV") +record(mbbi, "BL03S-DI-OAV-01:CAM:FrameType_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)FRAME_TYPE") @@ -1177,7 +1177,7 @@ record(mbbi, "S03SIM-DI-OAV-01:CAM:FrameType_RBV") ################################################################### # These records control the acquisition mode # ################################################################### -record(mbbo, "S03SIM-DI-OAV-01:CAM:ImageMode") +record(mbbo, "BL03S-DI-OAV-01:CAM:ImageMode") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -1192,7 +1192,7 @@ record(mbbo, "S03SIM-DI-OAV-01:CAM:ImageMode") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-DI-OAV-01:CAM:ImageMode_RBV") +record(mbbi, "BL03S-DI-OAV-01:CAM:ImageMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)IMAGE_MODE") @@ -1208,7 +1208,7 @@ record(mbbi, "S03SIM-DI-OAV-01:CAM:ImageMode_RBV") ################################################################### # These records control the trigger mode # ################################################################### -record(mbbo, "S03SIM-DI-OAV-01:CAM:TriggerMode") +record(mbbo, "BL03S-DI-OAV-01:CAM:TriggerMode") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -1221,7 +1221,7 @@ record(mbbo, "S03SIM-DI-OAV-01:CAM:TriggerMode") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-DI-OAV-01:CAM:TriggerMode_RBV") +record(mbbi, "BL03S-DI-OAV-01:CAM:TriggerMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)TRIGGER_MODE") @@ -1236,7 +1236,7 @@ record(mbbi, "S03SIM-DI-OAV-01:CAM:TriggerMode_RBV") # These records control the number of exposures and # # number of images # ################################################################### -record(longout, "S03SIM-DI-OAV-01:CAM:NumExposures") +record(longout, "BL03S-DI-OAV-01:CAM:NumExposures") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -1245,20 +1245,20 @@ record(longout, "S03SIM-DI-OAV-01:CAM:NumExposures") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:CAM:NumExposures_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:NumExposures_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)NEXPOSURES") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:CAM:NumExposuresCounter_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:NumExposuresCounter_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)NEXPOSURES_COUNTER") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:CAM:NumImages") +record(longout, "BL03S-DI-OAV-01:CAM:NumImages") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -1267,14 +1267,14 @@ record(longout, "S03SIM-DI-OAV-01:CAM:NumImages") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:CAM:NumImages_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:NumImages_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)NIMAGES") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:CAM:NumImagesCounter_RBV") +record(longin, "BL03S-DI-OAV-01:CAM:NumImagesCounter_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)NIMAGES_COUNTER") @@ -1285,7 +1285,7 @@ record(longin, "S03SIM-DI-OAV-01:CAM:NumImagesCounter_RBV") # These records are for the detector state # ################################################################### -record(mbbi, "S03SIM-DI-OAV-01:CAM:DetectorState_RBV") +record(mbbi, "BL03S-DI-OAV-01:CAM:DetectorState_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)STATUS") @@ -1330,7 +1330,7 @@ record(mbbi, "S03SIM-DI-OAV-01:CAM:DetectorState_RBV") ################################################################### # Status message. -record(waveform, "S03SIM-DI-OAV-01:CAM:StatusMessage_RBV") +record(waveform, "BL03S-DI-OAV-01:CAM:StatusMessage_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CAM,0,1)STATUS_MESSAGE") @@ -1339,7 +1339,7 @@ record(waveform, "S03SIM-DI-OAV-01:CAM:StatusMessage_RBV") field(SCAN, "I/O Intr") } -record(waveform, "S03SIM-DI-OAV-01:CAM:StringToServer_RBV") +record(waveform, "BL03S-DI-OAV-01:CAM:StringToServer_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CAM,0,1)STRING_TO_SERVER") @@ -1348,7 +1348,7 @@ record(waveform, "S03SIM-DI-OAV-01:CAM:StringToServer_RBV") field(SCAN, "I/O Intr") } -record(waveform, "S03SIM-DI-OAV-01:CAM:StringFromServer_RBV") +record(waveform, "BL03S-DI-OAV-01:CAM:StringFromServer_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CAM,0,1)STRING_FROM_SERVER") @@ -1360,7 +1360,7 @@ record(waveform, "S03SIM-DI-OAV-01:CAM:StringFromServer_RBV") ################################################################@### # This record can be used to force a read of the detector status # #################################################################### -record(bo,"S03SIM-DI-OAV-01:CAM:ReadStatus") { +record(bo,"BL03S-DI-OAV-01:CAM:ReadStatus") { field(DTYP,"asynInt32") field(OUT, "@asyn(OAV.CAM,0,1)READ_STATUS") field(VAL, "1") @@ -1372,7 +1372,7 @@ record(bo,"S03SIM-DI-OAV-01:CAM:ReadStatus") { # These records control the shutter # ################################################################### -record(mbbo, "S03SIM-DI-OAV-01:CAM:ShutterMode") +record(mbbo, "BL03S-DI-OAV-01:CAM:ShutterMode") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -1387,7 +1387,7 @@ record(mbbo, "S03SIM-DI-OAV-01:CAM:ShutterMode") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-DI-OAV-01:CAM:ShutterMode_RBV") +record(mbbi, "BL03S-DI-OAV-01:CAM:ShutterMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)SHUTTER_MODE") @@ -1400,7 +1400,7 @@ record(mbbi, "S03SIM-DI-OAV-01:CAM:ShutterMode_RBV") field(SCAN, "I/O Intr") } -record(bo, "S03SIM-DI-OAV-01:CAM:ShutterControl") +record(bo, "BL03S-DI-OAV-01:CAM:ShutterControl") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -1410,7 +1410,7 @@ record(bo, "S03SIM-DI-OAV-01:CAM:ShutterControl") field(VAL, "0") } -record(bi, "S03SIM-DI-OAV-01:CAM:ShutterControl_RBV") +record(bi, "BL03S-DI-OAV-01:CAM:ShutterControl_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)SHUTTER_CONTROL") @@ -1419,7 +1419,7 @@ record(bi, "S03SIM-DI-OAV-01:CAM:ShutterControl_RBV") field(SCAN, "I/O Intr") } -record(bi, "S03SIM-DI-OAV-01:CAM:ShutterStatus_RBV") +record(bi, "BL03S-DI-OAV-01:CAM:ShutterStatus_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)SHUTTER_STATUS") @@ -1430,7 +1430,7 @@ record(bi, "S03SIM-DI-OAV-01:CAM:ShutterStatus_RBV") field(SCAN, "I/O Intr") } -record(ao, "S03SIM-DI-OAV-01:CAM:ShutterOpenDelay") +record(ao, "BL03S-DI-OAV-01:CAM:ShutterOpenDelay") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -1440,7 +1440,7 @@ record(ao, "S03SIM-DI-OAV-01:CAM:ShutterOpenDelay") info(autosaveFields, "VAL") } -record(ai, "S03SIM-DI-OAV-01:CAM:ShutterOpenDelay_RBV") +record(ai, "BL03S-DI-OAV-01:CAM:ShutterOpenDelay_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CAM,0,1)SHUTTER_OPEN_DELAY") @@ -1448,7 +1448,7 @@ record(ai, "S03SIM-DI-OAV-01:CAM:ShutterOpenDelay_RBV") field(SCAN, "I/O Intr") } -record(ao, "S03SIM-DI-OAV-01:CAM:ShutterCloseDelay") +record(ao, "BL03S-DI-OAV-01:CAM:ShutterCloseDelay") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -1458,7 +1458,7 @@ record(ao, "S03SIM-DI-OAV-01:CAM:ShutterCloseDelay") info(autosaveFields, "VAL") } -record(ai, "S03SIM-DI-OAV-01:CAM:ShutterCloseDelay_RBV") +record(ai, "BL03S-DI-OAV-01:CAM:ShutterCloseDelay_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CAM,0,1)SHUTTER_CLOSE_DELAY") @@ -1467,7 +1467,7 @@ record(ai, "S03SIM-DI-OAV-01:CAM:ShutterCloseDelay_RBV") } # This record changes state when the driver opens/closes an EPICS shutter -record(bi, "S03SIM-DI-OAV-01:CAM:ShutterControlEPICS") +record(bi, "BL03S-DI-OAV-01:CAM:ShutterControlEPICS") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)SHUTTER_CONTROL_EPICS") @@ -1476,18 +1476,18 @@ record(bi, "S03SIM-DI-OAV-01:CAM:ShutterControlEPICS") field(ONAM, "Open") field(OSV, "MINOR") field(SCAN, "I/O Intr") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ShutterFanout.PROC") + field(FLNK, "BL03S-DI-OAV-01:CAM:ShutterFanout.PROC") } -record(fanout, "S03SIM-DI-OAV-01:CAM:ShutterFanout") +record(fanout, "BL03S-DI-OAV-01:CAM:ShutterFanout") { - field(LNK1, "S03SIM-DI-OAV-01:CAM:ShutterOpenEPICS.PROC PP MS") - field(LNK2, "S03SIM-DI-OAV-01:CAM:ShutterCloseEPICS.PROC PP MS") + field(LNK1, "BL03S-DI-OAV-01:CAM:ShutterOpenEPICS.PROC PP MS") + field(LNK2, "BL03S-DI-OAV-01:CAM:ShutterCloseEPICS.PROC PP MS") } -record(calcout, "S03SIM-DI-OAV-01:CAM:ShutterOpenEPICS") +record(calcout, "BL03S-DI-OAV-01:CAM:ShutterOpenEPICS") { - field(INPA, "S03SIM-DI-OAV-01:CAM:ShutterControlEPICS.VAL NPP NMS") + field(INPA, "BL03S-DI-OAV-01:CAM:ShutterControlEPICS.VAL NPP NMS") field(CALC, "A") field(OOPT, "Transition To Non-zero") field(DOPT, "Use OCAL") @@ -1496,9 +1496,9 @@ record(calcout, "S03SIM-DI-OAV-01:CAM:ShutterOpenEPICS") info(autosaveFields, "OUT OCAL") } -record(calcout, "S03SIM-DI-OAV-01:CAM:ShutterCloseEPICS") +record(calcout, "BL03S-DI-OAV-01:CAM:ShutterCloseEPICS") { - field(INPA, "S03SIM-DI-OAV-01:CAM:ShutterControlEPICS.VAL NPP NMS") + field(INPA, "BL03S-DI-OAV-01:CAM:ShutterControlEPICS.VAL NPP NMS") field(CALC, "A") field(OOPT, "Transition To Zero") field(DOPT, "Use OCAL") @@ -1507,7 +1507,7 @@ record(calcout, "S03SIM-DI-OAV-01:CAM:ShutterCloseEPICS") info(autosaveFields, "OUT OCAL") } -record(mbbi, "S03SIM-DI-OAV-01:CAM:ShutterStatusEPICS_RBV") +record(mbbi, "BL03S-DI-OAV-01:CAM:ShutterStatusEPICS_RBV") { field(DTYP, "Raw Soft Channel") field(INP, "test CP MS") @@ -1524,7 +1524,7 @@ record(mbbi, "S03SIM-DI-OAV-01:CAM:ShutterStatusEPICS_RBV") # These records control the detector temperature # ################################################################### -record(ao, "S03SIM-DI-OAV-01:CAM:Temperature") +record(ao, "BL03S-DI-OAV-01:CAM:Temperature") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -1535,7 +1535,7 @@ record(ao, "S03SIM-DI-OAV-01:CAM:Temperature") info(autosaveFields, "VAL") } -record(ai, "S03SIM-DI-OAV-01:CAM:Temperature_RBV") +record(ai, "BL03S-DI-OAV-01:CAM:Temperature_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CAM,0,1)TEMPERATURE") @@ -1544,7 +1544,7 @@ record(ai, "S03SIM-DI-OAV-01:CAM:Temperature_RBV") field(SCAN, "I/O Intr") } -record(ai, "S03SIM-DI-OAV-01:CAM:TemperatureActual") +record(ai, "BL03S-DI-OAV-01:CAM:TemperatureActual") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CAM,0,1)TEMPERATURE_ACTUAL") @@ -1562,21 +1562,21 @@ record(ai, "S03SIM-DI-OAV-01:CAM:TemperatureActual") # Some cameras use both AcquisitionFrameRate and AcquirePeriod. # Make AcquirePeriod update if FrameRate is changed. -record(ao, "S03SIM-DI-OAV-01:CAM:AcquirePeriod") +record(ao, "BL03S-DI-OAV-01:CAM:AcquirePeriod") { info(ai:READBACK, "1") } # This record hides the fact that some cameras use FrameRate and some use FrameRateAbs # This is not PINI=YES because AcquirePeriod is and they control the same thing -record(ao, "S03SIM-DI-OAV-01:CAM:FrameRate") +record(ao, "BL03S-DI-OAV-01:CAM:FrameRate") { field(DTYP, "asynFloat64") field(OUT, "@asyn(OAV.CAM 0)GC_FRAMERATE") field(PREC, "3") } -record(ai, "S03SIM-DI-OAV-01:CAM:FrameRate_RBV") +record(ai, "BL03S-DI-OAV-01:CAM:FrameRate_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CAM 0)GC_FRAMERATE") @@ -1586,7 +1586,7 @@ record(ai, "S03SIM-DI-OAV-01:CAM:FrameRate_RBV") # Some cameras (Basler, Point Grey, FLIR) use AcquisitionFrameRateEnable or AcquisitionFrameRateEnabled # This record hides the fact that the feature name may differ; the record name is always the same. -record(bo, "S03SIM-DI-OAV-01:CAM:FrameRateEnable") +record(bo, "BL03S-DI-OAV-01:CAM:FrameRateEnable") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -1595,7 +1595,7 @@ record(bo, "S03SIM-DI-OAV-01:CAM:FrameRateEnable") field(ONAM, "Yes") } -record(bi, "S03SIM-DI-OAV-01:CAM:FrameRateEnable_RBV") +record(bi, "BL03S-DI-OAV-01:CAM:FrameRateEnable_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM 0)GC_FRAMERATE_ENABLE") @@ -1605,7 +1605,7 @@ record(bi, "S03SIM-DI-OAV-01:CAM:FrameRateEnable_RBV") } # This record is used to ensure there is a record for TriggerSource even if there is no such GenICam feature -record(mbbo, "S03SIM-DI-OAV-01:CAM:TriggerSource") +record(mbbo, "BL03S-DI-OAV-01:CAM:TriggerSource") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -1614,7 +1614,7 @@ record(mbbo, "S03SIM-DI-OAV-01:CAM:TriggerSource") field(ZRVL, "0") } -record(mbbi, "S03SIM-DI-OAV-01:CAM:TriggerSource_RBV") +record(mbbi, "BL03S-DI-OAV-01:CAM:TriggerSource_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM 0)GC_TRIGGER_SOURCE") @@ -1624,7 +1624,7 @@ record(mbbi, "S03SIM-DI-OAV-01:CAM:TriggerSource_RBV") } # This record is used to ensure there is a record for TriggerOverlap even if there is no such GenICam feature -record(mbbo, "S03SIM-DI-OAV-01:CAM:TriggerOverlap") +record(mbbo, "BL03S-DI-OAV-01:CAM:TriggerOverlap") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -1633,7 +1633,7 @@ record(mbbo, "S03SIM-DI-OAV-01:CAM:TriggerOverlap") field(ZRVL, "0") } -record(mbbi, "S03SIM-DI-OAV-01:CAM:TriggerOverlap_RBV") +record(mbbi, "BL03S-DI-OAV-01:CAM:TriggerOverlap_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM 0)GC_TRIGGER_OVERLAP") @@ -1643,7 +1643,7 @@ record(mbbi, "S03SIM-DI-OAV-01:CAM:TriggerOverlap_RBV") } # This record is used to ensure there is a record for TriggerSoftware even if there is no such GenICam feature -record(bo, "S03SIM-DI-OAV-01:CAM:TriggerSoftware") +record(bo, "BL03S-DI-OAV-01:CAM:TriggerSoftware") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -1653,7 +1653,7 @@ record(bo, "S03SIM-DI-OAV-01:CAM:TriggerSoftware") } # This record is used to ensure there is a record for ExposureMode even if there is no such GenICam feature -record(mbbo, "S03SIM-DI-OAV-01:CAM:ExposureMode") +record(mbbo, "BL03S-DI-OAV-01:CAM:ExposureMode") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -1662,7 +1662,7 @@ record(mbbo, "S03SIM-DI-OAV-01:CAM:ExposureMode") field(ZRVL, "0") } -record(mbbi, "S03SIM-DI-OAV-01:CAM:ExposureMode_RBV") +record(mbbi, "BL03S-DI-OAV-01:CAM:ExposureMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM 0)GC_EXPOSURE_MODE") @@ -1672,7 +1672,7 @@ record(mbbi, "S03SIM-DI-OAV-01:CAM:ExposureMode_RBV") } # This record is used to ensure there is a record for ExposureAuto even if there is no such GenICam feature -record(mbbo, "S03SIM-DI-OAV-01:CAM:ExposureAuto") +record(mbbo, "BL03S-DI-OAV-01:CAM:ExposureAuto") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -1681,7 +1681,7 @@ record(mbbo, "S03SIM-DI-OAV-01:CAM:ExposureAuto") field(ZRVL, "0") } -record(mbbi, "S03SIM-DI-OAV-01:CAM:ExposureAuto_RBV") +record(mbbi, "BL03S-DI-OAV-01:CAM:ExposureAuto_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM 0)GC_EXPOSURE_AUTO") @@ -1691,7 +1691,7 @@ record(mbbi, "S03SIM-DI-OAV-01:CAM:ExposureAuto_RBV") } # This record is used to ensure there is a record for GainAuto even if there is no such GenICam feature -record(mbbo, "S03SIM-DI-OAV-01:CAM:GainAuto") +record(mbbo, "BL03S-DI-OAV-01:CAM:GainAuto") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -1700,7 +1700,7 @@ record(mbbo, "S03SIM-DI-OAV-01:CAM:GainAuto") field(ZRVL, "0") } -record(mbbi, "S03SIM-DI-OAV-01:CAM:GainAuto_RBV") +record(mbbi, "BL03S-DI-OAV-01:CAM:GainAuto_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM 0)GC_GAIN_AUTO") @@ -1710,7 +1710,7 @@ record(mbbi, "S03SIM-DI-OAV-01:CAM:GainAuto_RBV") } # This record is used to ensure there is a record for PixelFormat even if there is no such GenICam feature -record(mbbo, "S03SIM-DI-OAV-01:CAM:PixelFormat") +record(mbbo, "BL03S-DI-OAV-01:CAM:PixelFormat") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -1719,7 +1719,7 @@ record(mbbo, "S03SIM-DI-OAV-01:CAM:PixelFormat") field(ZRVL, "0") } -record(mbbi, "S03SIM-DI-OAV-01:CAM:PixelFormat_RBV") +record(mbbi, "BL03S-DI-OAV-01:CAM:PixelFormat_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM 0)GC_PIXEL_FORMAT") @@ -1728,7 +1728,7 @@ record(mbbi, "S03SIM-DI-OAV-01:CAM:PixelFormat_RBV") field(SCAN, "I/O Intr") } -record(ai, "S03SIM-DI-OAV-01:CAM:ARFramesCompleted") +record(ai, "BL03S-DI-OAV-01:CAM:ARFramesCompleted") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CAM,0,1)ARAVIS_COMPLETED") @@ -1736,7 +1736,7 @@ record(ai, "S03SIM-DI-OAV-01:CAM:ARFramesCompleted") info(autosaveFields, "DESC LLSV LOLO LOW LSV") } -record(ai, "S03SIM-DI-OAV-01:CAM:ARFrameFailures") +record(ai, "BL03S-DI-OAV-01:CAM:ARFrameFailures") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CAM,0,1)ARAVIS_FAILURES") @@ -1744,7 +1744,7 @@ record(ai, "S03SIM-DI-OAV-01:CAM:ARFrameFailures") info(autosaveFields, "DESC HHSV HIHI HIGH HSV") } -record(ai, "S03SIM-DI-OAV-01:CAM:ARFrameUnderruns") +record(ai, "BL03S-DI-OAV-01:CAM:ARFrameUnderruns") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CAM,0,1)ARAVIS_UNDERRUNS") @@ -1752,7 +1752,7 @@ record(ai, "S03SIM-DI-OAV-01:CAM:ARFrameUnderruns") info(autosaveFields, "DESC HHSV HIHI HIGH HSV") } -record(longin, "S03SIM-DI-OAV-01:CAM:ARMissingPackets") +record(longin, "BL03S-DI-OAV-01:CAM:ARMissingPackets") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)ARAVIS_MISSING_PKTS") @@ -1760,7 +1760,7 @@ record(longin, "S03SIM-DI-OAV-01:CAM:ARMissingPackets") info(autosaveFields, "DESC HHSV HIHI HIGH HSV") } -record(longin, "S03SIM-DI-OAV-01:CAM:ARResentPackets") +record(longin, "BL03S-DI-OAV-01:CAM:ARResentPackets") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)ARAVIS_RESENT_PKTS") @@ -1768,7 +1768,7 @@ record(longin, "S03SIM-DI-OAV-01:CAM:ARResentPackets") info(autosaveFields, "DESC HHSV HIHI HIGH HSV") } -record(mbbo, "S03SIM-DI-OAV-01:CAM:ARPacketResendEnable") +record(mbbo, "BL03S-DI-OAV-01:CAM:ARPacketResendEnable") { field(DESC, "Packet resend enable") field(DTYP, "asynInt32") @@ -1782,7 +1782,7 @@ record(mbbo, "S03SIM-DI-OAV-01:CAM:ARPacketResendEnable") info(autosaveFields, "DESC ONSV ZRSV PINI VAL") } -record(longout, "S03SIM-DI-OAV-01:CAM:ARPacketTimeout") +record(longout, "BL03S-DI-OAV-01:CAM:ARPacketTimeout") { field(DESC, "Delay in us before packet resend request") field(DTYP, "asynInt32") @@ -1793,7 +1793,7 @@ record(longout, "S03SIM-DI-OAV-01:CAM:ARPacketTimeout") info(autosaveFields, "DESC HHSV HIHI HIGH HSV LLSV LOLO LOW LSV PINI VAL") } -record(longout, "S03SIM-DI-OAV-01:CAM:ARFrameRetention") +record(longout, "BL03S-DI-OAV-01:CAM:ARFrameRetention") { field(DESC, "Frame timeout in us after last packet") field(DTYP, "asynInt32") @@ -1804,14 +1804,14 @@ record(longout, "S03SIM-DI-OAV-01:CAM:ARFrameRetention") info(autosaveFields, "DESC HHSV HIHI HIGH HSV LLSV LOLO LOW LSV PINI VAL") } -record(longout, "S03SIM-DI-OAV-01:CAM:ARResetCamera") +record(longout, "BL03S-DI-OAV-01:CAM:ARResetCamera") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.CAM,0,1)ARAVIS_RESET") - field(FLNK, "S03SIM-DI-OAV-01:CAM:ARConnectCamera") + field(FLNK, "BL03S-DI-OAV-01:CAM:ARConnectCamera") } -record(longout, "S03SIM-DI-OAV-01:CAM:ARConnectCamera") +record(longout, "BL03S-DI-OAV-01:CAM:ARConnectCamera") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.CAM,0,1)ARAVIS_CONNECTION") @@ -1819,16 +1819,16 @@ record(longout, "S03SIM-DI-OAV-01:CAM:ARConnectCamera") field(PINI, "1") } -record(calcout, "S03SIM-DI-OAV-01:CAM:ARCheckConnection") +record(calcout, "BL03S-DI-OAV-01:CAM:ARCheckConnection") { field(SCAN, "1 second") - field(INPA, "S03SIM-DI-OAV-01:CAM:ARConnectCamera.SEVR CP") + field(INPA, "BL03S-DI-OAV-01:CAM:ARConnectCamera.SEVR CP") field(CALC, "A==0") field(OOPT, "When Non-zero") - field(OUT, "S03SIM-DI-OAV-01:CAM:ARConnectCamera.PROC PP") + field(OUT, "BL03S-DI-OAV-01:CAM:ARConnectCamera.PROC PP") } -record(mbbi, "S03SIM-DI-OAV-01:CAM:ARConvertPixelFormat_RBV") { +record(mbbi, "BL03S-DI-OAV-01:CAM:ARConvertPixelFormat_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)ARAVIS_CONVERT_PIXEL_FORMAT") field(ZRST, "Mono16Low") @@ -1842,7 +1842,7 @@ record(mbbi, "S03SIM-DI-OAV-01:CAM:ARConvertPixelFormat_RBV") { ## When unpacking Mono12Packed or Mono12p selects whether 16-bit output is ## left shifted by 4 bits (Mono16High) or not (Mono16Low) -record(mbbo, "S03SIM-DI-OAV-01:CAM:ARConvertPixelFormat") { +record(mbbo, "BL03S-DI-OAV-01:CAM:ARConvertPixelFormat") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.CAM,0,1)ARAVIS_CONVERT_PIXEL_FORMAT") field(ZRST, "Mono16Low") @@ -1854,7 +1854,7 @@ record(mbbo, "S03SIM-DI-OAV-01:CAM:ARConvertPixelFormat") { } -record(mbbi, "S03SIM-DI-OAV-01:CAM:ARShiftDir_RBV") { +record(mbbi, "BL03S-DI-OAV-01:CAM:ARShiftDir_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)ARAVIS_SHIFT_DIR") field(ZRST, "None") @@ -1868,7 +1868,7 @@ record(mbbi, "S03SIM-DI-OAV-01:CAM:ARShiftDir_RBV") { } ## Select no shift, left shift, or right shift when reading data -record(mbbo, "S03SIM-DI-OAV-01:CAM:ARShiftDir") { +record(mbbo, "BL03S-DI-OAV-01:CAM:ARShiftDir") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.CAM,0,1)ARAVIS_SHIFT_DIR") field(ZRST, "None") @@ -1881,7 +1881,7 @@ record(mbbo, "S03SIM-DI-OAV-01:CAM:ARShiftDir") { info(autosaveFields, "DESC ZRSV ONSV VAL") } -record(mbbi, "S03SIM-DI-OAV-01:CAM:ARShiftBits_RBV") { +record(mbbi, "BL03S-DI-OAV-01:CAM:ARShiftBits_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)ARAVIS_SHIFT_BITS") field(ZRST, "1") @@ -1905,7 +1905,7 @@ record(mbbi, "S03SIM-DI-OAV-01:CAM:ARShiftBits_RBV") { } ## Selects how many bits to shift left or right when reading data -record(mbbo, "S03SIM-DI-OAV-01:CAM:ARShiftBits") { +record(mbbo, "BL03S-DI-OAV-01:CAM:ARShiftBits") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.CAM,0,1)ARAVIS_SHIFT_BITS") field(ZRST, "1") @@ -1965,7 +1965,7 @@ record(mbbo, "S03SIM-DI-OAV-01:CAM:ARShiftBits") { # This record contains the version of ADCore # ################################################################### -record(stringin, "S03SIM-DI-OAV-01:MXSC:ADCoreVersion_RBV") +record(stringin, "BL03S-DI-OAV-01:MXSC:ADCoreVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.MXSC,0,1)ADCORE_VERSION") @@ -1977,7 +1977,7 @@ record(stringin, "S03SIM-DI-OAV-01:MXSC:ADCoreVersion_RBV") # This record contains the version of the driver or plugin # ################################################################### -record(stringin, "S03SIM-DI-OAV-01:MXSC:DriverVersion_RBV") +record(stringin, "BL03S-DI-OAV-01:MXSC:DriverVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.MXSC,0,1)DRIVER_VERSION") @@ -1989,7 +1989,7 @@ record(stringin, "S03SIM-DI-OAV-01:MXSC:DriverVersion_RBV") # This record contains the asyn port name of this detector # ################################################################### -record(stringin, "S03SIM-DI-OAV-01:MXSC:PortName_RBV") +record(stringin, "BL03S-DI-OAV-01:MXSC:PortName_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.MXSC,0,1)PORT_NAME_SELF") @@ -2001,7 +2001,7 @@ record(stringin, "S03SIM-DI-OAV-01:MXSC:PortName_RBV") # These records contain basic information about the detector # ################################################################### -record(stringin, "S03SIM-DI-OAV-01:MXSC:Manufacturer_RBV") +record(stringin, "BL03S-DI-OAV-01:MXSC:Manufacturer_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.MXSC,0,1)MANUFACTURER") @@ -2009,7 +2009,7 @@ record(stringin, "S03SIM-DI-OAV-01:MXSC:Manufacturer_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-DI-OAV-01:MXSC:Model_RBV") +record(stringin, "BL03S-DI-OAV-01:MXSC:Model_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.MXSC,0,1)MODEL") @@ -2017,7 +2017,7 @@ record(stringin, "S03SIM-DI-OAV-01:MXSC:Model_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-DI-OAV-01:MXSC:SerialNumber_RBV") +record(stringin, "BL03S-DI-OAV-01:MXSC:SerialNumber_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.MXSC,0,1)SERIAL_NUMBER") @@ -2025,7 +2025,7 @@ record(stringin, "S03SIM-DI-OAV-01:MXSC:SerialNumber_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-DI-OAV-01:MXSC:SDKVersion_RBV") +record(stringin, "BL03S-DI-OAV-01:MXSC:SDKVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.MXSC,0,1)SDK_VERSION") @@ -2033,7 +2033,7 @@ record(stringin, "S03SIM-DI-OAV-01:MXSC:SDKVersion_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-DI-OAV-01:MXSC:FirmwareVersion_RBV") +record(stringin, "BL03S-DI-OAV-01:MXSC:FirmwareVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.MXSC,0,1)FIRMWARE_VERSION") @@ -2045,17 +2045,17 @@ record(stringin, "S03SIM-DI-OAV-01:MXSC:FirmwareVersion_RBV") # These records control acquisition start and stop # ################################################################### -record(bo, "S03SIM-DI-OAV-01:MXSC:Acquire") { +record(bo, "BL03S-DI-OAV-01:MXSC:Acquire") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)ACQUIRE") field(ZNAM, "Done") field(ONAM, "Acquire") field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:SetAcquireBusy") + field(FLNK, "BL03S-DI-OAV-01:MXSC:SetAcquireBusy") info(ai:READBACK, "1") } -record(bi, "S03SIM-DI-OAV-01:MXSC:Acquire_RBV") { +record(bi, "BL03S-DI-OAV-01:MXSC:Acquire_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)ACQUIRE") field(ZNAM, "Done") @@ -2065,15 +2065,15 @@ record(bi, "S03SIM-DI-OAV-01:MXSC:Acquire_RBV") { field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-DI-OAV-01:MXSC:SetAcquireBusy") +record(calcout, "BL03S-DI-OAV-01:MXSC:SetAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:MXSC:Acquire NPP") + field(INPA, "BL03S-DI-OAV-01:MXSC:Acquire NPP") field(CALC, "A") field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:MXSC:AcquireBusy PP") + field(OUT, "BL03S-DI-OAV-01:MXSC:AcquireBusy PP") } -record(bi, "S03SIM-DI-OAV-01:MXSC:AcquireBusy") { +record(bi, "BL03S-DI-OAV-01:MXSC:AcquireBusy") { field(ZNAM, "Done") field(ZSV, "NO_ALARM") field(ONAM, "Acquiring") @@ -2081,7 +2081,7 @@ record(bi, "S03SIM-DI-OAV-01:MXSC:AcquireBusy") { field(VAL, "0") } -record(bi, "S03SIM-DI-OAV-01:MXSC:AcquireBusyCB") { +record(bi, "BL03S-DI-OAV-01:MXSC:AcquireBusyCB") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)ACQUIRE_BUSY") field(ZNAM, "Done") @@ -2091,14 +2091,14 @@ record(bi, "S03SIM-DI-OAV-01:MXSC:AcquireBusyCB") { field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-DI-OAV-01:MXSC:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:MXSC:AcquireBusyCB CP") +record(calcout, "BL03S-DI-OAV-01:MXSC:ClearAcquireBusy") { + field(INPA, "BL03S-DI-OAV-01:MXSC:AcquireBusyCB CP") field(CALC, "A") field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:MXSC:AcquireBusy PP") + field(OUT, "BL03S-DI-OAV-01:MXSC:AcquireBusy PP") } -record(bo, "S03SIM-DI-OAV-01:MXSC:WaitForPlugins") { +record(bo, "BL03S-DI-OAV-01:MXSC:WaitForPlugins") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)WAIT_FOR_PLUGINS") @@ -2111,13 +2111,13 @@ record(bo, "S03SIM-DI-OAV-01:MXSC:WaitForPlugins") { # These records are the array size and data type # ################################################################### # The number of dimensions -record(longout, "S03SIM-DI-OAV-01:MXSC:NDimensions") +record(longout, "BL03S-DI-OAV-01:MXSC:NDimensions") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)ARRAY_NDIMENSIONS") } -record(longin, "S03SIM-DI-OAV-01:MXSC:NDimensions_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:NDimensions_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)ARRAY_NDIMENSIONS") @@ -2125,346 +2125,346 @@ record(longin, "S03SIM-DI-OAV-01:MXSC:NDimensions_RBV") } # The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:MXSC:Dimensions") +record(waveform, "BL03S-DI-OAV-01:MXSC:Dimensions") { field(DTYP, "asynInt32ArrayOut") field(INP, "@asyn(OAV.MXSC,0,1)ARRAY_DIMENSIONS") field(FTVL, "LONG") field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim0SA") + field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim0SA") } -record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim0SA") +record(subArray, "BL03S-DI-OAV-01:MXSC:Dim0SA") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:MXSC:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize0") + field(FLNK, "BL03S-DI-OAV-01:MXSC:ArraySize0") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize0") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize0") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim1SA") + field(INP, "BL03S-DI-OAV-01:MXSC:Dim0SA") + field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim1SA") } -record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim1SA") +record(subArray, "BL03S-DI-OAV-01:MXSC:Dim1SA") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:MXSC:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize1") + field(FLNK, "BL03S-DI-OAV-01:MXSC:ArraySize1") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize1") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize1") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim2SA") + field(INP, "BL03S-DI-OAV-01:MXSC:Dim1SA") + field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim2SA") } -record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim2SA") +record(subArray, "BL03S-DI-OAV-01:MXSC:Dim2SA") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:MXSC:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize2") + field(FLNK, "BL03S-DI-OAV-01:MXSC:ArraySize2") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize2") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize2") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim3SA") + field(INP, "BL03S-DI-OAV-01:MXSC:Dim2SA") + field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim3SA") } -record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim3SA") +record(subArray, "BL03S-DI-OAV-01:MXSC:Dim3SA") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:MXSC:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize3") + field(FLNK, "BL03S-DI-OAV-01:MXSC:ArraySize3") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize3") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize3") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim4SA") + field(INP, "BL03S-DI-OAV-01:MXSC:Dim3SA") + field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim4SA") } -record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim4SA") +record(subArray, "BL03S-DI-OAV-01:MXSC:Dim4SA") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:MXSC:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize4") + field(FLNK, "BL03S-DI-OAV-01:MXSC:ArraySize4") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize4") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize4") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim5SA") + field(INP, "BL03S-DI-OAV-01:MXSC:Dim4SA") + field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim5SA") } -record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim5SA") +record(subArray, "BL03S-DI-OAV-01:MXSC:Dim5SA") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:MXSC:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize5") + field(FLNK, "BL03S-DI-OAV-01:MXSC:ArraySize5") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize5") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize5") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim6SA") + field(INP, "BL03S-DI-OAV-01:MXSC:Dim5SA") + field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim6SA") } -record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim6SA") +record(subArray, "BL03S-DI-OAV-01:MXSC:Dim6SA") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:MXSC:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize6") + field(FLNK, "BL03S-DI-OAV-01:MXSC:ArraySize6") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize6") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize6") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim7SA") + field(INP, "BL03S-DI-OAV-01:MXSC:Dim6SA") + field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim7SA") } -record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim7SA") +record(subArray, "BL03S-DI-OAV-01:MXSC:Dim7SA") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:MXSC:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize7") + field(FLNK, "BL03S-DI-OAV-01:MXSC:ArraySize7") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize7") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize7") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim8SA") + field(INP, "BL03S-DI-OAV-01:MXSC:Dim7SA") + field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim8SA") } -record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim8SA") +record(subArray, "BL03S-DI-OAV-01:MXSC:Dim8SA") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:MXSC:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize8") + field(FLNK, "BL03S-DI-OAV-01:MXSC:ArraySize8") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize8") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize8") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim9SA") + field(INP, "BL03S-DI-OAV-01:MXSC:Dim8SA") + field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim9SA") } -record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim9SA") +record(subArray, "BL03S-DI-OAV-01:MXSC:Dim9SA") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:MXSC:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize9") + field(FLNK, "BL03S-DI-OAV-01:MXSC:ArraySize9") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize9") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize9") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dim9SA") + field(INP, "BL03S-DI-OAV-01:MXSC:Dim9SA") } -record(waveform, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV") +record(waveform, "BL03S-DI-OAV-01:MXSC:Dimensions_RBV") { field(DTYP, "asynInt32ArrayIn") field(INP, "@asyn(OAV.MXSC,0,1)ARRAY_DIMENSIONS") field(FTVL, "LONG") field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim0SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim0SA_RBV") field(SCAN, "I/O Intr") } -record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim0SA_RBV") +record(subArray, "BL03S-DI-OAV-01:MXSC:Dim0SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize0_RBV") + field(FLNK, "BL03S-DI-OAV-01:MXSC:ArraySize0_RBV") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize0_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize0_RBV") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim1SA_RBV") + field(INP, "BL03S-DI-OAV-01:MXSC:Dim0SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim1SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim1SA_RBV") +record(subArray, "BL03S-DI-OAV-01:MXSC:Dim1SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize1_RBV") + field(FLNK, "BL03S-DI-OAV-01:MXSC:ArraySize1_RBV") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize1_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize1_RBV") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim2SA_RBV") + field(INP, "BL03S-DI-OAV-01:MXSC:Dim1SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim2SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim2SA_RBV") +record(subArray, "BL03S-DI-OAV-01:MXSC:Dim2SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize2_RBV") + field(FLNK, "BL03S-DI-OAV-01:MXSC:ArraySize2_RBV") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize2_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize2_RBV") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim3SA_RBV") + field(INP, "BL03S-DI-OAV-01:MXSC:Dim2SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim3SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim3SA_RBV") +record(subArray, "BL03S-DI-OAV-01:MXSC:Dim3SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize3_RBV") + field(FLNK, "BL03S-DI-OAV-01:MXSC:ArraySize3_RBV") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize3_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize3_RBV") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim4SA_RBV") + field(INP, "BL03S-DI-OAV-01:MXSC:Dim3SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim4SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim4SA_RBV") +record(subArray, "BL03S-DI-OAV-01:MXSC:Dim4SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize4_RBV") + field(FLNK, "BL03S-DI-OAV-01:MXSC:ArraySize4_RBV") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize4_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize4_RBV") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim5SA_RBV") + field(INP, "BL03S-DI-OAV-01:MXSC:Dim4SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim5SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim5SA_RBV") +record(subArray, "BL03S-DI-OAV-01:MXSC:Dim5SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize5_RBV") + field(FLNK, "BL03S-DI-OAV-01:MXSC:ArraySize5_RBV") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize5_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize5_RBV") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim6SA_RBV") + field(INP, "BL03S-DI-OAV-01:MXSC:Dim5SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim6SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim6SA_RBV") +record(subArray, "BL03S-DI-OAV-01:MXSC:Dim6SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize6_RBV") + field(FLNK, "BL03S-DI-OAV-01:MXSC:ArraySize6_RBV") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize6_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize6_RBV") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim7SA_RBV") + field(INP, "BL03S-DI-OAV-01:MXSC:Dim6SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim7SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim7SA_RBV") +record(subArray, "BL03S-DI-OAV-01:MXSC:Dim7SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize7_RBV") + field(FLNK, "BL03S-DI-OAV-01:MXSC:ArraySize7_RBV") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize7_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize7_RBV") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim8SA_RBV") + field(INP, "BL03S-DI-OAV-01:MXSC:Dim7SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim8SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim8SA_RBV") +record(subArray, "BL03S-DI-OAV-01:MXSC:Dim8SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize8_RBV") + field(FLNK, "BL03S-DI-OAV-01:MXSC:ArraySize8_RBV") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize8_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize8_RBV") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:Dim9SA_RBV") + field(INP, "BL03S-DI-OAV-01:MXSC:Dim8SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim9SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:MXSC:Dim9SA_RBV") +record(subArray, "BL03S-DI-OAV-01:MXSC:Dim9SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:MXSC:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:ArraySize9_RBV") + field(FLNK, "BL03S-DI-OAV-01:MXSC:ArraySize9_RBV") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize9_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize9_RBV") { - field(INP, "S03SIM-DI-OAV-01:MXSC:Dim9SA_RBV") + field(INP, "BL03S-DI-OAV-01:MXSC:Dim9SA_RBV") } -record(mbbi, "S03SIM-DI-OAV-01:MXSC:BayerPattern_RBV") +record(mbbi, "BL03S-DI-OAV-01:MXSC:BayerPattern_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)BAYER_PATTERN") @@ -2479,28 +2479,28 @@ record(mbbi, "S03SIM-DI-OAV-01:MXSC:BayerPattern_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySizeX_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySizeX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)ARRAY_SIZE_X") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySizeY_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySizeY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)ARRAY_SIZE_Y") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySizeZ_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySizeZ_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)ARRAY_SIZE_Z") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)ARRAY_SIZE") @@ -2510,7 +2510,7 @@ record(longin, "S03SIM-DI-OAV-01:MXSC:ArraySize_RBV") ################################################################### # These records have information on the compression # ################################################################### -record(stringin, "S03SIM-DI-OAV-01:MXSC:Codec_RBV") +record(stringin, "BL03S-DI-OAV-01:MXSC:Codec_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.MXSC,0,1)CODEC") @@ -2518,7 +2518,7 @@ record(stringin, "S03SIM-DI-OAV-01:MXSC:Codec_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:MXSC:CompressedSize_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:CompressedSize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)COMPRESSED_SIZE") @@ -2529,7 +2529,7 @@ record(longin, "S03SIM-DI-OAV-01:MXSC:CompressedSize_RBV") # These records control the data type # ################################################################### -record(mbbo, "S03SIM-DI-OAV-01:MXSC:DataType") +record(mbbo, "BL03S-DI-OAV-01:MXSC:DataType") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -2558,7 +2558,7 @@ record(mbbo, "S03SIM-DI-OAV-01:MXSC:DataType") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-DI-OAV-01:MXSC:DataType_RBV") +record(mbbi, "BL03S-DI-OAV-01:MXSC:DataType_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)DATA_TYPE") @@ -2590,7 +2590,7 @@ record(mbbi, "S03SIM-DI-OAV-01:MXSC:DataType_RBV") # These choices must agree with NDColorMode_t in NDArray.h # ################################################################### -record(mbbo, "S03SIM-DI-OAV-01:MXSC:ColorMode") +record(mbbo, "BL03S-DI-OAV-01:MXSC:ColorMode") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -2614,7 +2614,7 @@ record(mbbo, "S03SIM-DI-OAV-01:MXSC:ColorMode") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-DI-OAV-01:MXSC:ColorMode_RBV") +record(mbbi, "BL03S-DI-OAV-01:MXSC:ColorMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)COLOR_MODE") @@ -2640,14 +2640,14 @@ record(mbbi, "S03SIM-DI-OAV-01:MXSC:ColorMode_RBV") ################################################################### # These records are the uniqueId and time stamps of the array # ################################################################### -record(longin, "S03SIM-DI-OAV-01:MXSC:UniqueId_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:UniqueId_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)UNIQUE_ID") field(SCAN, "I/O Intr") } -record(ai, "S03SIM-DI-OAV-01:MXSC:TimeStamp_RBV") +record(ai, "BL03S-DI-OAV-01:MXSC:TimeStamp_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.MXSC,0,1)TIME_STAMP") @@ -2655,14 +2655,14 @@ record(ai, "S03SIM-DI-OAV-01:MXSC:TimeStamp_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:MXSC:EpicsTSSec_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:EpicsTSSec_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)EPICS_TS_SEC") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:MXSC:EpicsTSNsec_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:EpicsTSNsec_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)EPICS_TS_NSEC") @@ -2673,13 +2673,13 @@ record(longin, "S03SIM-DI-OAV-01:MXSC:EpicsTSNsec_RBV") # These records provide statistics on array callbacks and # # array callback rates # ################################################################### -record(longout, "S03SIM-DI-OAV-01:MXSC:ArrayCounter") +record(longout, "BL03S-DI-OAV-01:MXSC:ArrayCounter") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)ARRAY_COUNTER") } -record(longin, "S03SIM-DI-OAV-01:MXSC:ArrayCounter_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:ArrayCounter_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)ARRAY_COUNTER") @@ -2687,12 +2687,12 @@ record(longin, "S03SIM-DI-OAV-01:MXSC:ArrayCounter_RBV") } # Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:MXSC:ArrayRate_RBV") +record(calc, "BL03S-DI-OAV-01:MXSC:ArrayRate_RBV") { - field(INPA, "S03SIM-DI-OAV-01:MXSC:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:MXSC:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPA, "BL03S-DI-OAV-01:MXSC:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "BL03S-DI-OAV-01:MXSC:ArrayCounter_RBV NPP NMS") # Current counter value field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:MXSC:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPD, "BL03S-DI-OAV-01:MXSC:ArrayRate_RBV.VAL NPP NMS") # Previous rate field(INPE, "0.0") # Smoothing factor field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") field(PREC, "2" ) @@ -2703,7 +2703,7 @@ record(calc, "S03SIM-DI-OAV-01:MXSC:ArrayRate_RBV") ################################################################### # These records control NDArray callacks # ################################################################### -record(bo, "S03SIM-DI-OAV-01:MXSC:ArrayCallbacks") +record(bo, "BL03S-DI-OAV-01:MXSC:ArrayCallbacks") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -2716,7 +2716,7 @@ record(bo, "S03SIM-DI-OAV-01:MXSC:ArrayCallbacks") info(autosaveFields, "VAL") } -record(bi, "S03SIM-DI-OAV-01:MXSC:ArrayCallbacks_RBV") +record(bi, "BL03S-DI-OAV-01:MXSC:ArrayCallbacks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)ARRAY_CALLBACKS") @@ -2731,7 +2731,7 @@ record(bi, "S03SIM-DI-OAV-01:MXSC:ArrayCallbacks_RBV") # This record contains macro definitions for the attributes # ################################################################### -record(waveform, "S03SIM-DI-OAV-01:MXSC:NDAttributesMacros") +record(waveform, "BL03S-DI-OAV-01:MXSC:NDAttributesMacros") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -2745,7 +2745,7 @@ record(waveform, "S03SIM-DI-OAV-01:MXSC:NDAttributesMacros") # This record is the name of a file defining attributes # ################################################################### -record(waveform, "S03SIM-DI-OAV-01:MXSC:NDAttributesFile") +record(waveform, "BL03S-DI-OAV-01:MXSC:NDAttributesFile") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -2759,7 +2759,7 @@ record(waveform, "S03SIM-DI-OAV-01:MXSC:NDAttributesFile") # This record defines the status of reading attributes file # ################################################################### -record(mbbi, "S03SIM-DI-OAV-01:MXSC:NDAttributesStatus") +record(mbbi, "BL03S-DI-OAV-01:MXSC:NDAttributesStatus") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)ND_ATTRIBUTES_STATUS") @@ -2782,7 +2782,7 @@ record(mbbi, "S03SIM-DI-OAV-01:MXSC:NDAttributesStatus") # Status of NDArrayPool - number of buffers, memory used etc. # ################################################################### -record(ai, "S03SIM-DI-OAV-01:MXSC:PoolMaxMem") +record(ai, "BL03S-DI-OAV-01:MXSC:PoolMaxMem") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.MXSC,0,1)POOL_MAX_MEMORY") @@ -2792,45 +2792,45 @@ record(ai, "S03SIM-DI-OAV-01:MXSC:PoolMaxMem") field(PINI, "YES") } -record(ai, "S03SIM-DI-OAV-01:MXSC:PoolUsedMem") +record(ai, "BL03S-DI-OAV-01:MXSC:PoolUsedMem") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.MXSC,0,1)POOL_USED_MEMORY") field(PREC, "1") field(EGU, "MB") field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:PoolAllocBuffers") + field(FLNK, "BL03S-DI-OAV-01:MXSC:PoolAllocBuffers") info(autosaveFields, "SCAN") } -record(longin, "S03SIM-DI-OAV-01:MXSC:PoolAllocBuffers") +record(longin, "BL03S-DI-OAV-01:MXSC:PoolAllocBuffers") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:PoolFreeBuffers") + field(FLNK, "BL03S-DI-OAV-01:MXSC:PoolFreeBuffers") } -record(longin, "S03SIM-DI-OAV-01:MXSC:PoolFreeBuffers") +record(longin, "BL03S-DI-OAV-01:MXSC:PoolFreeBuffers") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:PoolUsedBuffers") + field(FLNK, "BL03S-DI-OAV-01:MXSC:PoolUsedBuffers") } -record(calc, "S03SIM-DI-OAV-01:MXSC:PoolUsedBuffers") +record(calc, "BL03S-DI-OAV-01:MXSC:PoolUsedBuffers") { - field(INPA, "S03SIM-DI-OAV-01:MXSC:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:MXSC:PoolFreeBuffers NPP MS") + field(INPA, "BL03S-DI-OAV-01:MXSC:PoolAllocBuffers NPP MS") + field(INPB, "BL03S-DI-OAV-01:MXSC:PoolFreeBuffers NPP MS") field(CALC, "A-B") } -record(bo, "S03SIM-DI-OAV-01:MXSC:EmptyFreeList") +record(bo, "BL03S-DI-OAV-01:MXSC:EmptyFreeList") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)POOL_EMPTY_FREELIST") } -record(longin, "S03SIM-DI-OAV-01:MXSC:NumQueuedArrays") +record(longin, "BL03S-DI-OAV-01:MXSC:NumQueuedArrays") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)NUM_QUEUED_ARRAYS") @@ -2841,7 +2841,7 @@ record(longin, "S03SIM-DI-OAV-01:MXSC:NumQueuedArrays") # This record contains the type of plugin # ################################################################### -record(stringin, "S03SIM-DI-OAV-01:MXSC:PluginType_RBV") +record(stringin, "BL03S-DI-OAV-01:MXSC:PluginType_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.MXSC,0,1)PLUGIN_TYPE") @@ -2854,7 +2854,7 @@ record(stringin, "S03SIM-DI-OAV-01:MXSC:PluginType_RBV") # an NDArray driver port and address # ################################################################### # Array port name -record(stringout, "S03SIM-DI-OAV-01:MXSC:NDArrayPort") +record(stringout, "BL03S-DI-OAV-01:MXSC:NDArrayPort") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -2863,14 +2863,14 @@ record(stringout, "S03SIM-DI-OAV-01:MXSC:NDArrayPort") info(autosaveFields, "VAL") } -record(stringin, "S03SIM-DI-OAV-01:MXSC:NDArrayPort_RBV") +record(stringin, "BL03S-DI-OAV-01:MXSC:NDArrayPort_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.MXSC,0,1)NDARRAY_PORT") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:MXSC:NDArrayAddress") +record(longout, "BL03S-DI-OAV-01:MXSC:NDArrayAddress") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -2879,7 +2879,7 @@ record(longout, "S03SIM-DI-OAV-01:MXSC:NDArrayAddress") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:MXSC:NDArrayAddress_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:NDArrayAddress_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)NDARRAY_ADDR") @@ -2890,7 +2890,7 @@ record(longin, "S03SIM-DI-OAV-01:MXSC:NDArrayAddress_RBV") # These records control whether callbacks are enabled and # # minimum time between callbacks # ################################################################### -record(bo, "S03SIM-DI-OAV-01:MXSC:EnableCallbacks") +record(bo, "BL03S-DI-OAV-01:MXSC:EnableCallbacks") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -2901,7 +2901,7 @@ record(bo, "S03SIM-DI-OAV-01:MXSC:EnableCallbacks") info(autosaveFields, "VAL") } -record(bi, "S03SIM-DI-OAV-01:MXSC:EnableCallbacks_RBV") +record(bi, "BL03S-DI-OAV-01:MXSC:EnableCallbacks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)ENABLE_CALLBACKS") @@ -2912,7 +2912,7 @@ record(bi, "S03SIM-DI-OAV-01:MXSC:EnableCallbacks_RBV") field(SCAN, "I/O Intr") } -record(ao, "S03SIM-DI-OAV-01:MXSC:MinCallbackTime") +record(ao, "BL03S-DI-OAV-01:MXSC:MinCallbackTime") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -2924,7 +2924,7 @@ record(ao, "S03SIM-DI-OAV-01:MXSC:MinCallbackTime") info(autosaveFields, "VAL") } -record(ai, "S03SIM-DI-OAV-01:MXSC:MinCallbackTime_RBV") +record(ai, "BL03S-DI-OAV-01:MXSC:MinCallbackTime_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.MXSC,0,1)MIN_CALLBACK_TIME") @@ -2933,33 +2933,33 @@ record(ai, "S03SIM-DI-OAV-01:MXSC:MinCallbackTime_RBV") field(SCAN, "I/O Intr") } -record(ao, "S03SIM-DI-OAV-01:MXSC:MaxArrayRate") +record(ao, "BL03S-DI-OAV-01:MXSC:MaxArrayRate") { field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:MXSC:MaxArrayRate_COUT PP") + field(OUT, "BL03S-DI-OAV-01:MXSC:MaxArrayRate_COUT PP") field(EGU, "Hz") field(PREC, "3") field(VAL, "0.0") info(autosaveFields, "VAL") } -record(calcout, "S03SIM-DI-OAV-01:MXSC:MaxArrayRate_COUT") +record(calcout, "BL03S-DI-OAV-01:MXSC:MaxArrayRate_COUT") { - field(INPA, "S03SIM-DI-OAV-01:MXSC:MaxArrayRate") + field(INPA, "BL03S-DI-OAV-01:MXSC:MaxArrayRate") field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:MXSC:MinCallbackTime PP") + field(OUT, "BL03S-DI-OAV-01:MXSC:MinCallbackTime PP") } -record(calc, "S03SIM-DI-OAV-01:MXSC:MaxArrayRate_RBV") +record(calc, "BL03S-DI-OAV-01:MXSC:MaxArrayRate_RBV") { - field(INPA, "S03SIM-DI-OAV-01:MXSC:MinCallbackTime_RBV CP") + field(INPA, "BL03S-DI-OAV-01:MXSC:MinCallbackTime_RBV CP") field(CALC, "A=0?0:1.0/A") field(EGU, "Hz") field(PREC, "3") field(SCAN, "Passive") } -record(ao, "S03SIM-DI-OAV-01:MXSC:MaxByteRate") +record(ao, "BL03S-DI-OAV-01:MXSC:MaxByteRate") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -2971,7 +2971,7 @@ record(ao, "S03SIM-DI-OAV-01:MXSC:MaxByteRate") info(autosaveFields, "VAL") } -record(ai, "S03SIM-DI-OAV-01:MXSC:MaxByteRate_RBV") +record(ai, "BL03S-DI-OAV-01:MXSC:MaxByteRate_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.MXSC,0,1)MAX_BYTE_RATE") @@ -2983,7 +2983,7 @@ record(ai, "S03SIM-DI-OAV-01:MXSC:MaxByteRate_RBV") ################################################################### # This record contains the last execution time of the plugin # ################################################################### -record(ai, "S03SIM-DI-OAV-01:MXSC:ExecutionTime_RBV") +record(ai, "BL03S-DI-OAV-01:MXSC:ExecutionTime_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.MXSC,0,1)EXECUTION_TIME") @@ -2996,7 +2996,7 @@ record(ai, "S03SIM-DI-OAV-01:MXSC:ExecutionTime_RBV") # This record requests that the plugin execute again with the # # same NDArray # ################################################################### -record(bo, "S03SIM-DI-OAV-01:MXSC:ProcessPlugin") +record(bo, "BL03S-DI-OAV-01:MXSC:ProcessPlugin") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)PROCESS_PLUGIN") @@ -3006,7 +3006,7 @@ record(bo, "S03SIM-DI-OAV-01:MXSC:ProcessPlugin") ################################################################### # These records control whether callbacks block or not # ################################################################### -record(bo, "S03SIM-DI-OAV-01:MXSC:BlockingCallbacks") +record(bo, "BL03S-DI-OAV-01:MXSC:BlockingCallbacks") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -3017,7 +3017,7 @@ record(bo, "S03SIM-DI-OAV-01:MXSC:BlockingCallbacks") info(autosaveFields, "VAL") } -record(bi, "S03SIM-DI-OAV-01:MXSC:BlockingCallbacks_RBV") +record(bi, "BL03S-DI-OAV-01:MXSC:BlockingCallbacks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)BLOCKING_CALLBACKS") @@ -3027,7 +3027,7 @@ record(bi, "S03SIM-DI-OAV-01:MXSC:BlockingCallbacks_RBV") } -record(longout, "S03SIM-DI-OAV-01:MXSC:DroppedArrays") +record(longout, "BL03S-DI-OAV-01:MXSC:DroppedArrays") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -3035,53 +3035,53 @@ record(longout, "S03SIM-DI-OAV-01:MXSC:DroppedArrays") field(VAL, "0") } -record(longin, "S03SIM-DI-OAV-01:MXSC:DroppedArrays_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:DroppedArrays_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)DROPPED_ARRAYS") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:MXSC:QueueSize") +record(longout, "BL03S-DI-OAV-01:MXSC:QueueSize") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)QUEUE_SIZE") field(PINI, "YES") } -record(longin, "S03SIM-DI-OAV-01:MXSC:QueueSize_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:QueueSize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:QueueFreeLow") + field(FLNK, "BL03S-DI-OAV-01:MXSC:QueueFreeLow") field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-DI-OAV-01:MXSC:QueueFreeLow") { +record(calcout, "BL03S-DI-OAV-01:MXSC:QueueFreeLow") { field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:MXSC:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:MXSC:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:QueueUseHIGH") + field(INPA, "BL03S-DI-OAV-01:MXSC:QueueSize") + field(OUT, "BL03S-DI-OAV-01:MXSC:QueueFree.LOW") + field(FLNK, "BL03S-DI-OAV-01:MXSC:QueueUseHIGH") } # Set a HIGH warning level for the input queue fill level to 75% # of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:MXSC:QueueUseHIGH") { +record(calcout, "BL03S-DI-OAV-01:MXSC:QueueUseHIGH") { field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:MXSC:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:MXSC:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:QueueUseHIHI") + field(INPA, "BL03S-DI-OAV-01:MXSC:QueueSize") + field(OUT, "BL03S-DI-OAV-01:MXSC:QueueUse.HIGH") + field(FLNK, "BL03S-DI-OAV-01:MXSC:QueueUseHIHI") } # Set a HIHI level for the input queue fill level to indicate an error # (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:MXSC:QueueUseHIHI") { +record(calcout, "BL03S-DI-OAV-01:MXSC:QueueUseHIHI") { field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:MXSC:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:MXSC:QueueUse.HIHI") + field(INPA, "BL03S-DI-OAV-01:MXSC:QueueSize") + field(OUT, "BL03S-DI-OAV-01:MXSC:QueueUse.HIHI") } -record(longin, "S03SIM-DI-OAV-01:MXSC:QueueFree") +record(longin, "BL03S-DI-OAV-01:MXSC:QueueFree") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)QUEUE_FREE") @@ -3093,17 +3093,17 @@ record(longin, "S03SIM-DI-OAV-01:MXSC:QueueFree") } # Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:MXSC:QueueUse") { +record(calc, "BL03S-DI-OAV-01:MXSC:QueueUse") { field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:MXSC:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:MXSC:QueueFree CP") + field(INPA, "BL03S-DI-OAV-01:MXSC:QueueSize") + field(INPB, "BL03S-DI-OAV-01:MXSC:QueueFree CP") field(SCAN, "Passive") field(HHSV, "MAJOR") field(HSV, "MINOR") field(HYST, "1") } -record(longout, "S03SIM-DI-OAV-01:MXSC:NumThreads") +record(longout, "BL03S-DI-OAV-01:MXSC:NumThreads") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)NUM_THREADS") @@ -3111,14 +3111,14 @@ record(longout, "S03SIM-DI-OAV-01:MXSC:NumThreads") field(PINI, "YES") } -record(longin, "S03SIM-DI-OAV-01:MXSC:NumThreads_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:NumThreads_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)NUM_THREADS") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:MXSC:MaxThreads_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:MaxThreads_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)MAX_THREADS") @@ -3128,7 +3128,7 @@ record(longin, "S03SIM-DI-OAV-01:MXSC:MaxThreads_RBV") ################################################################### # These records control output array sorting # ################################################################### -record(mbbo, "S03SIM-DI-OAV-01:MXSC:SortMode") { +record(mbbo, "BL03S-DI-OAV-01:MXSC:SortMode") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)SORT_MODE") @@ -3138,7 +3138,7 @@ record(mbbo, "S03SIM-DI-OAV-01:MXSC:SortMode") { field(ONST, "Sorted") } -record(mbbi, "S03SIM-DI-OAV-01:MXSC:SortMode_RBV") { +record(mbbi, "BL03S-DI-OAV-01:MXSC:SortMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)SORT_MODE") field(ZRVL, "0") @@ -3148,7 +3148,7 @@ record(mbbi, "S03SIM-DI-OAV-01:MXSC:SortMode_RBV") { field(SCAN, "I/O Intr") } -record(ao, "S03SIM-DI-OAV-01:MXSC:SortTime") { +record(ao, "BL03S-DI-OAV-01:MXSC:SortTime") { field(PINI, "YES") field(DTYP, "asynFloat64") field(OUT, "@asyn(OAV.MXSC,0,1)SORT_TIME") @@ -3156,14 +3156,14 @@ record(ao, "S03SIM-DI-OAV-01:MXSC:SortTime") { field(VAL, "0.1") } -record(ai, "S03SIM-DI-OAV-01:MXSC:SortTime_RBV") { +record(ai, "BL03S-DI-OAV-01:MXSC:SortTime_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.MXSC,0,1)SORT_TIME") field(PREC, "3") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:MXSC:SortSize") +record(longout, "BL03S-DI-OAV-01:MXSC:SortSize") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)SORT_SIZE") @@ -3171,15 +3171,15 @@ record(longout, "S03SIM-DI-OAV-01:MXSC:SortSize") field(PINI, "YES") } -record(longin, "S03SIM-DI-OAV-01:MXSC:SortSize_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:SortSize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:MXSC:SortFreeLow") + field(FLNK, "BL03S-DI-OAV-01:MXSC:SortFreeLow") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:MXSC:SortFree") { +record(longin, "BL03S-DI-OAV-01:MXSC:SortFree") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)SORT_FREE") field(LLSV, "MAJOR") @@ -3189,13 +3189,13 @@ record(longin, "S03SIM-DI-OAV-01:MXSC:SortFree") { field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-DI-OAV-01:MXSC:SortFreeLow") { +record(calcout, "BL03S-DI-OAV-01:MXSC:SortFreeLow") { field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:MXSC:SortSize") - field(OUT, "S03SIM-DI-OAV-01:MXSC:SortFree.LOW") + field(INPA, "BL03S-DI-OAV-01:MXSC:SortSize") + field(OUT, "BL03S-DI-OAV-01:MXSC:SortFree.LOW") } -record(longout, "S03SIM-DI-OAV-01:MXSC:DroppedOutputArrays") +record(longout, "BL03S-DI-OAV-01:MXSC:DroppedOutputArrays") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -3203,21 +3203,21 @@ record(longout, "S03SIM-DI-OAV-01:MXSC:DroppedOutputArrays") field(VAL, "0") } -record(longin, "S03SIM-DI-OAV-01:MXSC:DroppedOutputArrays_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:DroppedOutputArrays_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)DROPPED_OUTPUT_ARRAYS") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:MXSC:DisorderedArrays") +record(longout, "BL03S-DI-OAV-01:MXSC:DisorderedArrays") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)DISORDERED_ARRAYS") field(PINI, "YES") } -record(longin, "S03SIM-DI-OAV-01:MXSC:DisorderedArrays_RBV") +record(longin, "BL03S-DI-OAV-01:MXSC:DisorderedArrays_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)DISORDERED_ARRAYS") @@ -3231,7 +3231,7 @@ record(longin, "S03SIM-DI-OAV-01:MXSC:DisorderedArrays_RBV") ################################################################### -record(ai, "S03SIM-DI-OAV-01:MXSC:Time_RBV") +record(ai, "BL03S-DI-OAV-01:MXSC:Time_RBV") { field(DTYP, "asynFloat64") field(DESC, "Time taken for plugin to run") @@ -3243,7 +3243,7 @@ record(ai, "S03SIM-DI-OAV-01:MXSC:Time_RBV") # File path. # % autosave 2 -record(waveform, "S03SIM-DI-OAV-01:MXSC:Filename") +record(waveform, "BL03S-DI-OAV-01:MXSC:Filename") { field(DTYP, "asynOctetWrite") field(INP, "@asyn(OAV.MXSC,0,1)ADPYTHON_FILENAME") @@ -3251,7 +3251,7 @@ record(waveform, "S03SIM-DI-OAV-01:MXSC:Filename") field(NELM, "256") } -record(waveform, "S03SIM-DI-OAV-01:MXSC:Filename_RBV") +record(waveform, "BL03S-DI-OAV-01:MXSC:Filename_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.MXSC,0,1)ADPYTHON_FILENAME") @@ -3262,7 +3262,7 @@ record(waveform, "S03SIM-DI-OAV-01:MXSC:Filename_RBV") # Class name. # % autosave 2 -record(waveform, "S03SIM-DI-OAV-01:MXSC:Classname") +record(waveform, "BL03S-DI-OAV-01:MXSC:Classname") { field(DTYP, "asynOctetWrite") field(INP, "@asyn(OAV.MXSC,0,1)ADPYTHON_CLASSNAME") @@ -3270,7 +3270,7 @@ record(waveform, "S03SIM-DI-OAV-01:MXSC:Classname") field(NELM, "256") } -record(waveform, "S03SIM-DI-OAV-01:MXSC:Classname_RBV") +record(waveform, "BL03S-DI-OAV-01:MXSC:Classname_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.MXSC,0,1)ADPYTHON_CLASSNAME") @@ -3280,14 +3280,14 @@ record(waveform, "S03SIM-DI-OAV-01:MXSC:Classname_RBV") } # Read file -record(bi, "S03SIM-DI-OAV-01:MXSC:ReadFile") +record(bi, "BL03S-DI-OAV-01:MXSC:ReadFile") { field(DTYP, "asynInt32") field(ZNAM, "Done") field(ONAM, "Read") } -record(bi, "S03SIM-DI-OAV-01:MXSC:ReadFile_RBV") +record(bi, "BL03S-DI-OAV-01:MXSC:ReadFile_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)ADPYTHON_LOAD") @@ -3296,7 +3296,7 @@ record(bi, "S03SIM-DI-OAV-01:MXSC:ReadFile_RBV") field(SCAN, "I/O Intr") } -record(mbbi, "S03SIM-DI-OAV-01:MXSC:PluginState_RBV") +record(mbbi, "BL03S-DI-OAV-01:MXSC:PluginState_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)ADPYTHON_STATE") @@ -3312,7 +3312,7 @@ record(mbbi, "S03SIM-DI-OAV-01:MXSC:PluginState_RBV") field(SCAN, "I/O Intr") } -record(bo, "S03SIM-DI-OAV-01:MXSC:AbortProcessing") +record(bo, "BL03S-DI-OAV-01:MXSC:AbortProcessing") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)ADPYTHON_PROC_ABORT") @@ -3320,14 +3320,14 @@ record(bo, "S03SIM-DI-OAV-01:MXSC:AbortProcessing") field(ONAM, "Abort") } -record(ao, "S03SIM-DI-OAV-01:MXSC:Timeout") +record(ao, "BL03S-DI-OAV-01:MXSC:Timeout") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)ADPYTHON_PROC_TIMEOUT") field(EGU, "ms") } -record(ai, "S03SIM-DI-OAV-01:MXSC:Timeout_RBV") +record(ai, "BL03S-DI-OAV-01:MXSC:Timeout_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)ADPYTHON_PROC_TIMEOUT") @@ -3338,12 +3338,12 @@ record(ai, "S03SIM-DI-OAV-01:MXSC:Timeout_RBV") # % macro, PORT, Asyn Port name # % macro, TIMEOUT, Timeout # % macro, ADDR, Asyn Port address -# % gui, OAV.MXSC, edmtab, adPythonMxSampleDetect.edl, P=S03SIM-DI-OAV-01,R=:MXSC: +# % gui, OAV.MXSC, edmtab, adPythonMxSampleDetect.edl, P=BL03S-DI-OAV-01,R=:MXSC: # Records relating to preprocessing. -record(mbbo, "S03SIM-DI-OAV-01:MXSC:Preprocess") { +record(mbbo, "BL03S-DI-OAV-01:MXSC:Preprocess") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)preprocess") @@ -3371,7 +3371,7 @@ record(mbbo, "S03SIM-DI-OAV-01:MXSC:Preprocess") { field(TEST, "None") field(TEVL, "10") } -record(mbbi, "S03SIM-DI-OAV-01:MXSC:Preprocess_RBV") { +record(mbbi, "BL03S-DI-OAV-01:MXSC:Preprocess_RBV") { field(SCAN, "I/O Intr") field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)preprocess") @@ -3401,7 +3401,7 @@ record(mbbi, "S03SIM-DI-OAV-01:MXSC:Preprocess_RBV") { } # Abuse a couple of mbbis to provide descriptions of preprocess parameters. -record(mbbi, "S03SIM-DI-OAV-01:MXSC:PpParam1Name") { +record(mbbi, "BL03S-DI-OAV-01:MXSC:PpParam1Name") { field(SCAN, "I/O Intr") field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)preprocess") @@ -3429,7 +3429,7 @@ record(mbbi, "S03SIM-DI-OAV-01:MXSC:PpParam1Name") { field(TEST, "(Unused)") field(TEVL, "10") } -record(mbbi, "S03SIM-DI-OAV-01:MXSC:PpParam2Name") { +record(mbbi, "BL03S-DI-OAV-01:MXSC:PpParam2Name") { field(SCAN, "I/O Intr") field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)preprocess") @@ -3458,23 +3458,23 @@ record(mbbi, "S03SIM-DI-OAV-01:MXSC:PpParam2Name") { field(TEVL, "10") } -record(longout, "S03SIM-DI-OAV-01:MXSC:PpParam1") { +record(longout, "BL03S-DI-OAV-01:MXSC:PpParam1") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)pp_param1") } -record(longin, "S03SIM-DI-OAV-01:MXSC:PpParam1_RBV") { +record(longin, "BL03S-DI-OAV-01:MXSC:PpParam1_RBV") { field(SCAN, "I/O Intr") field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)pp_param1") } -record(longout, "S03SIM-DI-OAV-01:MXSC:PpParam2") { +record(longout, "BL03S-DI-OAV-01:MXSC:PpParam2") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)pp_param2") } -record(longin, "S03SIM-DI-OAV-01:MXSC:PpParam2_RBV") { +record(longin, "BL03S-DI-OAV-01:MXSC:PpParam2_RBV") { field(SCAN, "I/O Intr") field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)pp_param2") @@ -3483,23 +3483,23 @@ record(longin, "S03SIM-DI-OAV-01:MXSC:PpParam2_RBV") { # Records relating to edge detection. -record(longout, "S03SIM-DI-OAV-01:MXSC:CannyUpper") { +record(longout, "BL03S-DI-OAV-01:MXSC:CannyUpper") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)canny_upper") } -record(longin, "S03SIM-DI-OAV-01:MXSC:CannyUpper_RBV") { +record(longin, "BL03S-DI-OAV-01:MXSC:CannyUpper_RBV") { field(SCAN, "I/O Intr") field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)canny_upper") } -record(longout, "S03SIM-DI-OAV-01:MXSC:CannyLower") { +record(longout, "BL03S-DI-OAV-01:MXSC:CannyLower") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)canny_lower") } -record(longin, "S03SIM-DI-OAV-01:MXSC:CannyLower_RBV") { +record(longin, "BL03S-DI-OAV-01:MXSC:CannyLower_RBV") { field(SCAN, "I/O Intr") field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)canny_lower") @@ -3508,23 +3508,23 @@ record(longin, "S03SIM-DI-OAV-01:MXSC:CannyLower_RBV") { # Records relating to "close" morphological operation. -record(longout, "S03SIM-DI-OAV-01:MXSC:CloseKsize") { +record(longout, "BL03S-DI-OAV-01:MXSC:CloseKsize") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)close_ksize") } -record(longin, "S03SIM-DI-OAV-01:MXSC:CloseKsize_RBV") { +record(longin, "BL03S-DI-OAV-01:MXSC:CloseKsize_RBV") { field(SCAN, "I/O Intr") field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)close_ksize") } -record(longout, "S03SIM-DI-OAV-01:MXSC:CloseIterations") { +record(longout, "BL03S-DI-OAV-01:MXSC:CloseIterations") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)close_iterations") } -record(longin, "S03SIM-DI-OAV-01:MXSC:CloseIterations_RBV") { +record(longin, "BL03S-DI-OAV-01:MXSC:CloseIterations_RBV") { field(SCAN, "I/O Intr") field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)close_iterations") @@ -3533,7 +3533,7 @@ record(longin, "S03SIM-DI-OAV-01:MXSC:CloseIterations_RBV") { # Records relating to sample detection. -record(mbbo, "S03SIM-DI-OAV-01:MXSC:ScanDirection") { +record(mbbo, "BL03S-DI-OAV-01:MXSC:ScanDirection") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)scan_direction") @@ -3543,7 +3543,7 @@ record(mbbo, "S03SIM-DI-OAV-01:MXSC:ScanDirection") { field(ONST, "Right to left") field(ONVL, "-1") } -record(mbbi, "S03SIM-DI-OAV-01:MXSC:ScanDirection_RBV") { +record(mbbi, "BL03S-DI-OAV-01:MXSC:ScanDirection_RBV") { field(SCAN, "I/O Intr") field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)scan_direction") @@ -3554,12 +3554,12 @@ record(mbbi, "S03SIM-DI-OAV-01:MXSC:ScanDirection_RBV") { field(ONVL, "-1") } -record(longout, "S03SIM-DI-OAV-01:MXSC:MinTipHeight") { +record(longout, "BL03S-DI-OAV-01:MXSC:MinTipHeight") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)min_tip_height") } -record(longin, "S03SIM-DI-OAV-01:MXSC:MinTipHeight_RBV") { +record(longin, "BL03S-DI-OAV-01:MXSC:MinTipHeight_RBV") { field(SCAN, "I/O Intr") field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)min_tip_height") @@ -3568,36 +3568,7 @@ record(longin, "S03SIM-DI-OAV-01:MXSC:MinTipHeight_RBV") { # Records relating to output. -record(longin, "S03SIM-DI-OAV-01:MXSC:TipX") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.MXSC,0,1)tip_x") -} -record(longin, "S03SIM-DI-OAV-01:MXSC:TipY") { - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.MXSC,0,1)tip_y") -} - - -record(waveform, "S03SIM-DI-OAV-01:MXSC:Top") -{ - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.MXSC,0,1)top") - field(FTVL, "LONG") - field(NELM, "1024") -} -record(waveform, "S03SIM-DI-OAV-01:MXSC:Bottom") -{ - field(SCAN, "I/O Intr") - field(DTYP, "asynInt32ArrayIn") - field(INP, "@asyn(OAV.MXSC,0,1)bottom") - field(FTVL, "LONG") - field(NELM, "1024") -} - -record(mbbo, "S03SIM-DI-OAV-01:MXSC:OutputArray") { +record(mbbo, "BL03S-DI-OAV-01:MXSC:OutputArray") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)out_arr") @@ -3613,7 +3584,7 @@ record(mbbo, "S03SIM-DI-OAV-01:MXSC:OutputArray") { field(FRST, "Closed edges") field(FRVL, "4") } -record(mbbi, "S03SIM-DI-OAV-01:MXSC:OutputArray_RBV") { +record(mbbi, "BL03S-DI-OAV-01:MXSC:OutputArray_RBV") { field(SCAN, "I/O Intr") field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)out_arr") @@ -3630,14 +3601,14 @@ record(mbbi, "S03SIM-DI-OAV-01:MXSC:OutputArray_RBV") { field(FRVL, "4") } -record(bo, "S03SIM-DI-OAV-01:MXSC:DrawTip") { +record(bo, "BL03S-DI-OAV-01:MXSC:DrawTip") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)draw_circle") field(ZNAM, "Disabled") field(ONAM, "Enabled") } -record(bi, "S03SIM-DI-OAV-01:MXSC:DrawTip_RBV") { +record(bi, "BL03S-DI-OAV-01:MXSC:DrawTip_RBV") { field(SCAN, "I/O Intr") field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)draw_circle") @@ -3645,14 +3616,14 @@ record(bi, "S03SIM-DI-OAV-01:MXSC:DrawTip_RBV") { field(ONAM, "Enabled") } -record(bo, "S03SIM-DI-OAV-01:MXSC:DrawEdges") { +record(bo, "BL03S-DI-OAV-01:MXSC:DrawEdges") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)draw_edges") field(ZNAM, "Disabled") field(ONAM, "Enabled") } -record(bi, "S03SIM-DI-OAV-01:MXSC:DrawEdges_RBV") { +record(bi, "BL03S-DI-OAV-01:MXSC:DrawEdges_RBV") { field(SCAN, "I/O Intr") field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)draw_edges") @@ -3660,14 +3631,14 @@ record(bi, "S03SIM-DI-OAV-01:MXSC:DrawEdges_RBV") { field(ONAM, "Enabled") } -record(bo, "S03SIM-DI-OAV-01:MXSC:ForceColor") { +record(bo, "BL03S-DI-OAV-01:MXSC:ForceColor") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.MXSC,0,1)force_color") field(ZNAM, "No") field(ONAM, "Yes") } -record(bi, "S03SIM-DI-OAV-01:MXSC:ForceColor_RBV") { +record(bi, "BL03S-DI-OAV-01:MXSC:ForceColor_RBV") { field(SCAN, "I/O Intr") field(DTYP, "asynInt32") field(INP, "@asyn(OAV.MXSC,0,1)force_color") @@ -3688,7 +3659,7 @@ record(bi, "S03SIM-DI-OAV-01:MXSC:ForceColor_RBV") { # % macro, ADDR, Asyn Port address # This associates the template with an edm screen -# % gui, OAV.CCON, edmtab, NDColorConvert.edl, P=S03SIM-DI-OAV-01,R=:CCON: +# % gui, OAV.CCON, edmtab, NDColorConvert.edl, P=BL03S-DI-OAV-01,R=:CCON: #=================================================================# # Template file: NDPluginBase.template @@ -3717,7 +3688,7 @@ record(bi, "S03SIM-DI-OAV-01:MXSC:ForceColor_RBV") { # This record contains the version of ADCore # ################################################################### -record(stringin, "S03SIM-DI-OAV-01:CCON:ADCoreVersion_RBV") +record(stringin, "BL03S-DI-OAV-01:CCON:ADCoreVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CCON,0,1)ADCORE_VERSION") @@ -3729,7 +3700,7 @@ record(stringin, "S03SIM-DI-OAV-01:CCON:ADCoreVersion_RBV") # This record contains the version of the driver or plugin # ################################################################### -record(stringin, "S03SIM-DI-OAV-01:CCON:DriverVersion_RBV") +record(stringin, "BL03S-DI-OAV-01:CCON:DriverVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CCON,0,1)DRIVER_VERSION") @@ -3741,7 +3712,7 @@ record(stringin, "S03SIM-DI-OAV-01:CCON:DriverVersion_RBV") # This record contains the asyn port name of this detector # ################################################################### -record(stringin, "S03SIM-DI-OAV-01:CCON:PortName_RBV") +record(stringin, "BL03S-DI-OAV-01:CCON:PortName_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CCON,0,1)PORT_NAME_SELF") @@ -3753,7 +3724,7 @@ record(stringin, "S03SIM-DI-OAV-01:CCON:PortName_RBV") # These records contain basic information about the detector # ################################################################### -record(stringin, "S03SIM-DI-OAV-01:CCON:Manufacturer_RBV") +record(stringin, "BL03S-DI-OAV-01:CCON:Manufacturer_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CCON,0,1)MANUFACTURER") @@ -3761,7 +3732,7 @@ record(stringin, "S03SIM-DI-OAV-01:CCON:Manufacturer_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-DI-OAV-01:CCON:Model_RBV") +record(stringin, "BL03S-DI-OAV-01:CCON:Model_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CCON,0,1)MODEL") @@ -3769,7 +3740,7 @@ record(stringin, "S03SIM-DI-OAV-01:CCON:Model_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-DI-OAV-01:CCON:SerialNumber_RBV") +record(stringin, "BL03S-DI-OAV-01:CCON:SerialNumber_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CCON,0,1)SERIAL_NUMBER") @@ -3777,7 +3748,7 @@ record(stringin, "S03SIM-DI-OAV-01:CCON:SerialNumber_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-DI-OAV-01:CCON:SDKVersion_RBV") +record(stringin, "BL03S-DI-OAV-01:CCON:SDKVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CCON,0,1)SDK_VERSION") @@ -3785,7 +3756,7 @@ record(stringin, "S03SIM-DI-OAV-01:CCON:SDKVersion_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-DI-OAV-01:CCON:FirmwareVersion_RBV") +record(stringin, "BL03S-DI-OAV-01:CCON:FirmwareVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CCON,0,1)FIRMWARE_VERSION") @@ -3797,17 +3768,17 @@ record(stringin, "S03SIM-DI-OAV-01:CCON:FirmwareVersion_RBV") # These records control acquisition start and stop # ################################################################### -record(bo, "S03SIM-DI-OAV-01:CCON:Acquire") { +record(bo, "BL03S-DI-OAV-01:CCON:Acquire") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.CCON,0,1)ACQUIRE") field(ZNAM, "Done") field(ONAM, "Acquire") field(VAL, "0") - field(FLNK, "S03SIM-DI-OAV-01:CCON:SetAcquireBusy") + field(FLNK, "BL03S-DI-OAV-01:CCON:SetAcquireBusy") info(ai:READBACK, "1") } -record(bi, "S03SIM-DI-OAV-01:CCON:Acquire_RBV") { +record(bi, "BL03S-DI-OAV-01:CCON:Acquire_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)ACQUIRE") field(ZNAM, "Done") @@ -3817,15 +3788,15 @@ record(bi, "S03SIM-DI-OAV-01:CCON:Acquire_RBV") { field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-DI-OAV-01:CCON:SetAcquireBusy") +record(calcout, "BL03S-DI-OAV-01:CCON:SetAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:CCON:Acquire NPP") + field(INPA, "BL03S-DI-OAV-01:CCON:Acquire NPP") field(CALC, "A") field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-DI-OAV-01:CCON:AcquireBusy PP") + field(OUT, "BL03S-DI-OAV-01:CCON:AcquireBusy PP") } -record(bi, "S03SIM-DI-OAV-01:CCON:AcquireBusy") { +record(bi, "BL03S-DI-OAV-01:CCON:AcquireBusy") { field(ZNAM, "Done") field(ZSV, "NO_ALARM") field(ONAM, "Acquiring") @@ -3833,7 +3804,7 @@ record(bi, "S03SIM-DI-OAV-01:CCON:AcquireBusy") { field(VAL, "0") } -record(bi, "S03SIM-DI-OAV-01:CCON:AcquireBusyCB") { +record(bi, "BL03S-DI-OAV-01:CCON:AcquireBusyCB") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)ACQUIRE_BUSY") field(ZNAM, "Done") @@ -3843,14 +3814,14 @@ record(bi, "S03SIM-DI-OAV-01:CCON:AcquireBusyCB") { field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-DI-OAV-01:CCON:ClearAcquireBusy") { - field(INPA, "S03SIM-DI-OAV-01:CCON:AcquireBusyCB CP") +record(calcout, "BL03S-DI-OAV-01:CCON:ClearAcquireBusy") { + field(INPA, "BL03S-DI-OAV-01:CCON:AcquireBusyCB CP") field(CALC, "A") field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-DI-OAV-01:CCON:AcquireBusy PP") + field(OUT, "BL03S-DI-OAV-01:CCON:AcquireBusy PP") } -record(bo, "S03SIM-DI-OAV-01:CCON:WaitForPlugins") { +record(bo, "BL03S-DI-OAV-01:CCON:WaitForPlugins") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.CCON,0,1)WAIT_FOR_PLUGINS") @@ -3863,13 +3834,13 @@ record(bo, "S03SIM-DI-OAV-01:CCON:WaitForPlugins") { # These records are the array size and data type # ################################################################### # The number of dimensions -record(longout, "S03SIM-DI-OAV-01:CCON:NDimensions") +record(longout, "BL03S-DI-OAV-01:CCON:NDimensions") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.CCON,0,1)ARRAY_NDIMENSIONS") } -record(longin, "S03SIM-DI-OAV-01:CCON:NDimensions_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:NDimensions_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)ARRAY_NDIMENSIONS") @@ -3877,346 +3848,346 @@ record(longin, "S03SIM-DI-OAV-01:CCON:NDimensions_RBV") } # The array dimensions waveform records -record(waveform, "S03SIM-DI-OAV-01:CCON:Dimensions") +record(waveform, "BL03S-DI-OAV-01:CCON:Dimensions") { field(DTYP, "asynInt32ArrayOut") field(INP, "@asyn(OAV.CCON,0,1)ARRAY_DIMENSIONS") field(FTVL, "LONG") field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim0SA") + field(FLNK, "BL03S-DI-OAV-01:CCON:Dim0SA") } -record(subArray, "S03SIM-DI-OAV-01:CCON:Dim0SA") +record(subArray, "BL03S-DI-OAV-01:CCON:Dim0SA") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:CCON:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize0") + field(FLNK, "BL03S-DI-OAV-01:CCON:ArraySize0") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize0") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySize0") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dim0SA") - field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim1SA") + field(INP, "BL03S-DI-OAV-01:CCON:Dim0SA") + field(FLNK, "BL03S-DI-OAV-01:CCON:Dim1SA") } -record(subArray, "S03SIM-DI-OAV-01:CCON:Dim1SA") +record(subArray, "BL03S-DI-OAV-01:CCON:Dim1SA") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:CCON:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize1") + field(FLNK, "BL03S-DI-OAV-01:CCON:ArraySize1") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize1") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySize1") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dim1SA") - field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim2SA") + field(INP, "BL03S-DI-OAV-01:CCON:Dim1SA") + field(FLNK, "BL03S-DI-OAV-01:CCON:Dim2SA") } -record(subArray, "S03SIM-DI-OAV-01:CCON:Dim2SA") +record(subArray, "BL03S-DI-OAV-01:CCON:Dim2SA") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:CCON:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize2") + field(FLNK, "BL03S-DI-OAV-01:CCON:ArraySize2") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize2") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySize2") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dim2SA") - field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim3SA") + field(INP, "BL03S-DI-OAV-01:CCON:Dim2SA") + field(FLNK, "BL03S-DI-OAV-01:CCON:Dim3SA") } -record(subArray, "S03SIM-DI-OAV-01:CCON:Dim3SA") +record(subArray, "BL03S-DI-OAV-01:CCON:Dim3SA") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:CCON:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize3") + field(FLNK, "BL03S-DI-OAV-01:CCON:ArraySize3") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize3") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySize3") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dim3SA") - field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim4SA") + field(INP, "BL03S-DI-OAV-01:CCON:Dim3SA") + field(FLNK, "BL03S-DI-OAV-01:CCON:Dim4SA") } -record(subArray, "S03SIM-DI-OAV-01:CCON:Dim4SA") +record(subArray, "BL03S-DI-OAV-01:CCON:Dim4SA") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:CCON:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize4") + field(FLNK, "BL03S-DI-OAV-01:CCON:ArraySize4") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize4") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySize4") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dim4SA") - field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim5SA") + field(INP, "BL03S-DI-OAV-01:CCON:Dim4SA") + field(FLNK, "BL03S-DI-OAV-01:CCON:Dim5SA") } -record(subArray, "S03SIM-DI-OAV-01:CCON:Dim5SA") +record(subArray, "BL03S-DI-OAV-01:CCON:Dim5SA") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:CCON:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize5") + field(FLNK, "BL03S-DI-OAV-01:CCON:ArraySize5") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize5") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySize5") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dim5SA") - field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim6SA") + field(INP, "BL03S-DI-OAV-01:CCON:Dim5SA") + field(FLNK, "BL03S-DI-OAV-01:CCON:Dim6SA") } -record(subArray, "S03SIM-DI-OAV-01:CCON:Dim6SA") +record(subArray, "BL03S-DI-OAV-01:CCON:Dim6SA") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:CCON:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize6") + field(FLNK, "BL03S-DI-OAV-01:CCON:ArraySize6") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize6") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySize6") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dim6SA") - field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim7SA") + field(INP, "BL03S-DI-OAV-01:CCON:Dim6SA") + field(FLNK, "BL03S-DI-OAV-01:CCON:Dim7SA") } -record(subArray, "S03SIM-DI-OAV-01:CCON:Dim7SA") +record(subArray, "BL03S-DI-OAV-01:CCON:Dim7SA") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:CCON:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize7") + field(FLNK, "BL03S-DI-OAV-01:CCON:ArraySize7") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize7") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySize7") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dim7SA") - field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim8SA") + field(INP, "BL03S-DI-OAV-01:CCON:Dim7SA") + field(FLNK, "BL03S-DI-OAV-01:CCON:Dim8SA") } -record(subArray, "S03SIM-DI-OAV-01:CCON:Dim8SA") +record(subArray, "BL03S-DI-OAV-01:CCON:Dim8SA") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:CCON:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize8") + field(FLNK, "BL03S-DI-OAV-01:CCON:ArraySize8") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize8") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySize8") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dim8SA") - field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim9SA") + field(INP, "BL03S-DI-OAV-01:CCON:Dim8SA") + field(FLNK, "BL03S-DI-OAV-01:CCON:Dim9SA") } -record(subArray, "S03SIM-DI-OAV-01:CCON:Dim9SA") +record(subArray, "BL03S-DI-OAV-01:CCON:Dim9SA") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions NPP NMS") + field(INP, "BL03S-DI-OAV-01:CCON:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize9") + field(FLNK, "BL03S-DI-OAV-01:CCON:ArraySize9") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize9") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySize9") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dim9SA") + field(INP, "BL03S-DI-OAV-01:CCON:Dim9SA") } -record(waveform, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV") +record(waveform, "BL03S-DI-OAV-01:CCON:Dimensions_RBV") { field(DTYP, "asynInt32ArrayIn") field(INP, "@asyn(OAV.CCON,0,1)ARRAY_DIMENSIONS") field(FTVL, "LONG") field(NELM, "10") - field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim0SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:CCON:Dim0SA_RBV") field(SCAN, "I/O Intr") } -record(subArray, "S03SIM-DI-OAV-01:CCON:Dim0SA_RBV") +record(subArray, "BL03S-DI-OAV-01:CCON:Dim0SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "0") - field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize0_RBV") + field(FLNK, "BL03S-DI-OAV-01:CCON:ArraySize0_RBV") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize0_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySize0_RBV") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dim0SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim1SA_RBV") + field(INP, "BL03S-DI-OAV-01:CCON:Dim0SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:CCON:Dim1SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:CCON:Dim1SA_RBV") +record(subArray, "BL03S-DI-OAV-01:CCON:Dim1SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "1") - field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize1_RBV") + field(FLNK, "BL03S-DI-OAV-01:CCON:ArraySize1_RBV") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize1_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySize1_RBV") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim2SA_RBV") + field(INP, "BL03S-DI-OAV-01:CCON:Dim1SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:CCON:Dim2SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:CCON:Dim2SA_RBV") +record(subArray, "BL03S-DI-OAV-01:CCON:Dim2SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "2") - field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize2_RBV") + field(FLNK, "BL03S-DI-OAV-01:CCON:ArraySize2_RBV") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize2_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySize2_RBV") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim3SA_RBV") + field(INP, "BL03S-DI-OAV-01:CCON:Dim2SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:CCON:Dim3SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:CCON:Dim3SA_RBV") +record(subArray, "BL03S-DI-OAV-01:CCON:Dim3SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "3") - field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize3_RBV") + field(FLNK, "BL03S-DI-OAV-01:CCON:ArraySize3_RBV") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize3_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySize3_RBV") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dim3SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim4SA_RBV") + field(INP, "BL03S-DI-OAV-01:CCON:Dim3SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:CCON:Dim4SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:CCON:Dim4SA_RBV") +record(subArray, "BL03S-DI-OAV-01:CCON:Dim4SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "4") - field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize4_RBV") + field(FLNK, "BL03S-DI-OAV-01:CCON:ArraySize4_RBV") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize4_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySize4_RBV") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dim4SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim5SA_RBV") + field(INP, "BL03S-DI-OAV-01:CCON:Dim4SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:CCON:Dim5SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:CCON:Dim5SA_RBV") +record(subArray, "BL03S-DI-OAV-01:CCON:Dim5SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "5") - field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize5_RBV") + field(FLNK, "BL03S-DI-OAV-01:CCON:ArraySize5_RBV") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize5_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySize5_RBV") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dim5SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim6SA_RBV") + field(INP, "BL03S-DI-OAV-01:CCON:Dim5SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:CCON:Dim6SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:CCON:Dim6SA_RBV") +record(subArray, "BL03S-DI-OAV-01:CCON:Dim6SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "6") - field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize6_RBV") + field(FLNK, "BL03S-DI-OAV-01:CCON:ArraySize6_RBV") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize6_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySize6_RBV") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dim6SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim7SA_RBV") + field(INP, "BL03S-DI-OAV-01:CCON:Dim6SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:CCON:Dim7SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:CCON:Dim7SA_RBV") +record(subArray, "BL03S-DI-OAV-01:CCON:Dim7SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "7") - field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize7_RBV") + field(FLNK, "BL03S-DI-OAV-01:CCON:ArraySize7_RBV") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize7_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySize7_RBV") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dim7SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim8SA_RBV") + field(INP, "BL03S-DI-OAV-01:CCON:Dim7SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:CCON:Dim8SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:CCON:Dim8SA_RBV") +record(subArray, "BL03S-DI-OAV-01:CCON:Dim8SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "8") - field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize8_RBV") + field(FLNK, "BL03S-DI-OAV-01:CCON:ArraySize8_RBV") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize8_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySize8_RBV") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dim8SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:CCON:Dim9SA_RBV") + field(INP, "BL03S-DI-OAV-01:CCON:Dim8SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:CCON:Dim9SA_RBV") } -record(subArray, "S03SIM-DI-OAV-01:CCON:Dim9SA_RBV") +record(subArray, "BL03S-DI-OAV-01:CCON:Dim9SA_RBV") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") + field(INP, "BL03S-DI-OAV-01:CCON:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "9") - field(FLNK, "S03SIM-DI-OAV-01:CCON:ArraySize9_RBV") + field(FLNK, "BL03S-DI-OAV-01:CCON:ArraySize9_RBV") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize9_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySize9_RBV") { - field(INP, "S03SIM-DI-OAV-01:CCON:Dim9SA_RBV") + field(INP, "BL03S-DI-OAV-01:CCON:Dim9SA_RBV") } -record(mbbi, "S03SIM-DI-OAV-01:CCON:BayerPattern_RBV") +record(mbbi, "BL03S-DI-OAV-01:CCON:BayerPattern_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)BAYER_PATTERN") @@ -4231,28 +4202,28 @@ record(mbbi, "S03SIM-DI-OAV-01:CCON:BayerPattern_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySizeX_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySizeX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)ARRAY_SIZE_X") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySizeY_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySizeY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)ARRAY_SIZE_Y") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySizeZ_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySizeZ_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)ARRAY_SIZE_Z") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:ArraySize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)ARRAY_SIZE") @@ -4262,7 +4233,7 @@ record(longin, "S03SIM-DI-OAV-01:CCON:ArraySize_RBV") ################################################################### # These records have information on the compression # ################################################################### -record(stringin, "S03SIM-DI-OAV-01:CCON:Codec_RBV") +record(stringin, "BL03S-DI-OAV-01:CCON:Codec_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CCON,0,1)CODEC") @@ -4270,7 +4241,7 @@ record(stringin, "S03SIM-DI-OAV-01:CCON:Codec_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:CCON:CompressedSize_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:CompressedSize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)COMPRESSED_SIZE") @@ -4281,7 +4252,7 @@ record(longin, "S03SIM-DI-OAV-01:CCON:CompressedSize_RBV") # These records control the data type # ################################################################### -record(mbbo, "S03SIM-DI-OAV-01:CCON:DataType") +record(mbbo, "BL03S-DI-OAV-01:CCON:DataType") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -4310,7 +4281,7 @@ record(mbbo, "S03SIM-DI-OAV-01:CCON:DataType") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-DI-OAV-01:CCON:DataType_RBV") +record(mbbi, "BL03S-DI-OAV-01:CCON:DataType_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)DATA_TYPE") @@ -4342,7 +4313,7 @@ record(mbbi, "S03SIM-DI-OAV-01:CCON:DataType_RBV") # These choices must agree with NDColorMode_t in NDArray.h # ################################################################### -record(mbbo, "S03SIM-DI-OAV-01:CCON:ColorMode") +record(mbbo, "BL03S-DI-OAV-01:CCON:ColorMode") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -4366,7 +4337,7 @@ record(mbbo, "S03SIM-DI-OAV-01:CCON:ColorMode") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-DI-OAV-01:CCON:ColorMode_RBV") +record(mbbi, "BL03S-DI-OAV-01:CCON:ColorMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)COLOR_MODE") @@ -4392,14 +4363,14 @@ record(mbbi, "S03SIM-DI-OAV-01:CCON:ColorMode_RBV") ################################################################### # These records are the uniqueId and time stamps of the array # ################################################################### -record(longin, "S03SIM-DI-OAV-01:CCON:UniqueId_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:UniqueId_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)UNIQUE_ID") field(SCAN, "I/O Intr") } -record(ai, "S03SIM-DI-OAV-01:CCON:TimeStamp_RBV") +record(ai, "BL03S-DI-OAV-01:CCON:TimeStamp_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CCON,0,1)TIME_STAMP") @@ -4407,14 +4378,14 @@ record(ai, "S03SIM-DI-OAV-01:CCON:TimeStamp_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:CCON:EpicsTSSec_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:EpicsTSSec_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)EPICS_TS_SEC") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:CCON:EpicsTSNsec_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:EpicsTSNsec_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)EPICS_TS_NSEC") @@ -4425,13 +4396,13 @@ record(longin, "S03SIM-DI-OAV-01:CCON:EpicsTSNsec_RBV") # These records provide statistics on array callbacks and # # array callback rates # ################################################################### -record(longout, "S03SIM-DI-OAV-01:CCON:ArrayCounter") +record(longout, "BL03S-DI-OAV-01:CCON:ArrayCounter") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.CCON,0,1)ARRAY_COUNTER") } -record(longin, "S03SIM-DI-OAV-01:CCON:ArrayCounter_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:ArrayCounter_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)ARRAY_COUNTER") @@ -4439,12 +4410,12 @@ record(longin, "S03SIM-DI-OAV-01:CCON:ArrayCounter_RBV") } # Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-DI-OAV-01:CCON:ArrayRate_RBV") +record(calc, "BL03S-DI-OAV-01:CCON:ArrayRate_RBV") { - field(INPA, "S03SIM-DI-OAV-01:CCON:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-DI-OAV-01:CCON:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPA, "BL03S-DI-OAV-01:CCON:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "BL03S-DI-OAV-01:CCON:ArrayCounter_RBV NPP NMS") # Current counter value field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-DI-OAV-01:CCON:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPD, "BL03S-DI-OAV-01:CCON:ArrayRate_RBV.VAL NPP NMS") # Previous rate field(INPE, "0.0") # Smoothing factor field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") field(PREC, "2" ) @@ -4455,7 +4426,7 @@ record(calc, "S03SIM-DI-OAV-01:CCON:ArrayRate_RBV") ################################################################### # These records control NDArray callacks # ################################################################### -record(bo, "S03SIM-DI-OAV-01:CCON:ArrayCallbacks") +record(bo, "BL03S-DI-OAV-01:CCON:ArrayCallbacks") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -4468,7 +4439,7 @@ record(bo, "S03SIM-DI-OAV-01:CCON:ArrayCallbacks") info(autosaveFields, "VAL") } -record(bi, "S03SIM-DI-OAV-01:CCON:ArrayCallbacks_RBV") +record(bi, "BL03S-DI-OAV-01:CCON:ArrayCallbacks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)ARRAY_CALLBACKS") @@ -4483,7 +4454,7 @@ record(bi, "S03SIM-DI-OAV-01:CCON:ArrayCallbacks_RBV") # This record contains macro definitions for the attributes # ################################################################### -record(waveform, "S03SIM-DI-OAV-01:CCON:NDAttributesMacros") +record(waveform, "BL03S-DI-OAV-01:CCON:NDAttributesMacros") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -4497,7 +4468,7 @@ record(waveform, "S03SIM-DI-OAV-01:CCON:NDAttributesMacros") # This record is the name of a file defining attributes # ################################################################### -record(waveform, "S03SIM-DI-OAV-01:CCON:NDAttributesFile") +record(waveform, "BL03S-DI-OAV-01:CCON:NDAttributesFile") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -4511,7 +4482,7 @@ record(waveform, "S03SIM-DI-OAV-01:CCON:NDAttributesFile") # This record defines the status of reading attributes file # ################################################################### -record(mbbi, "S03SIM-DI-OAV-01:CCON:NDAttributesStatus") +record(mbbi, "BL03S-DI-OAV-01:CCON:NDAttributesStatus") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)ND_ATTRIBUTES_STATUS") @@ -4534,7 +4505,7 @@ record(mbbi, "S03SIM-DI-OAV-01:CCON:NDAttributesStatus") # Status of NDArrayPool - number of buffers, memory used etc. # ################################################################### -record(ai, "S03SIM-DI-OAV-01:CCON:PoolMaxMem") +record(ai, "BL03S-DI-OAV-01:CCON:PoolMaxMem") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CCON,0,1)POOL_MAX_MEMORY") @@ -4544,45 +4515,45 @@ record(ai, "S03SIM-DI-OAV-01:CCON:PoolMaxMem") field(PINI, "YES") } -record(ai, "S03SIM-DI-OAV-01:CCON:PoolUsedMem") +record(ai, "BL03S-DI-OAV-01:CCON:PoolUsedMem") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CCON,0,1)POOL_USED_MEMORY") field(PREC, "1") field(EGU, "MB") field(SCAN, "1 second") - field(FLNK, "S03SIM-DI-OAV-01:CCON:PoolAllocBuffers") + field(FLNK, "BL03S-DI-OAV-01:CCON:PoolAllocBuffers") info(autosaveFields, "SCAN") } -record(longin, "S03SIM-DI-OAV-01:CCON:PoolAllocBuffers") +record(longin, "BL03S-DI-OAV-01:CCON:PoolAllocBuffers") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:CCON:PoolFreeBuffers") + field(FLNK, "BL03S-DI-OAV-01:CCON:PoolFreeBuffers") } -record(longin, "S03SIM-DI-OAV-01:CCON:PoolFreeBuffers") +record(longin, "BL03S-DI-OAV-01:CCON:PoolFreeBuffers") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-DI-OAV-01:CCON:PoolUsedBuffers") + field(FLNK, "BL03S-DI-OAV-01:CCON:PoolUsedBuffers") } -record(calc, "S03SIM-DI-OAV-01:CCON:PoolUsedBuffers") +record(calc, "BL03S-DI-OAV-01:CCON:PoolUsedBuffers") { - field(INPA, "S03SIM-DI-OAV-01:CCON:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-DI-OAV-01:CCON:PoolFreeBuffers NPP MS") + field(INPA, "BL03S-DI-OAV-01:CCON:PoolAllocBuffers NPP MS") + field(INPB, "BL03S-DI-OAV-01:CCON:PoolFreeBuffers NPP MS") field(CALC, "A-B") } -record(bo, "S03SIM-DI-OAV-01:CCON:EmptyFreeList") +record(bo, "BL03S-DI-OAV-01:CCON:EmptyFreeList") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.CCON,0,1)POOL_EMPTY_FREELIST") } -record(longin, "S03SIM-DI-OAV-01:CCON:NumQueuedArrays") +record(longin, "BL03S-DI-OAV-01:CCON:NumQueuedArrays") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)NUM_QUEUED_ARRAYS") @@ -4593,7 +4564,7 @@ record(longin, "S03SIM-DI-OAV-01:CCON:NumQueuedArrays") # This record contains the type of plugin # ################################################################### -record(stringin, "S03SIM-DI-OAV-01:CCON:PluginType_RBV") +record(stringin, "BL03S-DI-OAV-01:CCON:PluginType_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CCON,0,1)PLUGIN_TYPE") @@ -4606,7 +4577,7 @@ record(stringin, "S03SIM-DI-OAV-01:CCON:PluginType_RBV") # an NDArray driver port and address # ################################################################### # Array port name -record(stringout, "S03SIM-DI-OAV-01:CCON:NDArrayPort") +record(stringout, "BL03S-DI-OAV-01:CCON:NDArrayPort") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -4615,14 +4586,14 @@ record(stringout, "S03SIM-DI-OAV-01:CCON:NDArrayPort") info(autosaveFields, "VAL") } -record(stringin, "S03SIM-DI-OAV-01:CCON:NDArrayPort_RBV") +record(stringin, "BL03S-DI-OAV-01:CCON:NDArrayPort_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.CCON,0,1)NDARRAY_PORT") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:CCON:NDArrayAddress") +record(longout, "BL03S-DI-OAV-01:CCON:NDArrayAddress") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -4631,7 +4602,7 @@ record(longout, "S03SIM-DI-OAV-01:CCON:NDArrayAddress") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:CCON:NDArrayAddress_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:NDArrayAddress_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)NDARRAY_ADDR") @@ -4642,7 +4613,7 @@ record(longin, "S03SIM-DI-OAV-01:CCON:NDArrayAddress_RBV") # These records control whether callbacks are enabled and # # minimum time between callbacks # ################################################################### -record(bo, "S03SIM-DI-OAV-01:CCON:EnableCallbacks") +record(bo, "BL03S-DI-OAV-01:CCON:EnableCallbacks") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -4653,7 +4624,7 @@ record(bo, "S03SIM-DI-OAV-01:CCON:EnableCallbacks") info(autosaveFields, "VAL") } -record(bi, "S03SIM-DI-OAV-01:CCON:EnableCallbacks_RBV") +record(bi, "BL03S-DI-OAV-01:CCON:EnableCallbacks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)ENABLE_CALLBACKS") @@ -4664,7 +4635,7 @@ record(bi, "S03SIM-DI-OAV-01:CCON:EnableCallbacks_RBV") field(SCAN, "I/O Intr") } -record(ao, "S03SIM-DI-OAV-01:CCON:MinCallbackTime") +record(ao, "BL03S-DI-OAV-01:CCON:MinCallbackTime") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -4676,7 +4647,7 @@ record(ao, "S03SIM-DI-OAV-01:CCON:MinCallbackTime") info(autosaveFields, "VAL") } -record(ai, "S03SIM-DI-OAV-01:CCON:MinCallbackTime_RBV") +record(ai, "BL03S-DI-OAV-01:CCON:MinCallbackTime_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CCON,0,1)MIN_CALLBACK_TIME") @@ -4685,33 +4656,33 @@ record(ai, "S03SIM-DI-OAV-01:CCON:MinCallbackTime_RBV") field(SCAN, "I/O Intr") } -record(ao, "S03SIM-DI-OAV-01:CCON:MaxArrayRate") +record(ao, "BL03S-DI-OAV-01:CCON:MaxArrayRate") { field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:CCON:MaxArrayRate_COUT PP") + field(OUT, "BL03S-DI-OAV-01:CCON:MaxArrayRate_COUT PP") field(EGU, "Hz") field(PREC, "3") field(VAL, "0.0") info(autosaveFields, "VAL") } -record(calcout, "S03SIM-DI-OAV-01:CCON:MaxArrayRate_COUT") +record(calcout, "BL03S-DI-OAV-01:CCON:MaxArrayRate_COUT") { - field(INPA, "S03SIM-DI-OAV-01:CCON:MaxArrayRate") + field(INPA, "BL03S-DI-OAV-01:CCON:MaxArrayRate") field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:CCON:MinCallbackTime PP") + field(OUT, "BL03S-DI-OAV-01:CCON:MinCallbackTime PP") } -record(calc, "S03SIM-DI-OAV-01:CCON:MaxArrayRate_RBV") +record(calc, "BL03S-DI-OAV-01:CCON:MaxArrayRate_RBV") { - field(INPA, "S03SIM-DI-OAV-01:CCON:MinCallbackTime_RBV CP") + field(INPA, "BL03S-DI-OAV-01:CCON:MinCallbackTime_RBV CP") field(CALC, "A=0?0:1.0/A") field(EGU, "Hz") field(PREC, "3") field(SCAN, "Passive") } -record(ao, "S03SIM-DI-OAV-01:CCON:MaxByteRate") +record(ao, "BL03S-DI-OAV-01:CCON:MaxByteRate") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -4723,7 +4694,7 @@ record(ao, "S03SIM-DI-OAV-01:CCON:MaxByteRate") info(autosaveFields, "VAL") } -record(ai, "S03SIM-DI-OAV-01:CCON:MaxByteRate_RBV") +record(ai, "BL03S-DI-OAV-01:CCON:MaxByteRate_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CCON,0,1)MAX_BYTE_RATE") @@ -4735,7 +4706,7 @@ record(ai, "S03SIM-DI-OAV-01:CCON:MaxByteRate_RBV") ################################################################### # This record contains the last execution time of the plugin # ################################################################### -record(ai, "S03SIM-DI-OAV-01:CCON:ExecutionTime_RBV") +record(ai, "BL03S-DI-OAV-01:CCON:ExecutionTime_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CCON,0,1)EXECUTION_TIME") @@ -4748,7 +4719,7 @@ record(ai, "S03SIM-DI-OAV-01:CCON:ExecutionTime_RBV") # This record requests that the plugin execute again with the # # same NDArray # ################################################################### -record(bo, "S03SIM-DI-OAV-01:CCON:ProcessPlugin") +record(bo, "BL03S-DI-OAV-01:CCON:ProcessPlugin") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.CCON,0,1)PROCESS_PLUGIN") @@ -4758,7 +4729,7 @@ record(bo, "S03SIM-DI-OAV-01:CCON:ProcessPlugin") ################################################################### # These records control whether callbacks block or not # ################################################################### -record(bo, "S03SIM-DI-OAV-01:CCON:BlockingCallbacks") +record(bo, "BL03S-DI-OAV-01:CCON:BlockingCallbacks") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -4769,7 +4740,7 @@ record(bo, "S03SIM-DI-OAV-01:CCON:BlockingCallbacks") info(autosaveFields, "VAL") } -record(bi, "S03SIM-DI-OAV-01:CCON:BlockingCallbacks_RBV") +record(bi, "BL03S-DI-OAV-01:CCON:BlockingCallbacks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)BLOCKING_CALLBACKS") @@ -4779,7 +4750,7 @@ record(bi, "S03SIM-DI-OAV-01:CCON:BlockingCallbacks_RBV") } -record(longout, "S03SIM-DI-OAV-01:CCON:DroppedArrays") +record(longout, "BL03S-DI-OAV-01:CCON:DroppedArrays") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -4787,53 +4758,53 @@ record(longout, "S03SIM-DI-OAV-01:CCON:DroppedArrays") field(VAL, "0") } -record(longin, "S03SIM-DI-OAV-01:CCON:DroppedArrays_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:DroppedArrays_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)DROPPED_ARRAYS") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:CCON:QueueSize") +record(longout, "BL03S-DI-OAV-01:CCON:QueueSize") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.CCON,0,1)QUEUE_SIZE") field(PINI, "YES") } -record(longin, "S03SIM-DI-OAV-01:CCON:QueueSize_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:QueueSize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:CCON:QueueFreeLow") + field(FLNK, "BL03S-DI-OAV-01:CCON:QueueFreeLow") field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-DI-OAV-01:CCON:QueueFreeLow") { +record(calcout, "BL03S-DI-OAV-01:CCON:QueueFreeLow") { field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:CCON:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:CCON:QueueFree.LOW") - field(FLNK, "S03SIM-DI-OAV-01:CCON:QueueUseHIGH") + field(INPA, "BL03S-DI-OAV-01:CCON:QueueSize") + field(OUT, "BL03S-DI-OAV-01:CCON:QueueFree.LOW") + field(FLNK, "BL03S-DI-OAV-01:CCON:QueueUseHIGH") } # Set a HIGH warning level for the input queue fill level to 75% # of the full size of the queue -record(calcout, "S03SIM-DI-OAV-01:CCON:QueueUseHIGH") { +record(calcout, "BL03S-DI-OAV-01:CCON:QueueUseHIGH") { field(CALC, "A*0.75") - field(INPA, "S03SIM-DI-OAV-01:CCON:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:CCON:QueueUse.HIGH") - field(FLNK, "S03SIM-DI-OAV-01:CCON:QueueUseHIHI") + field(INPA, "BL03S-DI-OAV-01:CCON:QueueSize") + field(OUT, "BL03S-DI-OAV-01:CCON:QueueUse.HIGH") + field(FLNK, "BL03S-DI-OAV-01:CCON:QueueUseHIHI") } # Set a HIHI level for the input queue fill level to indicate an error # (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-DI-OAV-01:CCON:QueueUseHIHI") { +record(calcout, "BL03S-DI-OAV-01:CCON:QueueUseHIHI") { field(CALC, "A*1.0") - field(INPA, "S03SIM-DI-OAV-01:CCON:QueueSize") - field(OUT, "S03SIM-DI-OAV-01:CCON:QueueUse.HIHI") + field(INPA, "BL03S-DI-OAV-01:CCON:QueueSize") + field(OUT, "BL03S-DI-OAV-01:CCON:QueueUse.HIHI") } -record(longin, "S03SIM-DI-OAV-01:CCON:QueueFree") +record(longin, "BL03S-DI-OAV-01:CCON:QueueFree") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)QUEUE_FREE") @@ -4845,17 +4816,17 @@ record(longin, "S03SIM-DI-OAV-01:CCON:QueueFree") } # Display the fill level on the plugins input queue -record(calc, "S03SIM-DI-OAV-01:CCON:QueueUse") { +record(calc, "BL03S-DI-OAV-01:CCON:QueueUse") { field(CALC, "A-B") - field(INPA, "S03SIM-DI-OAV-01:CCON:QueueSize") - field(INPB, "S03SIM-DI-OAV-01:CCON:QueueFree CP") + field(INPA, "BL03S-DI-OAV-01:CCON:QueueSize") + field(INPB, "BL03S-DI-OAV-01:CCON:QueueFree CP") field(SCAN, "Passive") field(HHSV, "MAJOR") field(HSV, "MINOR") field(HYST, "1") } -record(longout, "S03SIM-DI-OAV-01:CCON:NumThreads") +record(longout, "BL03S-DI-OAV-01:CCON:NumThreads") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.CCON,0,1)NUM_THREADS") @@ -4863,14 +4834,14 @@ record(longout, "S03SIM-DI-OAV-01:CCON:NumThreads") field(PINI, "YES") } -record(longin, "S03SIM-DI-OAV-01:CCON:NumThreads_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:NumThreads_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)NUM_THREADS") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:CCON:MaxThreads_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:MaxThreads_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)MAX_THREADS") @@ -4880,7 +4851,7 @@ record(longin, "S03SIM-DI-OAV-01:CCON:MaxThreads_RBV") ################################################################### # These records control output array sorting # ################################################################### -record(mbbo, "S03SIM-DI-OAV-01:CCON:SortMode") { +record(mbbo, "BL03S-DI-OAV-01:CCON:SortMode") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.CCON,0,1)SORT_MODE") @@ -4890,7 +4861,7 @@ record(mbbo, "S03SIM-DI-OAV-01:CCON:SortMode") { field(ONST, "Sorted") } -record(mbbi, "S03SIM-DI-OAV-01:CCON:SortMode_RBV") { +record(mbbi, "BL03S-DI-OAV-01:CCON:SortMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)SORT_MODE") field(ZRVL, "0") @@ -4900,7 +4871,7 @@ record(mbbi, "S03SIM-DI-OAV-01:CCON:SortMode_RBV") { field(SCAN, "I/O Intr") } -record(ao, "S03SIM-DI-OAV-01:CCON:SortTime") { +record(ao, "BL03S-DI-OAV-01:CCON:SortTime") { field(PINI, "YES") field(DTYP, "asynFloat64") field(OUT, "@asyn(OAV.CCON,0,1)SORT_TIME") @@ -4908,14 +4879,14 @@ record(ao, "S03SIM-DI-OAV-01:CCON:SortTime") { field(VAL, "0.1") } -record(ai, "S03SIM-DI-OAV-01:CCON:SortTime_RBV") { +record(ai, "BL03S-DI-OAV-01:CCON:SortTime_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.CCON,0,1)SORT_TIME") field(PREC, "3") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:CCON:SortSize") +record(longout, "BL03S-DI-OAV-01:CCON:SortSize") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.CCON,0,1)SORT_SIZE") @@ -4923,15 +4894,15 @@ record(longout, "S03SIM-DI-OAV-01:CCON:SortSize") field(PINI, "YES") } -record(longin, "S03SIM-DI-OAV-01:CCON:SortSize_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:SortSize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)SORT_SIZE") - field(FLNK, "S03SIM-DI-OAV-01:CCON:SortFreeLow") + field(FLNK, "BL03S-DI-OAV-01:CCON:SortFreeLow") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:CCON:SortFree") { +record(longin, "BL03S-DI-OAV-01:CCON:SortFree") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)SORT_FREE") field(LLSV, "MAJOR") @@ -4941,13 +4912,13 @@ record(longin, "S03SIM-DI-OAV-01:CCON:SortFree") { field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-DI-OAV-01:CCON:SortFreeLow") { +record(calcout, "BL03S-DI-OAV-01:CCON:SortFreeLow") { field(CALC, "A*0.25") - field(INPA, "S03SIM-DI-OAV-01:CCON:SortSize") - field(OUT, "S03SIM-DI-OAV-01:CCON:SortFree.LOW") + field(INPA, "BL03S-DI-OAV-01:CCON:SortSize") + field(OUT, "BL03S-DI-OAV-01:CCON:SortFree.LOW") } -record(longout, "S03SIM-DI-OAV-01:CCON:DroppedOutputArrays") +record(longout, "BL03S-DI-OAV-01:CCON:DroppedOutputArrays") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -4955,21 +4926,21 @@ record(longout, "S03SIM-DI-OAV-01:CCON:DroppedOutputArrays") field(VAL, "0") } -record(longin, "S03SIM-DI-OAV-01:CCON:DroppedOutputArrays_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:DroppedOutputArrays_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)DROPPED_OUTPUT_ARRAYS") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:CCON:DisorderedArrays") +record(longout, "BL03S-DI-OAV-01:CCON:DisorderedArrays") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.CCON,0,1)DISORDERED_ARRAYS") field(PINI, "YES") } -record(longin, "S03SIM-DI-OAV-01:CCON:DisorderedArrays_RBV") +record(longin, "BL03S-DI-OAV-01:CCON:DisorderedArrays_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)DISORDERED_ARRAYS") @@ -4981,7 +4952,7 @@ record(longin, "S03SIM-DI-OAV-01:CCON:DisorderedArrays_RBV") # These choices must agree with NDColorMode_t in NDArray.h # ################################################################### -record(mbbo, "S03SIM-DI-OAV-01:CCON:ColorModeOut") +record(mbbo, "BL03S-DI-OAV-01:CCON:ColorModeOut") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -5005,7 +4976,7 @@ record(mbbo, "S03SIM-DI-OAV-01:CCON:ColorModeOut") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-DI-OAV-01:CCON:ColorModeOut_RBV") +record(mbbi, "BL03S-DI-OAV-01:CCON:ColorModeOut_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)COLOR_MODE_OUT") @@ -5028,7 +4999,7 @@ record(mbbi, "S03SIM-DI-OAV-01:CCON:ColorModeOut_RBV") field(SCAN, "I/O Intr") } -record(mbbo, "S03SIM-DI-OAV-01:CCON:FalseColor") +record(mbbo, "BL03S-DI-OAV-01:CCON:FalseColor") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -5042,7 +5013,7 @@ record(mbbo, "S03SIM-DI-OAV-01:CCON:FalseColor") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-DI-OAV-01:CCON:FalseColor_RBV") +record(mbbi, "BL03S-DI-OAV-01:CCON:FalseColor_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CCON,0,1)FALSE_COLOR") @@ -5060,15 +5031,15 @@ record(mbbi, "S03SIM-DI-OAV-01:CCON:FalseColor_RBV") # These records control the overlay definition # ################################################################### -record(longout, "S03SIM-DI-OAV-01:OVER:2:PositionXLink") +record(longout, "BL03S-DI-OAV-01:OVER:2:PositionXLink") { field(DOL, " CP MS") field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:2:PositionX PP") + field(OUT, "BL03S-DI-OAV-01:OVER:2:PositionX PP") info(autosaveFields, "DOL") } -record(longout, "S03SIM-DI-OAV-01:OVER:2:PositionX") +record(longout, "BL03S-DI-OAV-01:OVER:2:PositionX") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -5077,22 +5048,22 @@ record(longout, "S03SIM-DI-OAV-01:OVER:2:PositionX") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:OVER:2:PositionX_RBV") +record(longin, "BL03S-DI-OAV-01:OVER:2:PositionX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.over,1,1)OVERLAY_POSITION_X") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:OVER:2:PositionYLink") +record(longout, "BL03S-DI-OAV-01:OVER:2:PositionYLink") { field(DOL, " CP MS") field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:2:PositionY PP") + field(OUT, "BL03S-DI-OAV-01:OVER:2:PositionY PP") info(autosaveFields, "DOL") } -record(longout, "S03SIM-DI-OAV-01:OVER:2:PositionY") +record(longout, "BL03S-DI-OAV-01:OVER:2:PositionY") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -5101,22 +5072,22 @@ record(longout, "S03SIM-DI-OAV-01:OVER:2:PositionY") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:OVER:2:PositionY_RBV") +record(longin, "BL03S-DI-OAV-01:OVER:2:PositionY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.over,1,1)OVERLAY_POSITION_Y") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:OVER:2:CenterXLink") +record(longout, "BL03S-DI-OAV-01:OVER:2:CenterXLink") { field(DOL, " CP MS") field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:2:CenterX PP") + field(OUT, "BL03S-DI-OAV-01:OVER:2:CenterX PP") info(autosaveFields, "DOL") } -record(longout, "S03SIM-DI-OAV-01:OVER:2:CenterX") +record(longout, "BL03S-DI-OAV-01:OVER:2:CenterX") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.over,1,1)OVERLAY_CENTER_X") @@ -5124,22 +5095,22 @@ record(longout, "S03SIM-DI-OAV-01:OVER:2:CenterX") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:OVER:2:CenterX_RBV") +record(longin, "BL03S-DI-OAV-01:OVER:2:CenterX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.over,1,1)OVERLAY_CENTER_X") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:OVER:2:CenterYLink") +record(longout, "BL03S-DI-OAV-01:OVER:2:CenterYLink") { field(DOL, " CP MS") field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:2:CenterY PP") + field(OUT, "BL03S-DI-OAV-01:OVER:2:CenterY PP") info(autosaveFields, "DOL") } -record(longout, "S03SIM-DI-OAV-01:OVER:2:CenterY") +record(longout, "BL03S-DI-OAV-01:OVER:2:CenterY") { field(DTYP, "asynInt32") field(OUT, "@asyn(OAV.over,1,1)OVERLAY_CENTER_Y") @@ -5147,22 +5118,22 @@ record(longout, "S03SIM-DI-OAV-01:OVER:2:CenterY") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:OVER:2:CenterY_RBV") +record(longin, "BL03S-DI-OAV-01:OVER:2:CenterY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.over,1,1)OVERLAY_CENTER_Y") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:OVER:2:SizeXLink") +record(longout, "BL03S-DI-OAV-01:OVER:2:SizeXLink") { field(DOL, " CP MS") field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:2:SizeX PP") + field(OUT, "BL03S-DI-OAV-01:OVER:2:SizeX PP") info(autosaveFields, "DOL") } -record(longout, "S03SIM-DI-OAV-01:OVER:2:SizeX") +record(longout, "BL03S-DI-OAV-01:OVER:2:SizeX") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -5173,22 +5144,22 @@ record(longout, "S03SIM-DI-OAV-01:OVER:2:SizeX") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:OVER:2:SizeX_RBV") +record(longin, "BL03S-DI-OAV-01:OVER:2:SizeX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.over,1,1)OVERLAY_SIZE_X") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:OVER:2:SizeYLink") +record(longout, "BL03S-DI-OAV-01:OVER:2:SizeYLink") { field(DOL, " CP MS") field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:2:SizeY PP") + field(OUT, "BL03S-DI-OAV-01:OVER:2:SizeY PP") info(autosaveFields, "DOL") } -record(longout, "S03SIM-DI-OAV-01:OVER:2:SizeY") +record(longout, "BL03S-DI-OAV-01:OVER:2:SizeY") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -5196,22 +5167,22 @@ record(longout, "S03SIM-DI-OAV-01:OVER:2:SizeY") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:OVER:2:SizeY_RBV") +record(longin, "BL03S-DI-OAV-01:OVER:2:SizeY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.over,1,1)OVERLAY_SIZE_Y") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:OVER:2:WidthXLink") +record(longout, "BL03S-DI-OAV-01:OVER:2:WidthXLink") { field(DOL, " CP MS") field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:2:WidthX PP") + field(OUT, "BL03S-DI-OAV-01:OVER:2:WidthX PP") info(autosaveFields, "DOL") } -record(longout, "S03SIM-DI-OAV-01:OVER:2:WidthX") +record(longout, "BL03S-DI-OAV-01:OVER:2:WidthX") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -5219,22 +5190,22 @@ record(longout, "S03SIM-DI-OAV-01:OVER:2:WidthX") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:OVER:2:WidthX_RBV") +record(longin, "BL03S-DI-OAV-01:OVER:2:WidthX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.over,1,1)OVERLAY_WIDTH_X") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:OVER:2:WidthYLink") +record(longout, "BL03S-DI-OAV-01:OVER:2:WidthYLink") { field(DOL, " CP MS") field(OMSL, "closed_loop") - field(OUT, "S03SIM-DI-OAV-01:OVER:2:WidthY PP") + field(OUT, "BL03S-DI-OAV-01:OVER:2:WidthY PP") info(autosaveFields, "DOL") } -record(longout, "S03SIM-DI-OAV-01:OVER:2:WidthY") +record(longout, "BL03S-DI-OAV-01:OVER:2:WidthY") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -5242,14 +5213,14 @@ record(longout, "S03SIM-DI-OAV-01:OVER:2:WidthY") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:OVER:2:WidthY_RBV") +record(longin, "BL03S-DI-OAV-01:OVER:2:WidthY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.over,1,1)OVERLAY_WIDTH_Y") field(SCAN, "I/O Intr") } -record(mbbo, "S03SIM-DI-OAV-01:OVER:2:Shape") +record(mbbo, "BL03S-DI-OAV-01:OVER:2:Shape") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -5266,7 +5237,7 @@ record(mbbo, "S03SIM-DI-OAV-01:OVER:2:Shape") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-DI-OAV-01:OVER:2:Shape_RBV") +record(mbbi, "BL03S-DI-OAV-01:OVER:2:Shape_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.over,1,1)OVERLAY_SHAPE") @@ -5281,7 +5252,7 @@ record(mbbi, "S03SIM-DI-OAV-01:OVER:2:Shape_RBV") field(SCAN, "I/O Intr") } -record(mbbo, "S03SIM-DI-OAV-01:OVER:2:DrawMode") +record(mbbo, "BL03S-DI-OAV-01:OVER:2:DrawMode") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -5293,7 +5264,7 @@ record(mbbo, "S03SIM-DI-OAV-01:OVER:2:DrawMode") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-DI-OAV-01:OVER:2:DrawMode_RBV") +record(mbbi, "BL03S-DI-OAV-01:OVER:2:DrawMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.over,1,1)OVERLAY_DRAW_MODE") @@ -5304,7 +5275,7 @@ record(mbbi, "S03SIM-DI-OAV-01:OVER:2:DrawMode_RBV") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:OVER:2:Red") +record(longout, "BL03S-DI-OAV-01:OVER:2:Red") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -5313,14 +5284,14 @@ record(longout, "S03SIM-DI-OAV-01:OVER:2:Red") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:OVER:2:Red_RBV") +record(longin, "BL03S-DI-OAV-01:OVER:2:Red_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.over,1,1)OVERLAY_RED") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:OVER:2:Green") +record(longout, "BL03S-DI-OAV-01:OVER:2:Green") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -5329,14 +5300,14 @@ record(longout, "S03SIM-DI-OAV-01:OVER:2:Green") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:OVER:2:Green_RBV") +record(longin, "BL03S-DI-OAV-01:OVER:2:Green_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.over,1,1)OVERLAY_GREEN") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:OVER:2:Blue") +record(longout, "BL03S-DI-OAV-01:OVER:2:Blue") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -5345,7 +5316,7 @@ record(longout, "S03SIM-DI-OAV-01:OVER:2:Blue") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:OVER:2:Blue_RBV") +record(longin, "BL03S-DI-OAV-01:OVER:2:Blue_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.over,1,1)OVERLAY_BLUE") @@ -5357,41 +5328,41 @@ record(longin, "S03SIM-DI-OAV-01:OVER:2:Blue_RBV") # and size to the maximum for the input array # ################################################################### -record(longin, "S03SIM-DI-OAV-01:OVER:2:MaxSizeX") +record(longin, "BL03S-DI-OAV-01:OVER:2:MaxSizeX") { - field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeX_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:OVER:2:SetXHOPR.PROC PP") + field(INP, "BL03S-DI-OAV-01:OVER:MaxSizeX_RBV CP") + field(FLNK, "BL03S-DI-OAV-01:OVER:2:SetXHOPR.PROC PP") } -record(dfanout, "S03SIM-DI-OAV-01:OVER:2:SetXHOPR") +record(dfanout, "BL03S-DI-OAV-01:OVER:2:SetXHOPR") { - field(DOL, "S03SIM-DI-OAV-01:OVER:2:MaxSizeX NPP") + field(DOL, "BL03S-DI-OAV-01:OVER:2:MaxSizeX NPP") field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:OVER:2:PositionX.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:OVER:2:CenterX.HOPR NPP") - field(OUTC, "S03SIM-DI-OAV-01:OVER:2:SizeX.HOPR NPP") + field(OUTA, "BL03S-DI-OAV-01:OVER:2:PositionX.HOPR NPP") + field(OUTB, "BL03S-DI-OAV-01:OVER:2:CenterX.HOPR NPP") + field(OUTC, "BL03S-DI-OAV-01:OVER:2:SizeX.HOPR NPP") } -record(longin, "S03SIM-DI-OAV-01:OVER:2:MaxSizeY") +record(longin, "BL03S-DI-OAV-01:OVER:2:MaxSizeY") { - field(INP, "S03SIM-DI-OAV-01:OVER:MaxSizeY_RBV CP") - field(FLNK, "S03SIM-DI-OAV-01:OVER:2:SetYHOPR.PROC PP") + field(INP, "BL03S-DI-OAV-01:OVER:MaxSizeY_RBV CP") + field(FLNK, "BL03S-DI-OAV-01:OVER:2:SetYHOPR.PROC PP") } -record(dfanout, "S03SIM-DI-OAV-01:OVER:2:SetYHOPR") +record(dfanout, "BL03S-DI-OAV-01:OVER:2:SetYHOPR") { - field(DOL, "S03SIM-DI-OAV-01:OVER:2:MaxSizeY NPP") + field(DOL, "BL03S-DI-OAV-01:OVER:2:MaxSizeY NPP") field(OMSL, "closed_loop") - field(OUTA, "S03SIM-DI-OAV-01:OVER:2:PositionY.HOPR NPP") - field(OUTB, "S03SIM-DI-OAV-01:OVER:2:CenterY.HOPR NPP") - field(OUTC, "S03SIM-DI-OAV-01:OVER:2:SizeY.HOPR NPP") + field(OUTA, "BL03S-DI-OAV-01:OVER:2:PositionY.HOPR NPP") + field(OUTB, "BL03S-DI-OAV-01:OVER:2:CenterY.HOPR NPP") + field(OUTC, "BL03S-DI-OAV-01:OVER:2:SizeY.HOPR NPP") } ################################################################### # Text overlay (Keith Brister 2014-06-26) ################################################################### -record(waveform, "S03SIM-DI-OAV-01:OVER:2:DisplayText") +record(waveform, "BL03S-DI-OAV-01:OVER:2:DisplayText") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -5401,7 +5372,7 @@ record(waveform, "S03SIM-DI-OAV-01:OVER:2:DisplayText") info(autosaveFields, "VAL") } -record(waveform, "S03SIM-DI-OAV-01:OVER:2:DisplayText_RBV") +record(waveform, "BL03S-DI-OAV-01:OVER:2:DisplayText_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.over,1,1)OVERLAY_DISPLAY_TEXT") @@ -5410,7 +5381,7 @@ record(waveform, "S03SIM-DI-OAV-01:OVER:2:DisplayText_RBV") field(SCAN, "I/O Intr") } -record(stringout, "S03SIM-DI-OAV-01:OVER:2:TimeStampFormat") +record(stringout, "BL03S-DI-OAV-01:OVER:2:TimeStampFormat") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -5419,14 +5390,14 @@ record(stringout, "S03SIM-DI-OAV-01:OVER:2:TimeStampFormat") info(autosaveFields, "VAL") } -record(stringin, "S03SIM-DI-OAV-01:OVER:2:TimeStampFormat_RBV") +record(stringin, "BL03S-DI-OAV-01:OVER:2:TimeStampFormat_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.over,1,1)OVERLAY_TIMESTAMP_FORMAT") field(SCAN, "I/O Intr") } -record(mbbo, "S03SIM-DI-OAV-01:OVER:2:Font") +record(mbbo, "BL03S-DI-OAV-01:OVER:2:Font") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -5442,7 +5413,7 @@ record(mbbo, "S03SIM-DI-OAV-01:OVER:2:Font") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-DI-OAV-01:OVER:2:Font_RBV") +record(mbbi, "BL03S-DI-OAV-01:OVER:2:Font_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.over,1,1)OVERLAY_FONT") @@ -5460,7 +5431,7 @@ record(mbbi, "S03SIM-DI-OAV-01:OVER:2:Font_RBV") ################################################################### # These records control whether this overlay is used # ################################################################### -record(bo, "S03SIM-DI-OAV-01:OVER:2:Use") +record(bo, "BL03S-DI-OAV-01:OVER:2:Use") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -5471,7 +5442,7 @@ record(bo, "S03SIM-DI-OAV-01:OVER:2:Use") info(autosaveFields, "VAL") } -record(bi, "S03SIM-DI-OAV-01:OVER:2:Use_RBV") +record(bi, "BL03S-DI-OAV-01:OVER:2:Use_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.over,1,1)USE") @@ -5482,7 +5453,7 @@ record(bi, "S03SIM-DI-OAV-01:OVER:2:Use_RBV") field(SCAN, "I/O Intr") } -record(bo, "S03SIM-EA-FSCN-01:OVER:1:Use") +record(bo, "BL03S-EA-FSCN-01:OVER:1:Use") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -5493,7 +5464,7 @@ record(bo, "S03SIM-EA-FSCN-01:OVER:1:Use") info(autosaveFields, "VAL") } -record(bi, "S03SIM-EA-FSCN-01:OVER:1:Use_RBV") +record(bi, "BL03S-EA-FSCN-01:OVER:1:Use_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.over,0,1)USE") @@ -5504,7 +5475,7 @@ record(bi, "S03SIM-EA-FSCN-01:OVER:1:Use_RBV") field(SCAN, "I/O Intr") } -record(bo, "S03SIM-DI-OAV-01:OVER:EnableCallbacks") +record(bo, "BL03S-DI-OAV-01:OVER:EnableCallbacks") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -5515,7 +5486,7 @@ record(bo, "S03SIM-DI-OAV-01:OVER:EnableCallbacks") info(autosaveFields, "VAL") } -record(bi, "S03SIM-DI-OAV-01:OVER:EnableCallbacks_RBV") +record(bi, "BL03S-DI-OAV-01:OVER:EnableCallbacks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.over,0,1)ENABLE_CALLBACKS") @@ -5526,7 +5497,7 @@ record(bi, "S03SIM-DI-OAV-01:OVER:EnableCallbacks_RBV") field(SCAN, "I/O Intr") } -record(ao, "S03SIM-DI-OAV-01:OVER:MinCallbackTime") +record(ao, "BL03S-DI-OAV-01:OVER:MinCallbackTime") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -5538,7 +5509,7 @@ record(ao, "S03SIM-DI-OAV-01:OVER:MinCallbackTime") info(autosaveFields, "VAL") } -record(ai, "S03SIM-DI-OAV-01:OVER:MinCallbackTime_RBV") +record(ai, "BL03S-DI-OAV-01:OVER:MinCallbackTime_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.over,0,1)MIN_CALLBACK_TIME") @@ -5547,33 +5518,33 @@ record(ai, "S03SIM-DI-OAV-01:OVER:MinCallbackTime_RBV") field(SCAN, "I/O Intr") } -record(ao, "S03SIM-DI-OAV-01:OVER:MaxArrayRate") +record(ao, "BL03S-DI-OAV-01:OVER:MaxArrayRate") { field(DTYP, "Soft Channel") - field(OUT, "S03SIM-DI-OAV-01:OVER:MaxArrayRate_COUT PP") + field(OUT, "BL03S-DI-OAV-01:OVER:MaxArrayRate_COUT PP") field(EGU, "Hz") field(PREC, "3") field(VAL, "0.0") info(autosaveFields, "VAL") } -record(calcout, "S03SIM-DI-OAV-01:OVER:MaxArrayRate_COUT") +record(calcout, "BL03S-DI-OAV-01:OVER:MaxArrayRate_COUT") { - field(INPA, "S03SIM-DI-OAV-01:OVER:MaxArrayRate") + field(INPA, "BL03S-DI-OAV-01:OVER:MaxArrayRate") field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-DI-OAV-01:OVER:MinCallbackTime PP") + field(OUT, "BL03S-DI-OAV-01:OVER:MinCallbackTime PP") } -record(calc, "S03SIM-DI-OAV-01:OVER:MaxArrayRate_RBV") +record(calc, "BL03S-DI-OAV-01:OVER:MaxArrayRate_RBV") { - field(INPA, "S03SIM-DI-OAV-01:OVER:MinCallbackTime_RBV CP") + field(INPA, "BL03S-DI-OAV-01:OVER:MinCallbackTime_RBV CP") field(CALC, "A=0?0:1.0/A") field(EGU, "Hz") field(PREC, "3") field(SCAN, "Passive") } -record(ao, "S03SIM-DI-OAV-01:OVER:MaxByteRate") +record(ao, "BL03S-DI-OAV-01:OVER:MaxByteRate") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -5585,7 +5556,7 @@ record(ao, "S03SIM-DI-OAV-01:OVER:MaxByteRate") info(autosaveFields, "VAL") } -record(ai, "S03SIM-DI-OAV-01:OVER:MaxByteRate_RBV") +record(ai, "BL03S-DI-OAV-01:OVER:MaxByteRate_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(OAV.over,0,1)MAX_BYTE_RATE") @@ -5594,7 +5565,7 @@ record(ai, "S03SIM-DI-OAV-01:OVER:MaxByteRate_RBV") field(SCAN, "I/O Intr") } -record(stringout, "S03SIM-DI-OAV-01:OVER:NDArrayPort") +record(stringout, "BL03S-DI-OAV-01:OVER:NDArrayPort") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -5603,14 +5574,14 @@ record(stringout, "S03SIM-DI-OAV-01:OVER:NDArrayPort") info(autosaveFields, "VAL") } -record(stringin, "S03SIM-DI-OAV-01:OVER:NDArrayPort_RBV") +record(stringin, "BL03S-DI-OAV-01:OVER:NDArrayPort_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.over,0,1)NDARRAY_PORT") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-DI-OAV-01:OVER:NDArrayAddress") +record(longout, "BL03S-DI-OAV-01:OVER:NDArrayAddress") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -5619,14 +5590,14 @@ record(longout, "S03SIM-DI-OAV-01:OVER:NDArrayAddress") info(autosaveFields, "VAL") } -record(longin, "S03SIM-DI-OAV-01:OVER:NDArrayAddress_RBV") +record(longin, "BL03S-DI-OAV-01:OVER:NDArrayAddress_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.over,0,1)NDARRAY_ADDR") field(SCAN, "I/O Intr") } -record(bo, "S03SIM-DI-OAV-01:OVER:1:Use") +record(bo, "BL03S-DI-OAV-01:OVER:1:Use") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -5637,7 +5608,7 @@ record(bo, "S03SIM-DI-OAV-01:OVER:1:Use") info(autosaveFields, "VAL") } -record(bi, "S03SIM-DI-OAV-01:OVER:1:Use_RBV") +record(bi, "BL03S-DI-OAV-01:OVER:1:Use_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(OAV.over,0,1)USE") @@ -5648,23 +5619,23 @@ record(bi, "S03SIM-DI-OAV-01:OVER:1:Use_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize1_RBV") +record(longin, "BL03S-DI-OAV-01:MJPG:ArraySize1_RBV") { - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim2SA_RBV") + field(INP, "BL03S-DI-OAV-01:MJPG:Dim1SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:MJPG:Dim2SA_RBV") } -record(longin, "S03SIM-DI-OAV-01:MJPG:JPG_URL_RBV") +record(longin, "BL03S-DI-OAV-01:MJPG:JPG_URL_RBV") { - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim1SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim2SA_RBV") + field(INP, "BL03S-DI-OAV-01:MJPG:Dim1SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:MJPG:Dim2SA_RBV") } -record(longin, "S03SIM-DI-OAV-01:MJPG:ArraySize2_RBV") +record(longin, "BL03S-DI-OAV-01:MJPG:ArraySize2_RBV") { - field(INP, "S03SIM-DI-OAV-01:MJPG:Dim2SA_RBV") - field(FLNK, "S03SIM-DI-OAV-01:MJPG:Dim3SA_RBV") + field(INP, "BL03S-DI-OAV-01:MJPG:Dim2SA_RBV") + field(FLNK, "BL03S-DI-OAV-01:MJPG:Dim3SA_RBV") } -record(stringout, "S03SIM-DI-OAV-01:MJPG:NDArrayPort") +record(stringout, "BL03S-DI-OAV-01:MJPG:NDArrayPort") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -5673,7 +5644,7 @@ record(stringout, "S03SIM-DI-OAV-01:MJPG:NDArrayPort") info(autosaveFields, "VAL") } -record(stringin, "S03SIM-DI-OAV-01:MJPG:NDArrayPort_RBV") +record(stringin, "BL03S-DI-OAV-01:MJPG:NDArrayPort_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(OAV.mjpg,0,1)NDARRAY_PORT") diff --git a/tickit_devices/oav/db_files/EA-BL.db b/tickit_devices/oav/db_files/EA-BL.db index d1185066..0e1853de 100755 --- a/tickit_devices/oav/db_files/EA-BL.db +++ b/tickit_devices/oav/db_files/EA-BL.db @@ -1,5 +1,5 @@ -record(stringout, "S03SIM-EA-BL-01:CTRL") +record(stringout, "BL03S-EA-BL-01:CTRL") { field(PINI, "YES") field(DTYP, "asynOctetWrite") diff --git a/tickit_devices/oav/db_files/EA-FSCN.db b/tickit_devices/oav/db_files/EA-FSCN.db index d2083004..d9a59446 100755 --- a/tickit_devices/oav/db_files/EA-FSCN.db +++ b/tickit_devices/oav/db_files/EA-FSCN.db @@ -4,48 +4,48 @@ #% macro, PORT, Asyn Port name #% macro, TIMEOUT, Timeout, default=1 #% macro, ADDR, Asyn Port address, default=0 -#% gui, FSCN1.CAM, edmtab, ADGenICam.edl, P=S03SIM-EA-FSCN-01,R=:CAM:,C=AVT_Manta_G125B +#% gui, FSCN1.CAM, edmtab, ADGenICam.edl, P=BL03S-EA-FSCN-01,R=:CAM:,C=AVT_Manta_G125B -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_FirmwareVerMajor_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_FirmwareVerMajor_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_FirmwareVerMajor") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_FirmwareVerMajor") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_FirmwareVerMajor") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_FirmwareVerMajor") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_FirmwareVerMinor_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_FirmwareVerMinor_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_FirmwareVerMinor") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_FirmwareVerMinor") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_FirmwareVerMinor") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_FirmwareVerMinor") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_FirmwareVerBuild_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_FirmwareVerBuild_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_FirmwareVerBuild") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_FirmwareVerBuild") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_FirmwareVerBuild") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_FirmwareVerBuild") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_SensorType_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_SensorType_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_SensorType") field(ZRST, "Mono") @@ -56,7 +56,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_SensorType_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_SensorType") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_SensorType") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_SensorType") field(DOL, "0") @@ -67,55 +67,55 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_SensorType") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_SensorBits_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_SensorBits_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_SensorBits") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_SensorBits") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_SensorBits") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_SensorBits") field(DISA, "0") } -record(stringin, "S03SIM-EA-FSCN-01:CAM:GC_DeviceVendorName_RBV") { +record(stringin, "BL03S-EA-FSCN-01:CAM:GC_DeviceVendorName_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.CAM,0,1)GC_S_DeviceVendorName") field(SCAN, "I/O Intr") field(DISA, "0") } -record(stringin, "S03SIM-EA-FSCN-01:CAM:GC_DeviceModelName_RBV") { +record(stringin, "BL03S-EA-FSCN-01:CAM:GC_DeviceModelName_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.CAM,0,1)GC_S_DeviceModelName") field(SCAN, "I/O Intr") field(DISA, "0") } -record(stringin, "S03SIM-EA-FSCN-01:CAM:GC_DevFirVersion_RBV") { +record(stringin, "BL03S-EA-FSCN-01:CAM:GC_DevFirVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.CAM,0,1)GC_S_DeviceFirmwareVersion") field(SCAN, "I/O Intr") field(DISA, "0") } -record(stringin, "S03SIM-EA-FSCN-01:CAM:GC_DeviceID_RBV") { +record(stringin, "BL03S-EA-FSCN-01:CAM:GC_DeviceID_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.CAM,0,1)GC_S_DeviceID") field(SCAN, "I/O Intr") field(DISA, "0") } -record(stringin, "S03SIM-EA-FSCN-01:CAM:GC_DevicePartNumber_RBV") { +record(stringin, "BL03S-EA-FSCN-01:CAM:GC_DevicePartNumber_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.CAM,0,1)GC_S_DevicePartNumber") field(SCAN, "I/O Intr") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_DeviceScanType_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_DeviceScanType_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_DeviceScanType") field(ZRST, "Areascan") @@ -124,7 +124,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_DeviceScanType_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_DeviceScanType") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_DeviceScanType") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_DeviceScanType") field(DOL, "0") @@ -133,20 +133,20 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_DeviceScanType") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_StrBytesPerSecond_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_StrBytesPerSecond_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_StreamBytesPerSecond") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_StrBytesPerSecond") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_StrBytesPerSecond") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_StreamBytesPerSecond") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_BanControlMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_BanControlMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_BandwidthControlMode") field(ZRST, "StreamBytesPerSe") @@ -159,7 +159,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_BanControlMode_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_BanControlMode") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_BanControlMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_BandwidthControlMode") field(DOL, "0") @@ -172,20 +172,20 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_BanControlMode") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GevSCPSPacketSize_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_GevSCPSPacketSize_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_GevSCPSPacketSize") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GevSCPSPacketSize") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_GevSCPSPacketSize") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_GevSCPSPacketSize") field(DISA, "0") } -record(bi, "S03SIM-EA-FSCN-01:CAM:GC_ChunkModeActive_RBV") { +record(bi, "BL03S-EA-FSCN-01:CAM:GC_ChunkModeActive_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_B_ChunkModeActive") field(SCAN, "I/O Intr") @@ -194,7 +194,7 @@ record(bi, "S03SIM-EA-FSCN-01:CAM:GC_ChunkModeActive_RBV") { field(DISA, "0") } -record(bo, "S03SIM-EA-FSCN-01:CAM:GC_ChunkModeActive") { +record(bo, "BL03S-EA-FSCN-01:CAM:GC_ChunkModeActive") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_B_ChunkModeActive") field(ZNAM, "No") @@ -202,33 +202,33 @@ record(bo, "S03SIM-EA-FSCN-01:CAM:GC_ChunkModeActive") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_PayloadSize_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_PayloadSize_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_PayloadSize") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_PayloadSize") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_PayloadSize") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_PayloadSize") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_NonImaPayloadSize_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_NonImaPayloadSize_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_NonImagePayloadSize") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_NonImaPayloadSize") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_NonImaPayloadSize") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_NonImagePayloadSize") field(DISA, "0") } -record(bi, "S03SIM-EA-FSCN-01:CAM:GC_StrFraRatCon_RBV") { +record(bi, "BL03S-EA-FSCN-01:CAM:GC_StrFraRatCon_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_B_StreamFrameRateConstrain") field(SCAN, "I/O Intr") @@ -237,7 +237,7 @@ record(bi, "S03SIM-EA-FSCN-01:CAM:GC_StrFraRatCon_RBV") { field(DISA, "0") } -record(bo, "S03SIM-EA-FSCN-01:CAM:GC_StrFraRatCon") { +record(bo, "BL03S-EA-FSCN-01:CAM:GC_StrFraRatCon") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_B_StreamFrameRateConstrain") field(ZNAM, "No") @@ -245,7 +245,7 @@ record(bo, "S03SIM-EA-FSCN-01:CAM:GC_StrFraRatCon") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_StreamHoldEnable_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_StreamHoldEnable_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_StreamHoldEnable") field(ZRST, "Off") @@ -256,7 +256,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_StreamHoldEnable_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_StreamHoldEnable") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_StreamHoldEnable") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_StreamHoldEnable") field(DOL, "0") @@ -267,76 +267,76 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_StreamHoldEnable") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_StrHoldCapacity_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_StrHoldCapacity_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_StreamHoldCapacity") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_StrHoldCapacity") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_StrHoldCapacity") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_StreamHoldCapacity") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GevTimTicFre_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_GevTimTicFre_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_GevTimestampTickFrequency") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GevTimTicFre") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_GevTimTicFre") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_GevTimestampTickFrequency") field(DISA, "0") } -record(longout, "S03SIM-EA-FSCN-01:CAM:GC_GevTimConLatch") { +record(longout, "BL03S-EA-FSCN-01:CAM:GC_GevTimConLatch") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_C_GevTimestampControlLatch") field(DISA, "0") } -record(longout, "S03SIM-EA-FSCN-01:CAM:GC_GevTimConReset") { +record(longout, "BL03S-EA-FSCN-01:CAM:GC_GevTimConReset") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_C_GevTimestampControlReset") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GevTimestampValue_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_GevTimestampValue_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_GevTimestampValue") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GevTimestampValue") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_GevTimestampValue") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_GevTimestampValue") field(DISA, "0") } -record(longout, "S03SIM-EA-FSCN-01:CAM:GC_AcquisitionStart") { +record(longout, "BL03S-EA-FSCN-01:CAM:GC_AcquisitionStart") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_C_AcquisitionStart") field(DISA, "0") } -record(longout, "S03SIM-EA-FSCN-01:CAM:GC_AcquisitionStop") { +record(longout, "BL03S-EA-FSCN-01:CAM:GC_AcquisitionStop") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_C_AcquisitionStop") field(DISA, "0") } -record(longout, "S03SIM-EA-FSCN-01:CAM:GC_AcquisitionAbort") { +record(longout, "BL03S-EA-FSCN-01:CAM:GC_AcquisitionAbort") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_C_AcquisitionAbort") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_AcquisitionMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_AcquisitionMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_AcquisitionMode") field(ZRST, "Continuous") @@ -351,7 +351,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_AcquisitionMode_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_AcquisitionMode") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_AcquisitionMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_AcquisitionMode") field(DOL, "1") @@ -366,20 +366,20 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_AcquisitionMode") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_AcqFrameCount_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_AcqFrameCount_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_AcquisitionFrameCount") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_AcqFrameCount") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_AcqFrameCount") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_AcquisitionFrameCount") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_AcqFrameRateAbs_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_AcqFrameRateAbs_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_AcquisitionFrameRateAbs") field(PREC, "3") @@ -387,14 +387,14 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:GC_AcqFrameRateAbs_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_AcqFrameRateAbs") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_AcqFrameRateAbs") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_AcquisitionFrameRateAbs") field(PREC, "3") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_AcqFrameRateLimit_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_AcqFrameRateLimit_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_AcquisitionFrameRateLimit") field(PREC, "3") @@ -402,27 +402,27 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:GC_AcqFrameRateLimit_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_AcqFrameRateLimit") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_AcqFrameRateLimit") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_AcquisitionFrameRateLimit") field(PREC, "3") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_RecPreEventCount_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_RecPreEventCount_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_RecorderPreEventCount") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_RecPreEventCount") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_RecPreEventCount") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_RecorderPreEventCount") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_TriggerSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_TriggerSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_TriggerSelector") field(ZRST, "FrameStart") @@ -437,7 +437,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_TriggerSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_TriggerSelector") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_TriggerSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_TriggerSelector") field(DOL, "0") @@ -452,7 +452,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_TriggerSelector") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_TriggerMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_TriggerMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_TriggerMode") field(ZRST, "Off") @@ -463,7 +463,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_TriggerMode_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_TriggerMode") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_TriggerMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_TriggerMode") field(DOL, "0") @@ -474,13 +474,13 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_TriggerMode") { field(DISA, "0") } -record(longout, "S03SIM-EA-FSCN-01:CAM:GC_TriggerSoftware") { +record(longout, "BL03S-EA-FSCN-01:CAM:GC_TriggerSoftware") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_C_TriggerSoftware") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_TriggerSource_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_TriggerSource_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_TriggerSource") field(ZRST, "Freerun") @@ -501,7 +501,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_TriggerSource_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_TriggerSource") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_TriggerSource") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_TriggerSource") field(DOL, "0") @@ -522,7 +522,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_TriggerSource") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_TriggerActivation_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_TriggerActivation_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_TriggerActivation") field(ZRST, "RisingEdge") @@ -539,7 +539,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_TriggerActivation_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_TriggerActivation") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_TriggerActivation") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_TriggerActivation") field(DOL, "0") @@ -556,7 +556,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_TriggerActivation") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_TriggerOverlap_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_TriggerOverlap_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_TriggerOverlap") field(ZRST, "Off") @@ -569,7 +569,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_TriggerOverlap_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_TriggerOverlap") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_TriggerOverlap") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_TriggerOverlap") field(DOL, "0") @@ -582,7 +582,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_TriggerOverlap") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_TriggerDelayAbs_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_TriggerDelayAbs_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_TriggerDelayAbs") field(PREC, "3") @@ -590,92 +590,92 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:GC_TriggerDelayAbs_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_TriggerDelayAbs") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_TriggerDelayAbs") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_TriggerDelayAbs") field(PREC, "3") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_SensorWidth_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_SensorWidth_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_SensorWidth") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_SensorWidth") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_SensorWidth") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_SensorWidth") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_SensorHeight_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_SensorHeight_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_SensorHeight") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_SensorHeight") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_SensorHeight") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_SensorHeight") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_BinningHorizontal_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_BinningHorizontal_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_BinningHorizontal") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_BinningHorizontal") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_BinningHorizontal") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_BinningHorizontal") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_BinningVertical_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_BinningVertical_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_BinningVertical") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_BinningVertical") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_BinningVertical") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_BinningVertical") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_DecHorizontal_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_DecHorizontal_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_DecimationHorizontal") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_DecHorizontal") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_DecHorizontal") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_DecimationHorizontal") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_DecVertical_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_DecVertical_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_DecimationVertical") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_DecVertical") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_DecVertical") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_DecimationVertical") field(DISA, "0") } -record(bi, "S03SIM-EA-FSCN-01:CAM:GC_ReverseX_RBV") { +record(bi, "BL03S-EA-FSCN-01:CAM:GC_ReverseX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_B_ReverseX") field(SCAN, "I/O Intr") @@ -684,7 +684,7 @@ record(bi, "S03SIM-EA-FSCN-01:CAM:GC_ReverseX_RBV") { field(DISA, "0") } -record(bo, "S03SIM-EA-FSCN-01:CAM:GC_ReverseX") { +record(bo, "BL03S-EA-FSCN-01:CAM:GC_ReverseX") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_B_ReverseX") field(ZNAM, "No") @@ -692,33 +692,33 @@ record(bo, "S03SIM-EA-FSCN-01:CAM:GC_ReverseX") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_WidthMax_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_WidthMax_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_WidthMax") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_WidthMax") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_WidthMax") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_WidthMax") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_HeightMax_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_HeightMax_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_HeightMax") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_HeightMax") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_HeightMax") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_HeightMax") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_PixelFormat_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_PixelFormat_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_PixelFormat") field(ZRST, "Mono8") @@ -757,7 +757,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_PixelFormat_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_PixelFormat") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_PixelFormat") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_PixelFormat") field(DOL, "0x01080001") @@ -796,72 +796,72 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_PixelFormat") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_Width_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_Width_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_Width") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_Width") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_Width") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_Width") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_Height_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_Height_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_Height") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_Height") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_Height") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_Height") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_OffsetX_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_OffsetX_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_OffsetX") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_OffsetX") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_OffsetX") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_OffsetX") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_OffsetY_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_OffsetY_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_OffsetY") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_OffsetY") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_OffsetY") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_OffsetY") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ImageSize_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_ImageSize_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_ImageSize") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ImageSize") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_ImageSize") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_ImageSize") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_Gamma_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_Gamma_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_Gamma") field(PREC, "3") @@ -869,14 +869,14 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:GC_Gamma_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_Gamma") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_Gamma") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_Gamma") field(PREC, "3") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_NirMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_NirMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_NirMode") field(ZRST, "Off") @@ -889,7 +889,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_NirMode_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_NirMode") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_NirMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_NirMode") field(DOL, "0") @@ -902,7 +902,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_NirMode") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_Hue_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_Hue_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_Hue") field(PREC, "3") @@ -910,14 +910,14 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:GC_Hue_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_Hue") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_Hue") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_Hue") field(PREC, "3") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_Saturation_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_Saturation_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_Saturation") field(PREC, "3") @@ -925,14 +925,14 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:GC_Saturation_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_Saturation") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_Saturation") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_Saturation") field(PREC, "3") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_EdgeFilter_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_EdgeFilter_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_EdgeFilter") field(ZRST, "Smooth2") @@ -949,7 +949,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_EdgeFilter_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_EdgeFilter") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_EdgeFilter") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_EdgeFilter") field(DOL, "14") @@ -966,59 +966,59 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_EdgeFilter") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_DSPSubregionLeft_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_DSPSubregionLeft_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_DSPSubregionLeft") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_DSPSubregionLeft") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_DSPSubregionLeft") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_DSPSubregionLeft") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_DSPSubregionTop_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_DSPSubregionTop_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_DSPSubregionTop") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_DSPSubregionTop") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_DSPSubregionTop") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_DSPSubregionTop") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_DSPSubregionRight_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_DSPSubregionRight_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_DSPSubregionRight") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_DSPSubregionRight") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_DSPSubregionRight") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_DSPSubregionRight") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_DSPSubBottom_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_DSPSubBottom_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_DSPSubregionBottom") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_DSPSubBottom") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_DSPSubBottom") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_DSPSubregionBottom") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_ExposureMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_ExposureMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_ExposureMode") field(ZRST, "Timed") @@ -1027,7 +1027,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_ExposureMode_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_ExposureMode") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_ExposureMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_ExposureMode") field(DOL, "1") @@ -1036,7 +1036,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_ExposureMode") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ExposureTimeAbs_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_ExposureTimeAbs_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_ExposureTimeAbs") field(PREC, "3") @@ -1044,14 +1044,14 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ExposureTimeAbs_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ExposureTimeAbs") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_ExposureTimeAbs") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_ExposureTimeAbs") field(PREC, "3") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAuto_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_ExposureAuto_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_ExposureAuto") field(ZRST, "Off") @@ -1066,7 +1066,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAuto_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAuto") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_ExposureAuto") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_ExposureAuto") field(DOL, "1") @@ -1081,20 +1081,20 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAuto") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ExpAutoTarget_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_ExpAutoTarget_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoTarget") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ExpAutoTarget") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_ExpAutoTarget") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoTarget") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAutoAlg_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_ExposureAutoAlg_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_ExposureAutoAlg") field(ZRST, "Mean") @@ -1105,7 +1105,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAutoAlg_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAutoAlg") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_ExposureAutoAlg") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_ExposureAutoAlg") field(DOL, "0") @@ -1116,72 +1116,72 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAutoAlg") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAutoMin_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_ExposureAutoMin_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoMin") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAutoMin") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_ExposureAutoMin") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoMin") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAutoMax_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_ExposureAutoMax_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoMax") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAutoMax") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_ExposureAutoMax") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoMax") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAutoRate_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_ExposureAutoRate_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoRate") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ExposureAutoRate") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_ExposureAutoRate") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoRate") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ExpAutoOutliers_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_ExpAutoOutliers_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoOutliers") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ExpAutoOutliers") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_ExpAutoOutliers") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoOutliers") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ExpAutoAdjustTol_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_ExpAutoAdjustTol_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoAdjustTol") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ExpAutoAdjustTol") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_ExpAutoAdjustTol") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureAutoAdjustTol") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_GainSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_GainSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_GainSelector") field(ZRST, "All") @@ -1190,7 +1190,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_GainSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_GainSelector") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_GainSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_GainSelector") field(DOL, "0") @@ -1199,7 +1199,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_GainSelector") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_Gain_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_Gain_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_Gain") field(PREC, "3") @@ -1207,14 +1207,14 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:GC_Gain_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_Gain") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_Gain") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_Gain") field(PREC, "3") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_GainAuto_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_GainAuto_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_GainAuto") field(ZRST, "Off") @@ -1227,7 +1227,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_GainAuto_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_GainAuto") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_GainAuto") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_GainAuto") field(DOL, "1") @@ -1240,20 +1240,20 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_GainAuto") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoTarget_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_GainAutoTarget_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_GainAutoTarget") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoTarget") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_GainAutoTarget") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_GainAutoTarget") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoMin_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_GainAutoMin_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_GainAutoMin") field(PREC, "3") @@ -1261,14 +1261,14 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoMin_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoMin") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_GainAutoMin") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_GainAutoMin") field(PREC, "3") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoMax_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_GainAutoMax_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_GainAutoMax") field(PREC, "3") @@ -1276,53 +1276,53 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoMax_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoMax") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_GainAutoMax") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_GainAutoMax") field(PREC, "3") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoRate_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_GainAutoRate_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_GainAutoRate") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoRate") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_GainAutoRate") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_GainAutoRate") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoOutliers_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_GainAutoOutliers_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_GainAutoOutliers") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoOutliers") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_GainAutoOutliers") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_GainAutoOutliers") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoAdjustTol_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_GainAutoAdjustTol_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_GainAutoAdjustTol") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoAdjustTol") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_GainAutoAdjustTol") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_GainAutoAdjustTol") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_BlaLevelSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_BlaLevelSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_BlackLevelSelector") field(ZRST, "All") @@ -1331,7 +1331,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_BlaLevelSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_BlaLevelSelector") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_BlaLevelSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_BlackLevelSelector") field(DOL, "0") @@ -1340,7 +1340,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_BlaLevelSelector") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_BlackLevel_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_BlackLevel_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_BlackLevel") field(PREC, "3") @@ -1348,14 +1348,14 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:GC_BlackLevel_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_BlackLevel") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_BlackLevel") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_BlackLevel") field(PREC, "3") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_BalRatioSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_BalRatioSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_BalanceRatioSelector") field(ZRST, "Red") @@ -1366,7 +1366,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_BalRatioSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_BalRatioSelector") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_BalRatioSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_BalanceRatioSelector") field(DOL, "0") @@ -1377,7 +1377,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_BalRatioSelector") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_BalanceRatioAbs_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_BalanceRatioAbs_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_BalanceRatioAbs") field(PREC, "3") @@ -1385,14 +1385,14 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:GC_BalanceRatioAbs_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_BalanceRatioAbs") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_BalanceRatioAbs") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_BalanceRatioAbs") field(PREC, "3") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_BalanceWhiteAuto_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_BalanceWhiteAuto_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_BalanceWhiteAuto") field(ZRST, "Off") @@ -1405,7 +1405,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_BalanceWhiteAuto_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_BalanceWhiteAuto") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_BalanceWhiteAuto") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_BalanceWhiteAuto") field(DOL, "1") @@ -1418,33 +1418,33 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_BalanceWhiteAuto") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_BalWhiteAutoRate_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_BalWhiteAutoRate_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_BalanceWhiteAutoRate") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_BalWhiteAutoRate") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_BalWhiteAutoRate") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_BalanceWhiteAutoRate") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_BalWhiAutAdjTol_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_BalWhiAutAdjTol_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_BalanceWhiteAutoAdjustTol") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_BalWhiAutAdjTol") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_BalWhiAutAdjTol") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_BalanceWhiteAutoAdjustTol") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_IrisMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_IrisMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_IrisMode") field(ZRST, "Disabled") @@ -1459,7 +1459,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_IrisMode_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_IrisMode") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_IrisMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_IrisMode") field(DOL, "0") @@ -1474,59 +1474,59 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_IrisMode") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_IrisAutoTarget_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_IrisAutoTarget_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_IrisAutoTarget") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_IrisAutoTarget") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_IrisAutoTarget") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_IrisAutoTarget") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_IrisVideoLevel_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_IrisVideoLevel_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_IrisVideoLevel") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_IrisVideoLevel") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_IrisVideoLevel") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_IrisVideoLevel") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_IrisVideoLevelMin_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_IrisVideoLevelMin_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_IrisVideoLevelMin") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_IrisVideoLevelMin") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_IrisVideoLevelMin") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_IrisVideoLevelMin") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_IrisVideoLevelMax_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_IrisVideoLevelMax_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_IrisVideoLevelMax") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_IrisVideoLevelMax") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_IrisVideoLevelMax") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_IrisVideoLevelMax") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_DefMasColEnable_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_DefMasColEnable_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_DefectMaskColumnEnable") field(ZRST, "Disabled") @@ -1537,7 +1537,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_DefMasColEnable_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_DefMasColEnable") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_DefMasColEnable") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_DefectMaskColumnEnable") field(DOL, "0") @@ -1548,7 +1548,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_DefMasColEnable") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_DefMasPixelEnable_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_DefMasPixelEnable_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_DefectMaskPixelEnable") field(ZRST, "Disabled") @@ -1559,7 +1559,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_DefMasPixelEnable_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_DefMasPixelEnable") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_DefMasPixelEnable") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_DefectMaskPixelEnable") field(DOL, "0") @@ -1570,20 +1570,20 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_DefMasPixelEnable") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_VsubValue_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_VsubValue_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_VsubValue") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_VsubValue") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_VsubValue") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_VsubValue") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_ColTraSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_ColTraSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_ColorTransformationSelector") field(ZRST, "RGBtoRGB") @@ -1592,7 +1592,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_ColTraSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_ColTraSelector") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_ColTraSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_ColorTransformationSelector") field(DOL, "0") @@ -1601,7 +1601,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_ColTraSelector") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_ColTraMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_ColTraMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_ColorTransformationMode") field(ZRST, "Off") @@ -1614,7 +1614,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_ColTraMode_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_ColTraMode") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_ColTraMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_ColorTransformationMode") field(DOL, "0") @@ -1627,7 +1627,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_ColTraMode") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_ColTraValSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_ColTraValSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_ColorTransformationValueSelector") field(ZRST, "Gain00") @@ -1652,7 +1652,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_ColTraValSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_ColTraValSelector") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_ColTraValSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_ColorTransformationValueSelector") field(DOL, "0") @@ -1677,7 +1677,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_ColTraValSelector") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ColTraValue_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_ColTraValue_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_D_ColorTransformationValue") field(PREC, "3") @@ -1685,14 +1685,14 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ColTraValue_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ColTraValue") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_ColTraValue") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_D_ColorTransformationValue") field(PREC, "3") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_LUTSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_LUTSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_LUTSelector") field(ZRST, "LUT1") @@ -1705,7 +1705,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_LUTSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_LUTSelector") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_LUTSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_LUTSelector") field(DOL, "0") @@ -1718,7 +1718,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_LUTSelector") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_LUTMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_LUTMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_LUTMode") field(ZRST, "Luminance") @@ -1733,7 +1733,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_LUTMode_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_LUTMode") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_LUTMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_LUTMode") field(DOL, "0") @@ -1748,7 +1748,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_LUTMode") { field(DISA, "0") } -record(bi, "S03SIM-EA-FSCN-01:CAM:GC_LUTEnable_RBV") { +record(bi, "BL03S-EA-FSCN-01:CAM:GC_LUTEnable_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_B_LUTEnable") field(SCAN, "I/O Intr") @@ -1757,7 +1757,7 @@ record(bi, "S03SIM-EA-FSCN-01:CAM:GC_LUTEnable_RBV") { field(DISA, "0") } -record(bo, "S03SIM-EA-FSCN-01:CAM:GC_LUTEnable") { +record(bo, "BL03S-EA-FSCN-01:CAM:GC_LUTEnable") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_B_LUTEnable") field(ZNAM, "No") @@ -1765,110 +1765,110 @@ record(bo, "S03SIM-EA-FSCN-01:CAM:GC_LUTEnable") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_LUTIndex_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_LUTIndex_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_LUTIndex") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_LUTIndex") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_LUTIndex") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_LUTIndex") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_LUTValue_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_LUTValue_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_LUTValue") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_LUTValue") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_LUTValue") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_LUTValue") field(DISA, "0") } -record(longout, "S03SIM-EA-FSCN-01:CAM:GC_LUTLoad") { +record(longout, "BL03S-EA-FSCN-01:CAM:GC_LUTLoad") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_C_LUTLoad") field(DISA, "0") } -record(longout, "S03SIM-EA-FSCN-01:CAM:GC_LUTSave") { +record(longout, "BL03S-EA-FSCN-01:CAM:GC_LUTSave") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_C_LUTSave") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_LUTBitDepthIn_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_LUTBitDepthIn_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_LUTBitDepthIn") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_LUTBitDepthIn") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_LUTBitDepthIn") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_LUTBitDepthIn") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_LUTBitDepthOut_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_LUTBitDepthOut_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_LUTBitDepthOut") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_LUTBitDepthOut") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_LUTBitDepthOut") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_LUTBitDepthOut") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_LUTAddress_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_LUTAddress_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_LUTAddress") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_LUTAddress") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_LUTAddress") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_LUTAddress") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_LUTSizeBytes_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_LUTSizeBytes_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_LUTSizeBytes") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_LUTSizeBytes") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_LUTSizeBytes") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_LUTSizeBytes") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_SyncInLevels_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_SyncInLevels_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_SyncInLevels") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_SyncInLevels") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_SyncInLevels") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_SyncInLevels") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_SyncInSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_SyncInSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_SyncInSelector") field(ZRST, "SyncIn1") @@ -1883,7 +1883,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_SyncInSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_SyncInSelector") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_SyncInSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_SyncInSelector") field(DOL, "0") @@ -1898,33 +1898,33 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_SyncInSelector") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_SynInGlitchFilter_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_SynInGlitchFilter_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_SyncInGlitchFilter") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_SynInGlitchFilter") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_SynInGlitchFilter") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_SyncInGlitchFilter") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutLevels_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_SyncOutLevels_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_SyncOutLevels") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutLevels") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_SyncOutLevels") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_SyncOutLevels") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_SyncOutSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_SyncOutSelector") field(ZRST, "SyncOut1") @@ -1939,7 +1939,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutSelector") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_SyncOutSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_SyncOutSelector") field(DOL, "0") @@ -1954,7 +1954,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutSelector") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutSource_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_SyncOutSource_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_SyncOutSource") field(ZRST, "GPO") @@ -1983,7 +1983,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutSource_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutSource") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_SyncOutSource") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_SyncOutSource") field(DOL, "0") @@ -2012,7 +2012,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutSource") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutPolarity_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_SyncOutPolarity_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_SyncOutPolarity") field(ZRST, "Normal") @@ -2023,7 +2023,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutPolarity_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutPolarity") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_SyncOutPolarity") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_SyncOutPolarity") field(DOL, "0") @@ -2034,7 +2034,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_SyncOutPolarity") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_StrobeSource_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_StrobeSource_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_StrobeSource") field(ZRST, "AcquisitionTrigg") @@ -2057,7 +2057,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_StrobeSource_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_StrobeSource") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_StrobeSource") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_StrobeSource") field(DOL, "1") @@ -2080,7 +2080,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_StrobeSource") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_StrDurationMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_StrDurationMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_StrobeDurationMode") field(ZRST, "Source") @@ -2091,7 +2091,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_StrDurationMode_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_StrDurationMode") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_StrDurationMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_StrobeDurationMode") field(DOL, "0") @@ -2102,33 +2102,33 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_StrDurationMode") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_StrobeDelay_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_StrobeDelay_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_StrobeDelay") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_StrobeDelay") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_StrobeDelay") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_StrobeDelay") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_StrobeDuration_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_StrobeDuration_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_StrobeDuration") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_StrobeDuration") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_StrobeDuration") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_StrobeDuration") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_EventSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_EventSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_EventSelector") field(ZRST, "AcquisitionStart") @@ -2161,7 +2161,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_EventSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_EventSelector") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_EventSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_EventSelector") field(DOL, "40000") @@ -2194,7 +2194,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_EventSelector") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_EventNotification_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_EventNotification_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_EventNotification") field(ZRST, "Off") @@ -2205,7 +2205,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_EventNotification_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_EventNotification") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_EventNotification") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_EventNotification") field(DOL, "0") @@ -2216,215 +2216,215 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_EventNotification") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EventsEnable1_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_EventsEnable1_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventsEnable1") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EventsEnable1") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_EventsEnable1") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventsEnable1") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveAcqStart_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_EveAcqStart_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventAcquisitionStart") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveAcqStart") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_EveAcqStart") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventAcquisitionStart") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveAcquisitionEnd_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_EveAcquisitionEnd_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventAcquisitionEnd") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveAcquisitionEnd") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_EveAcquisitionEnd") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventAcquisitionEnd") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EventFrameTrigger_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_EventFrameTrigger_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventFrameTrigger") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EventFrameTrigger") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_EventFrameTrigger") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventFrameTrigger") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EventExposureEnd_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_EventExposureEnd_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventExposureEnd") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EventExposureEnd") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_EventExposureEnd") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventExposureEnd") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveAcqRecTrigger_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_EveAcqRecTrigger_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventAcquisitionRecordTrigger") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveAcqRecTrigger") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_EveAcqRecTrigger") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventAcquisitionRecordTrigger") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveLinRisingEdge_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_EveLinRisingEdge_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine1RisingEdge") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveLinRisingEdge") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_EveLinRisingEdge") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine1RisingEdge") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveLinFallingEdge_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_EveLinFallingEdge_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine1FallingEdge") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveLinFallingEdge") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_EveLinFallingEdge") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine1FallingEdge") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveLinRisingEdg0_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_EveLinRisingEdg0_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine2RisingEdge") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveLinRisingEdg0") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_EveLinRisingEdg0") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine2RisingEdge") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveLinFallingEdg0_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_EveLinFallingEdg0_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine2FallingEdge") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveLinFallingEdg0") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_EveLinFallingEdg0") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine2FallingEdge") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveLinRisingEdg1_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_EveLinRisingEdg1_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine3RisingEdge") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveLinRisingEdg1") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_EveLinRisingEdg1") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine3RisingEdge") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveLinFallingEdg1_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_EveLinFallingEdg1_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine3FallingEdge") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveLinFallingEdg1") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_EveLinFallingEdg1") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine3FallingEdge") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveLinRisingEdg2_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_EveLinRisingEdg2_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine4RisingEdge") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveLinRisingEdg2") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_EveLinRisingEdg2") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine4RisingEdge") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EveLinFallingEdg2_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_EveLinFallingEdg2_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine4FallingEdge") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EveLinFallingEdg2") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_EveLinFallingEdg2") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventLine4FallingEdge") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EventOverflow_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_EventOverflow_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventOverflow") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EventOverflow") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_EventOverflow") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventOverflow") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_EventError_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_EventError_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_EventError") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_EventError") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_EventError") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_EventError") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_UserSetSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_UserSetSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_UserSetSelector") field(ZRST, "Default") @@ -2443,7 +2443,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_UserSetSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_UserSetSelector") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_UserSetSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_UserSetSelector") field(DOL, "0") @@ -2462,19 +2462,19 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_UserSetSelector") { field(DISA, "0") } -record(longout, "S03SIM-EA-FSCN-01:CAM:GC_UserSetLoad") { +record(longout, "BL03S-EA-FSCN-01:CAM:GC_UserSetLoad") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_C_UserSetLoad") field(DISA, "0") } -record(longout, "S03SIM-EA-FSCN-01:CAM:GC_UserSetSave") { +record(longout, "BL03S-EA-FSCN-01:CAM:GC_UserSetSave") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_C_UserSetSave") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_UseSetDefSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_UseSetDefSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_UserSetDefaultSelector") field(ZRST, "Default") @@ -2493,7 +2493,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_UseSetDefSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_UseSetDefSelector") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_UseSetDefSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_UserSetDefaultSelector") field(DOL, "0") @@ -2512,33 +2512,33 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_UseSetDefSelector") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_LensVoltage_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_LensVoltage_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_LensVoltage") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_LensVoltage") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_LensVoltage") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_LensVoltage") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_LenVoltageControl_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_LenVoltageControl_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_LensVoltageControl") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_LenVoltageControl") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_LenVoltageControl") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_LensVoltageControl") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_LensDriveCommand_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_LensDriveCommand_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_LensDriveCommand") field(ZRST, "Stop") @@ -2559,7 +2559,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_LensDriveCommand_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_LensDriveCommand") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_LensDriveCommand") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_LensDriveCommand") field(DOL, "0") @@ -2580,20 +2580,20 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_LensDriveCommand") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_LensDriveDuration_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_LensDriveDuration_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_LensDriveDuration") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_LensDriveDuration") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_LensDriveDuration") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_LensDriveDuration") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_PvDumTriSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_PvDumTriSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_PvDummyTriggerSelector") field(ZRST, "FrameStart") @@ -2608,7 +2608,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_PvDumTriSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_PvDumTriSelector") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_PvDumTriSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_PvDummyTriggerSelector") field(DOL, "0") @@ -2623,7 +2623,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_PvDumTriSelector") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_PvDumFraStaTriMod_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_PvDumFraStaTriMod_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_PvDummyFrameStartTriggerMode") field(ZRST, "Freerun") @@ -2644,7 +2644,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_PvDumFraStaTriMod_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_PvDumFraStaTriMod") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_PvDumFraStaTriMod") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_PvDummyFrameStartTriggerMode") field(DOL, "2147483648") @@ -2665,7 +2665,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_PvDumFraStaTriMod") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_PvDumTriggerMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_PvDumTriggerMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)GC_E_PvDummyTriggerMode") field(ZRST, "Disabled") @@ -2686,7 +2686,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_PvDumTriggerMode_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_PvDumTriggerMode") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_PvDumTriggerMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_E_PvDummyTriggerMode") field(DOL, "0") @@ -2707,138 +2707,138 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_PvDumTriggerMode") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_FraStaTriDelay_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_FraStaTriDelay_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_FrameStartTriggerDelay") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_FraStaTriDelay") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_FraStaTriDelay") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_FrameStartTriggerDelay") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ExposureValue_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_ExposureValue_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureValue") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ExposureValue") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_ExposureValue") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_ExposureValue") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_TimeStampValueLo_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_TimeStampValueLo_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_TimeStampValueLo") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_TimeStampValueLo") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_TimeStampValueLo") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_TimeStampValueLo") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_TimeStampValueHi_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_TimeStampValueHi_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_TimeStampValueHi") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_TimeStampValueHi") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_TimeStampValueHi") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_TimeStampValueHi") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_WhitebalValueRed_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_WhitebalValueRed_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_WhitebalValueRed") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_WhitebalValueRed") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_WhitebalValueRed") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_WhitebalValueRed") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_WhitebalValueBlue_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_WhitebalValueBlue_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_WhitebalValueBlue") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_WhitebalValueBlue") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_WhitebalValueBlue") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_WhitebalValueBlue") field(DISA, "0") } -record(stringin, "S03SIM-EA-FSCN-01:CAM:GC_ModelName_RBV") { +record(stringin, "BL03S-EA-FSCN-01:CAM:GC_ModelName_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.CAM,0,1)GC_S_ModelName") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GainValue_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_GainValue_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_GainValue") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GainValue") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_GainValue") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_GainValue") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_PvGainAutoMin_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_PvGainAutoMin_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_PvGainAutoMin") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_PvGainAutoMin") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_PvGainAutoMin") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_PvGainAutoMin") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_PvGainAutoMax_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_PvGainAutoMax_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_PvGainAutoMax") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_PvGainAutoMax") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_PvGainAutoMax") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_PvGainAutoMax") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_OffsetValue_RBV") { +record(ai, "BL03S-EA-FSCN-01:CAM:GC_OffsetValue_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN1.CAM,0,1)GC_I_OffsetValue") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_OffsetValue") { +record(ao, "BL03S-EA-FSCN-01:CAM:GC_OffsetValue") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN1.CAM,0,1)GC_I_OffsetValue") field(DISA, "0") @@ -2850,48 +2850,48 @@ record(ao, "S03SIM-EA-FSCN-01:CAM:GC_OffsetValue") { #% macro, PORT, Asyn Port name #% macro, TIMEOUT, Timeout, default=1 #% macro, ADDR, Asyn Port address, default=0 -#% gui, FSCN2.CAM, edmtab, ADGenICam.edl, P=S03SIM-EA-FSCN-02,R=:CAM:,C=AVT_Manta_G125B +#% gui, FSCN2.CAM, edmtab, ADGenICam.edl, P=BL03S-EA-FSCN-02,R=:CAM:,C=AVT_Manta_G125B -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_FirmwareVerMajor_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_FirmwareVerMajor_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_FirmwareVerMajor") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_FirmwareVerMajor") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_FirmwareVerMajor") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_FirmwareVerMajor") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_FirmwareVerMinor_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_FirmwareVerMinor_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_FirmwareVerMinor") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_FirmwareVerMinor") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_FirmwareVerMinor") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_FirmwareVerMinor") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_FirmwareVerBuild_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_FirmwareVerBuild_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_FirmwareVerBuild") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_FirmwareVerBuild") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_FirmwareVerBuild") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_FirmwareVerBuild") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_SensorType_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_SensorType_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_SensorType") field(ZRST, "Mono") @@ -2902,7 +2902,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_SensorType_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_SensorType") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_SensorType") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_SensorType") field(DOL, "0") @@ -2913,55 +2913,55 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_SensorType") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_SensorBits_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_SensorBits_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_SensorBits") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_SensorBits") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_SensorBits") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_SensorBits") field(DISA, "0") } -record(stringin, "S03SIM-EA-FSCN-02:CAM:GC_DeviceVendorName_RBV") { +record(stringin, "BL03S-EA-FSCN-02:CAM:GC_DeviceVendorName_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.CAM,0,1)GC_S_DeviceVendorName") field(SCAN, "I/O Intr") field(DISA, "0") } -record(stringin, "S03SIM-EA-FSCN-02:CAM:GC_DeviceModelName_RBV") { +record(stringin, "BL03S-EA-FSCN-02:CAM:GC_DeviceModelName_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.CAM,0,1)GC_S_DeviceModelName") field(SCAN, "I/O Intr") field(DISA, "0") } -record(stringin, "S03SIM-EA-FSCN-02:CAM:GC_DevFirVersion_RBV") { +record(stringin, "BL03S-EA-FSCN-02:CAM:GC_DevFirVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.CAM,0,1)GC_S_DeviceFirmwareVersion") field(SCAN, "I/O Intr") field(DISA, "0") } -record(stringin, "S03SIM-EA-FSCN-02:CAM:GC_DeviceID_RBV") { +record(stringin, "BL03S-EA-FSCN-02:CAM:GC_DeviceID_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.CAM,0,1)GC_S_DeviceID") field(SCAN, "I/O Intr") field(DISA, "0") } -record(stringin, "S03SIM-EA-FSCN-02:CAM:GC_DevicePartNumber_RBV") { +record(stringin, "BL03S-EA-FSCN-02:CAM:GC_DevicePartNumber_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.CAM,0,1)GC_S_DevicePartNumber") field(SCAN, "I/O Intr") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_DeviceScanType_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_DeviceScanType_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_DeviceScanType") field(ZRST, "Areascan") @@ -2970,7 +2970,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_DeviceScanType_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_DeviceScanType") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_DeviceScanType") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_DeviceScanType") field(DOL, "0") @@ -2979,20 +2979,20 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_DeviceScanType") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_StrBytesPerSecond_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_StrBytesPerSecond_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_StreamBytesPerSecond") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_StrBytesPerSecond") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_StrBytesPerSecond") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_StreamBytesPerSecond") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_BanControlMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_BanControlMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_BandwidthControlMode") field(ZRST, "StreamBytesPerSe") @@ -3005,7 +3005,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_BanControlMode_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_BanControlMode") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_BanControlMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_BandwidthControlMode") field(DOL, "0") @@ -3018,20 +3018,20 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_BanControlMode") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GevSCPSPacketSize_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_GevSCPSPacketSize_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_GevSCPSPacketSize") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GevSCPSPacketSize") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_GevSCPSPacketSize") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_GevSCPSPacketSize") field(DISA, "0") } -record(bi, "S03SIM-EA-FSCN-02:CAM:GC_ChunkModeActive_RBV") { +record(bi, "BL03S-EA-FSCN-02:CAM:GC_ChunkModeActive_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_B_ChunkModeActive") field(SCAN, "I/O Intr") @@ -3040,7 +3040,7 @@ record(bi, "S03SIM-EA-FSCN-02:CAM:GC_ChunkModeActive_RBV") { field(DISA, "0") } -record(bo, "S03SIM-EA-FSCN-02:CAM:GC_ChunkModeActive") { +record(bo, "BL03S-EA-FSCN-02:CAM:GC_ChunkModeActive") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_B_ChunkModeActive") field(ZNAM, "No") @@ -3048,33 +3048,33 @@ record(bo, "S03SIM-EA-FSCN-02:CAM:GC_ChunkModeActive") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_PayloadSize_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_PayloadSize_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_PayloadSize") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_PayloadSize") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_PayloadSize") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_PayloadSize") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_NonImaPayloadSize_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_NonImaPayloadSize_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_NonImagePayloadSize") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_NonImaPayloadSize") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_NonImaPayloadSize") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_NonImagePayloadSize") field(DISA, "0") } -record(bi, "S03SIM-EA-FSCN-02:CAM:GC_StrFraRatCon_RBV") { +record(bi, "BL03S-EA-FSCN-02:CAM:GC_StrFraRatCon_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_B_StreamFrameRateConstrain") field(SCAN, "I/O Intr") @@ -3083,7 +3083,7 @@ record(bi, "S03SIM-EA-FSCN-02:CAM:GC_StrFraRatCon_RBV") { field(DISA, "0") } -record(bo, "S03SIM-EA-FSCN-02:CAM:GC_StrFraRatCon") { +record(bo, "BL03S-EA-FSCN-02:CAM:GC_StrFraRatCon") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_B_StreamFrameRateConstrain") field(ZNAM, "No") @@ -3091,7 +3091,7 @@ record(bo, "S03SIM-EA-FSCN-02:CAM:GC_StrFraRatCon") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_StreamHoldEnable_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_StreamHoldEnable_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_StreamHoldEnable") field(ZRST, "Off") @@ -3102,7 +3102,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_StreamHoldEnable_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_StreamHoldEnable") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_StreamHoldEnable") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_StreamHoldEnable") field(DOL, "0") @@ -3113,76 +3113,76 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_StreamHoldEnable") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_StrHoldCapacity_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_StrHoldCapacity_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_StreamHoldCapacity") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_StrHoldCapacity") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_StrHoldCapacity") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_StreamHoldCapacity") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GevTimTicFre_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_GevTimTicFre_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_GevTimestampTickFrequency") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GevTimTicFre") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_GevTimTicFre") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_GevTimestampTickFrequency") field(DISA, "0") } -record(longout, "S03SIM-EA-FSCN-02:CAM:GC_GevTimConLatch") { +record(longout, "BL03S-EA-FSCN-02:CAM:GC_GevTimConLatch") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_C_GevTimestampControlLatch") field(DISA, "0") } -record(longout, "S03SIM-EA-FSCN-02:CAM:GC_GevTimConReset") { +record(longout, "BL03S-EA-FSCN-02:CAM:GC_GevTimConReset") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_C_GevTimestampControlReset") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GevTimestampValue_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_GevTimestampValue_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_GevTimestampValue") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GevTimestampValue") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_GevTimestampValue") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_GevTimestampValue") field(DISA, "0") } -record(longout, "S03SIM-EA-FSCN-02:CAM:GC_AcquisitionStart") { +record(longout, "BL03S-EA-FSCN-02:CAM:GC_AcquisitionStart") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_C_AcquisitionStart") field(DISA, "0") } -record(longout, "S03SIM-EA-FSCN-02:CAM:GC_AcquisitionStop") { +record(longout, "BL03S-EA-FSCN-02:CAM:GC_AcquisitionStop") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_C_AcquisitionStop") field(DISA, "0") } -record(longout, "S03SIM-EA-FSCN-02:CAM:GC_AcquisitionAbort") { +record(longout, "BL03S-EA-FSCN-02:CAM:GC_AcquisitionAbort") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_C_AcquisitionAbort") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_AcquisitionMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_AcquisitionMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_AcquisitionMode") field(ZRST, "Continuous") @@ -3197,7 +3197,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_AcquisitionMode_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_AcquisitionMode") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_AcquisitionMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_AcquisitionMode") field(DOL, "1") @@ -3212,20 +3212,20 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_AcquisitionMode") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_AcqFrameCount_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_AcqFrameCount_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_AcquisitionFrameCount") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_AcqFrameCount") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_AcqFrameCount") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_AcquisitionFrameCount") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_AcqFrameRateAbs_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_AcqFrameRateAbs_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_AcquisitionFrameRateAbs") field(PREC, "3") @@ -3233,14 +3233,14 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:GC_AcqFrameRateAbs_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_AcqFrameRateAbs") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_AcqFrameRateAbs") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_AcquisitionFrameRateAbs") field(PREC, "3") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_AcqFrameRateLimit_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_AcqFrameRateLimit_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_AcquisitionFrameRateLimit") field(PREC, "3") @@ -3248,27 +3248,27 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:GC_AcqFrameRateLimit_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_AcqFrameRateLimit") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_AcqFrameRateLimit") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_AcquisitionFrameRateLimit") field(PREC, "3") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_RecPreEventCount_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_RecPreEventCount_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_RecorderPreEventCount") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_RecPreEventCount") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_RecPreEventCount") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_RecorderPreEventCount") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_TriggerSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_TriggerSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_TriggerSelector") field(ZRST, "FrameStart") @@ -3283,7 +3283,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_TriggerSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_TriggerSelector") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_TriggerSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_TriggerSelector") field(DOL, "0") @@ -3298,7 +3298,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_TriggerSelector") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_TriggerMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_TriggerMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_TriggerMode") field(ZRST, "Off") @@ -3309,7 +3309,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_TriggerMode_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_TriggerMode") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_TriggerMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_TriggerMode") field(DOL, "0") @@ -3320,13 +3320,13 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_TriggerMode") { field(DISA, "0") } -record(longout, "S03SIM-EA-FSCN-02:CAM:GC_TriggerSoftware") { +record(longout, "BL03S-EA-FSCN-02:CAM:GC_TriggerSoftware") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_C_TriggerSoftware") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_TriggerSource_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_TriggerSource_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_TriggerSource") field(ZRST, "Freerun") @@ -3347,7 +3347,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_TriggerSource_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_TriggerSource") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_TriggerSource") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_TriggerSource") field(DOL, "0") @@ -3368,7 +3368,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_TriggerSource") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_TriggerActivation_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_TriggerActivation_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_TriggerActivation") field(ZRST, "RisingEdge") @@ -3385,7 +3385,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_TriggerActivation_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_TriggerActivation") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_TriggerActivation") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_TriggerActivation") field(DOL, "0") @@ -3402,7 +3402,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_TriggerActivation") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_TriggerOverlap_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_TriggerOverlap_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_TriggerOverlap") field(ZRST, "Off") @@ -3415,7 +3415,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_TriggerOverlap_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_TriggerOverlap") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_TriggerOverlap") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_TriggerOverlap") field(DOL, "0") @@ -3428,7 +3428,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_TriggerOverlap") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_TriggerDelayAbs_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_TriggerDelayAbs_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_TriggerDelayAbs") field(PREC, "3") @@ -3436,92 +3436,92 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:GC_TriggerDelayAbs_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_TriggerDelayAbs") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_TriggerDelayAbs") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_TriggerDelayAbs") field(PREC, "3") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_SensorWidth_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_SensorWidth_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_SensorWidth") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_SensorWidth") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_SensorWidth") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_SensorWidth") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_SensorHeight_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_SensorHeight_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_SensorHeight") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_SensorHeight") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_SensorHeight") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_SensorHeight") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_BinningHorizontal_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_BinningHorizontal_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_BinningHorizontal") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_BinningHorizontal") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_BinningHorizontal") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_BinningHorizontal") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_BinningVertical_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_BinningVertical_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_BinningVertical") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_BinningVertical") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_BinningVertical") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_BinningVertical") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_DecHorizontal_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_DecHorizontal_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_DecimationHorizontal") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_DecHorizontal") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_DecHorizontal") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_DecimationHorizontal") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_DecVertical_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_DecVertical_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_DecimationVertical") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_DecVertical") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_DecVertical") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_DecimationVertical") field(DISA, "0") } -record(bi, "S03SIM-EA-FSCN-02:CAM:GC_ReverseX_RBV") { +record(bi, "BL03S-EA-FSCN-02:CAM:GC_ReverseX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_B_ReverseX") field(SCAN, "I/O Intr") @@ -3530,7 +3530,7 @@ record(bi, "S03SIM-EA-FSCN-02:CAM:GC_ReverseX_RBV") { field(DISA, "0") } -record(bo, "S03SIM-EA-FSCN-02:CAM:GC_ReverseX") { +record(bo, "BL03S-EA-FSCN-02:CAM:GC_ReverseX") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_B_ReverseX") field(ZNAM, "No") @@ -3538,33 +3538,33 @@ record(bo, "S03SIM-EA-FSCN-02:CAM:GC_ReverseX") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_WidthMax_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_WidthMax_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_WidthMax") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_WidthMax") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_WidthMax") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_WidthMax") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_HeightMax_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_HeightMax_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_HeightMax") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_HeightMax") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_HeightMax") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_HeightMax") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_PixelFormat_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_PixelFormat_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_PixelFormat") field(ZRST, "Mono8") @@ -3603,7 +3603,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_PixelFormat_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_PixelFormat") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_PixelFormat") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_PixelFormat") field(DOL, "0x01080001") @@ -3642,72 +3642,72 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_PixelFormat") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_Width_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_Width_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_Width") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_Width") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_Width") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_Width") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_Height_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_Height_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_Height") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_Height") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_Height") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_Height") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_OffsetX_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_OffsetX_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_OffsetX") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_OffsetX") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_OffsetX") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_OffsetX") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_OffsetY_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_OffsetY_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_OffsetY") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_OffsetY") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_OffsetY") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_OffsetY") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ImageSize_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_ImageSize_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_ImageSize") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ImageSize") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_ImageSize") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_ImageSize") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_Gamma_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_Gamma_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_Gamma") field(PREC, "3") @@ -3715,14 +3715,14 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:GC_Gamma_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_Gamma") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_Gamma") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_Gamma") field(PREC, "3") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_NirMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_NirMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_NirMode") field(ZRST, "Off") @@ -3735,7 +3735,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_NirMode_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_NirMode") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_NirMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_NirMode") field(DOL, "0") @@ -3748,7 +3748,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_NirMode") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_Hue_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_Hue_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_Hue") field(PREC, "3") @@ -3756,14 +3756,14 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:GC_Hue_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_Hue") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_Hue") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_Hue") field(PREC, "3") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_Saturation_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_Saturation_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_Saturation") field(PREC, "3") @@ -3771,14 +3771,14 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:GC_Saturation_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_Saturation") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_Saturation") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_Saturation") field(PREC, "3") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_EdgeFilter_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_EdgeFilter_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_EdgeFilter") field(ZRST, "Smooth2") @@ -3795,7 +3795,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_EdgeFilter_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_EdgeFilter") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_EdgeFilter") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_EdgeFilter") field(DOL, "14") @@ -3812,59 +3812,59 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_EdgeFilter") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_DSPSubregionLeft_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_DSPSubregionLeft_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_DSPSubregionLeft") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_DSPSubregionLeft") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_DSPSubregionLeft") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_DSPSubregionLeft") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_DSPSubregionTop_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_DSPSubregionTop_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_DSPSubregionTop") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_DSPSubregionTop") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_DSPSubregionTop") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_DSPSubregionTop") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_DSPSubregionRight_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_DSPSubregionRight_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_DSPSubregionRight") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_DSPSubregionRight") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_DSPSubregionRight") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_DSPSubregionRight") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_DSPSubBottom_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_DSPSubBottom_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_DSPSubregionBottom") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_DSPSubBottom") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_DSPSubBottom") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_DSPSubregionBottom") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_ExposureMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_ExposureMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_ExposureMode") field(ZRST, "Timed") @@ -3873,7 +3873,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_ExposureMode_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_ExposureMode") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_ExposureMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_ExposureMode") field(DOL, "1") @@ -3882,7 +3882,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_ExposureMode") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ExposureTimeAbs_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_ExposureTimeAbs_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_ExposureTimeAbs") field(PREC, "3") @@ -3890,14 +3890,14 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ExposureTimeAbs_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ExposureTimeAbs") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_ExposureTimeAbs") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_ExposureTimeAbs") field(PREC, "3") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAuto_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_ExposureAuto_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_ExposureAuto") field(ZRST, "Off") @@ -3912,7 +3912,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAuto_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAuto") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_ExposureAuto") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_ExposureAuto") field(DOL, "1") @@ -3927,20 +3927,20 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAuto") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ExpAutoTarget_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_ExpAutoTarget_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoTarget") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ExpAutoTarget") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_ExpAutoTarget") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoTarget") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAutoAlg_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_ExposureAutoAlg_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_ExposureAutoAlg") field(ZRST, "Mean") @@ -3951,7 +3951,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAutoAlg_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAutoAlg") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_ExposureAutoAlg") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_ExposureAutoAlg") field(DOL, "0") @@ -3962,72 +3962,72 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAutoAlg") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAutoMin_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_ExposureAutoMin_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoMin") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAutoMin") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_ExposureAutoMin") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoMin") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAutoMax_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_ExposureAutoMax_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoMax") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAutoMax") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_ExposureAutoMax") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoMax") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAutoRate_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_ExposureAutoRate_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoRate") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ExposureAutoRate") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_ExposureAutoRate") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoRate") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ExpAutoOutliers_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_ExpAutoOutliers_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoOutliers") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ExpAutoOutliers") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_ExpAutoOutliers") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoOutliers") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ExpAutoAdjustTol_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_ExpAutoAdjustTol_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoAdjustTol") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ExpAutoAdjustTol") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_ExpAutoAdjustTol") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureAutoAdjustTol") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_GainSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_GainSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_GainSelector") field(ZRST, "All") @@ -4036,7 +4036,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_GainSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_GainSelector") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_GainSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_GainSelector") field(DOL, "0") @@ -4045,7 +4045,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_GainSelector") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_Gain_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_Gain_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_Gain") field(PREC, "3") @@ -4053,14 +4053,14 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:GC_Gain_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_Gain") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_Gain") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_Gain") field(PREC, "3") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_GainAuto_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_GainAuto_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_GainAuto") field(ZRST, "Off") @@ -4073,7 +4073,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_GainAuto_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_GainAuto") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_GainAuto") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_GainAuto") field(DOL, "1") @@ -4086,20 +4086,20 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_GainAuto") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoTarget_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_GainAutoTarget_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_GainAutoTarget") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoTarget") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_GainAutoTarget") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_GainAutoTarget") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoMin_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_GainAutoMin_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_GainAutoMin") field(PREC, "3") @@ -4107,14 +4107,14 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoMin_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoMin") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_GainAutoMin") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_GainAutoMin") field(PREC, "3") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoMax_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_GainAutoMax_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_GainAutoMax") field(PREC, "3") @@ -4122,53 +4122,53 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoMax_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoMax") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_GainAutoMax") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_GainAutoMax") field(PREC, "3") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoRate_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_GainAutoRate_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_GainAutoRate") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoRate") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_GainAutoRate") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_GainAutoRate") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoOutliers_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_GainAutoOutliers_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_GainAutoOutliers") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoOutliers") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_GainAutoOutliers") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_GainAutoOutliers") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoAdjustTol_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_GainAutoAdjustTol_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_GainAutoAdjustTol") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoAdjustTol") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_GainAutoAdjustTol") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_GainAutoAdjustTol") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_BlaLevelSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_BlaLevelSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_BlackLevelSelector") field(ZRST, "All") @@ -4177,7 +4177,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_BlaLevelSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_BlaLevelSelector") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_BlaLevelSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_BlackLevelSelector") field(DOL, "0") @@ -4186,7 +4186,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_BlaLevelSelector") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_BlackLevel_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_BlackLevel_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_BlackLevel") field(PREC, "3") @@ -4194,14 +4194,14 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:GC_BlackLevel_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_BlackLevel") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_BlackLevel") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_BlackLevel") field(PREC, "3") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_BalRatioSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_BalRatioSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_BalanceRatioSelector") field(ZRST, "Red") @@ -4212,7 +4212,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_BalRatioSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_BalRatioSelector") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_BalRatioSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_BalanceRatioSelector") field(DOL, "0") @@ -4223,7 +4223,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_BalRatioSelector") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_BalanceRatioAbs_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_BalanceRatioAbs_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_BalanceRatioAbs") field(PREC, "3") @@ -4231,14 +4231,14 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:GC_BalanceRatioAbs_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_BalanceRatioAbs") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_BalanceRatioAbs") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_BalanceRatioAbs") field(PREC, "3") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_BalanceWhiteAuto_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_BalanceWhiteAuto_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_BalanceWhiteAuto") field(ZRST, "Off") @@ -4251,7 +4251,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_BalanceWhiteAuto_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_BalanceWhiteAuto") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_BalanceWhiteAuto") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_BalanceWhiteAuto") field(DOL, "1") @@ -4264,33 +4264,33 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_BalanceWhiteAuto") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_BalWhiteAutoRate_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_BalWhiteAutoRate_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_BalanceWhiteAutoRate") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_BalWhiteAutoRate") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_BalWhiteAutoRate") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_BalanceWhiteAutoRate") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_BalWhiAutAdjTol_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_BalWhiAutAdjTol_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_BalanceWhiteAutoAdjustTol") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_BalWhiAutAdjTol") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_BalWhiAutAdjTol") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_BalanceWhiteAutoAdjustTol") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_IrisMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_IrisMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_IrisMode") field(ZRST, "Disabled") @@ -4305,7 +4305,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_IrisMode_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_IrisMode") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_IrisMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_IrisMode") field(DOL, "0") @@ -4320,59 +4320,59 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_IrisMode") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_IrisAutoTarget_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_IrisAutoTarget_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_IrisAutoTarget") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_IrisAutoTarget") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_IrisAutoTarget") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_IrisAutoTarget") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_IrisVideoLevel_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_IrisVideoLevel_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_IrisVideoLevel") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_IrisVideoLevel") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_IrisVideoLevel") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_IrisVideoLevel") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_IrisVideoLevelMin_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_IrisVideoLevelMin_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_IrisVideoLevelMin") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_IrisVideoLevelMin") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_IrisVideoLevelMin") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_IrisVideoLevelMin") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_IrisVideoLevelMax_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_IrisVideoLevelMax_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_IrisVideoLevelMax") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_IrisVideoLevelMax") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_IrisVideoLevelMax") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_IrisVideoLevelMax") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_DefMasColEnable_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_DefMasColEnable_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_DefectMaskColumnEnable") field(ZRST, "Disabled") @@ -4383,7 +4383,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_DefMasColEnable_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_DefMasColEnable") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_DefMasColEnable") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_DefectMaskColumnEnable") field(DOL, "0") @@ -4394,7 +4394,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_DefMasColEnable") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_DefMasPixelEnable_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_DefMasPixelEnable_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_DefectMaskPixelEnable") field(ZRST, "Disabled") @@ -4405,7 +4405,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_DefMasPixelEnable_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_DefMasPixelEnable") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_DefMasPixelEnable") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_DefectMaskPixelEnable") field(DOL, "0") @@ -4416,20 +4416,20 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_DefMasPixelEnable") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_VsubValue_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_VsubValue_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_VsubValue") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_VsubValue") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_VsubValue") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_VsubValue") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_ColTraSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_ColTraSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_ColorTransformationSelector") field(ZRST, "RGBtoRGB") @@ -4438,7 +4438,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_ColTraSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_ColTraSelector") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_ColTraSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_ColorTransformationSelector") field(DOL, "0") @@ -4447,7 +4447,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_ColTraSelector") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_ColTraMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_ColTraMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_ColorTransformationMode") field(ZRST, "Off") @@ -4460,7 +4460,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_ColTraMode_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_ColTraMode") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_ColTraMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_ColorTransformationMode") field(DOL, "0") @@ -4473,7 +4473,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_ColTraMode") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_ColTraValSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_ColTraValSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_ColorTransformationValueSelector") field(ZRST, "Gain00") @@ -4498,7 +4498,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_ColTraValSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_ColTraValSelector") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_ColTraValSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_ColorTransformationValueSelector") field(DOL, "0") @@ -4523,7 +4523,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_ColTraValSelector") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ColTraValue_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_ColTraValue_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_D_ColorTransformationValue") field(PREC, "3") @@ -4531,14 +4531,14 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ColTraValue_RBV") { field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ColTraValue") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_ColTraValue") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_D_ColorTransformationValue") field(PREC, "3") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_LUTSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_LUTSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_LUTSelector") field(ZRST, "LUT1") @@ -4551,7 +4551,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_LUTSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_LUTSelector") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_LUTSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_LUTSelector") field(DOL, "0") @@ -4564,7 +4564,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_LUTSelector") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_LUTMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_LUTMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_LUTMode") field(ZRST, "Luminance") @@ -4579,7 +4579,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_LUTMode_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_LUTMode") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_LUTMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_LUTMode") field(DOL, "0") @@ -4594,7 +4594,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_LUTMode") { field(DISA, "0") } -record(bi, "S03SIM-EA-FSCN-02:CAM:GC_LUTEnable_RBV") { +record(bi, "BL03S-EA-FSCN-02:CAM:GC_LUTEnable_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_B_LUTEnable") field(SCAN, "I/O Intr") @@ -4603,7 +4603,7 @@ record(bi, "S03SIM-EA-FSCN-02:CAM:GC_LUTEnable_RBV") { field(DISA, "0") } -record(bo, "S03SIM-EA-FSCN-02:CAM:GC_LUTEnable") { +record(bo, "BL03S-EA-FSCN-02:CAM:GC_LUTEnable") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_B_LUTEnable") field(ZNAM, "No") @@ -4611,110 +4611,110 @@ record(bo, "S03SIM-EA-FSCN-02:CAM:GC_LUTEnable") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_LUTIndex_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_LUTIndex_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_LUTIndex") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_LUTIndex") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_LUTIndex") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_LUTIndex") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_LUTValue_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_LUTValue_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_LUTValue") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_LUTValue") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_LUTValue") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_LUTValue") field(DISA, "0") } -record(longout, "S03SIM-EA-FSCN-02:CAM:GC_LUTLoad") { +record(longout, "BL03S-EA-FSCN-02:CAM:GC_LUTLoad") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_C_LUTLoad") field(DISA, "0") } -record(longout, "S03SIM-EA-FSCN-02:CAM:GC_LUTSave") { +record(longout, "BL03S-EA-FSCN-02:CAM:GC_LUTSave") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_C_LUTSave") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_LUTBitDepthIn_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_LUTBitDepthIn_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_LUTBitDepthIn") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_LUTBitDepthIn") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_LUTBitDepthIn") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_LUTBitDepthIn") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_LUTBitDepthOut_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_LUTBitDepthOut_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_LUTBitDepthOut") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_LUTBitDepthOut") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_LUTBitDepthOut") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_LUTBitDepthOut") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_LUTAddress_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_LUTAddress_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_LUTAddress") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_LUTAddress") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_LUTAddress") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_LUTAddress") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_LUTSizeBytes_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_LUTSizeBytes_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_LUTSizeBytes") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_LUTSizeBytes") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_LUTSizeBytes") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_LUTSizeBytes") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_SyncInLevels_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_SyncInLevels_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_SyncInLevels") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_SyncInLevels") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_SyncInLevels") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_SyncInLevels") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_SyncInSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_SyncInSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_SyncInSelector") field(ZRST, "SyncIn1") @@ -4729,7 +4729,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_SyncInSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_SyncInSelector") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_SyncInSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_SyncInSelector") field(DOL, "0") @@ -4744,33 +4744,33 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_SyncInSelector") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_SynInGlitchFilter_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_SynInGlitchFilter_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_SyncInGlitchFilter") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_SynInGlitchFilter") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_SynInGlitchFilter") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_SyncInGlitchFilter") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutLevels_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_SyncOutLevels_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_SyncOutLevels") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutLevels") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_SyncOutLevels") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_SyncOutLevels") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_SyncOutSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_SyncOutSelector") field(ZRST, "SyncOut1") @@ -4785,7 +4785,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutSelector") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_SyncOutSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_SyncOutSelector") field(DOL, "0") @@ -4800,7 +4800,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutSelector") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutSource_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_SyncOutSource_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_SyncOutSource") field(ZRST, "GPO") @@ -4829,7 +4829,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutSource_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutSource") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_SyncOutSource") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_SyncOutSource") field(DOL, "0") @@ -4858,7 +4858,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutSource") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutPolarity_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_SyncOutPolarity_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_SyncOutPolarity") field(ZRST, "Normal") @@ -4869,7 +4869,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutPolarity_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutPolarity") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_SyncOutPolarity") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_SyncOutPolarity") field(DOL, "0") @@ -4880,7 +4880,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_SyncOutPolarity") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_StrobeSource_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_StrobeSource_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_StrobeSource") field(ZRST, "AcquisitionTrigg") @@ -4903,7 +4903,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_StrobeSource_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_StrobeSource") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_StrobeSource") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_StrobeSource") field(DOL, "1") @@ -4926,7 +4926,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_StrobeSource") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_StrDurationMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_StrDurationMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_StrobeDurationMode") field(ZRST, "Source") @@ -4937,7 +4937,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_StrDurationMode_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_StrDurationMode") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_StrDurationMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_StrobeDurationMode") field(DOL, "0") @@ -4948,33 +4948,33 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_StrDurationMode") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_StrobeDelay_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_StrobeDelay_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_StrobeDelay") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_StrobeDelay") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_StrobeDelay") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_StrobeDelay") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_StrobeDuration_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_StrobeDuration_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_StrobeDuration") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_StrobeDuration") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_StrobeDuration") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_StrobeDuration") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_EventSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_EventSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_EventSelector") field(ZRST, "AcquisitionStart") @@ -5007,7 +5007,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_EventSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_EventSelector") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_EventSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_EventSelector") field(DOL, "40000") @@ -5040,7 +5040,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_EventSelector") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_EventNotification_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_EventNotification_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_EventNotification") field(ZRST, "Off") @@ -5051,7 +5051,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_EventNotification_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_EventNotification") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_EventNotification") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_EventNotification") field(DOL, "0") @@ -5062,215 +5062,215 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_EventNotification") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EventsEnable1_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_EventsEnable1_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventsEnable1") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EventsEnable1") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_EventsEnable1") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventsEnable1") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveAcqStart_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_EveAcqStart_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventAcquisitionStart") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveAcqStart") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_EveAcqStart") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventAcquisitionStart") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveAcquisitionEnd_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_EveAcquisitionEnd_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventAcquisitionEnd") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveAcquisitionEnd") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_EveAcquisitionEnd") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventAcquisitionEnd") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EventFrameTrigger_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_EventFrameTrigger_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventFrameTrigger") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EventFrameTrigger") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_EventFrameTrigger") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventFrameTrigger") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EventExposureEnd_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_EventExposureEnd_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventExposureEnd") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EventExposureEnd") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_EventExposureEnd") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventExposureEnd") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveAcqRecTrigger_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_EveAcqRecTrigger_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventAcquisitionRecordTrigger") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveAcqRecTrigger") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_EveAcqRecTrigger") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventAcquisitionRecordTrigger") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveLinRisingEdge_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_EveLinRisingEdge_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine1RisingEdge") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveLinRisingEdge") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_EveLinRisingEdge") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine1RisingEdge") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveLinFallingEdge_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_EveLinFallingEdge_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine1FallingEdge") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveLinFallingEdge") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_EveLinFallingEdge") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine1FallingEdge") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveLinRisingEdg0_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_EveLinRisingEdg0_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine2RisingEdge") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveLinRisingEdg0") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_EveLinRisingEdg0") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine2RisingEdge") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveLinFallingEdg0_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_EveLinFallingEdg0_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine2FallingEdge") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveLinFallingEdg0") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_EveLinFallingEdg0") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine2FallingEdge") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveLinRisingEdg1_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_EveLinRisingEdg1_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine3RisingEdge") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveLinRisingEdg1") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_EveLinRisingEdg1") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine3RisingEdge") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveLinFallingEdg1_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_EveLinFallingEdg1_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine3FallingEdge") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveLinFallingEdg1") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_EveLinFallingEdg1") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine3FallingEdge") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveLinRisingEdg2_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_EveLinRisingEdg2_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine4RisingEdge") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveLinRisingEdg2") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_EveLinRisingEdg2") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine4RisingEdge") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EveLinFallingEdg2_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_EveLinFallingEdg2_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine4FallingEdge") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EveLinFallingEdg2") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_EveLinFallingEdg2") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventLine4FallingEdge") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EventOverflow_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_EventOverflow_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventOverflow") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EventOverflow") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_EventOverflow") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventOverflow") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_EventError_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_EventError_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_EventError") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_EventError") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_EventError") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_EventError") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_UserSetSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_UserSetSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_UserSetSelector") field(ZRST, "Default") @@ -5289,7 +5289,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_UserSetSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_UserSetSelector") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_UserSetSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_UserSetSelector") field(DOL, "0") @@ -5308,19 +5308,19 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_UserSetSelector") { field(DISA, "0") } -record(longout, "S03SIM-EA-FSCN-02:CAM:GC_UserSetLoad") { +record(longout, "BL03S-EA-FSCN-02:CAM:GC_UserSetLoad") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_C_UserSetLoad") field(DISA, "0") } -record(longout, "S03SIM-EA-FSCN-02:CAM:GC_UserSetSave") { +record(longout, "BL03S-EA-FSCN-02:CAM:GC_UserSetSave") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_C_UserSetSave") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_UseSetDefSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_UseSetDefSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_UserSetDefaultSelector") field(ZRST, "Default") @@ -5339,7 +5339,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_UseSetDefSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_UseSetDefSelector") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_UseSetDefSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_UserSetDefaultSelector") field(DOL, "0") @@ -5358,33 +5358,33 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_UseSetDefSelector") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_LensVoltage_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_LensVoltage_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_LensVoltage") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_LensVoltage") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_LensVoltage") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_LensVoltage") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_LenVoltageControl_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_LenVoltageControl_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_LensVoltageControl") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_LenVoltageControl") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_LenVoltageControl") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_LensVoltageControl") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_LensDriveCommand_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_LensDriveCommand_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_LensDriveCommand") field(ZRST, "Stop") @@ -5405,7 +5405,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_LensDriveCommand_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_LensDriveCommand") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_LensDriveCommand") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_LensDriveCommand") field(DOL, "0") @@ -5426,20 +5426,20 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_LensDriveCommand") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_LensDriveDuration_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_LensDriveDuration_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_LensDriveDuration") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_LensDriveDuration") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_LensDriveDuration") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_LensDriveDuration") field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_PvDumTriSelector_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_PvDumTriSelector_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_PvDummyTriggerSelector") field(ZRST, "FrameStart") @@ -5454,7 +5454,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_PvDumTriSelector_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_PvDumTriSelector") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_PvDumTriSelector") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_PvDummyTriggerSelector") field(DOL, "0") @@ -5469,7 +5469,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_PvDumTriSelector") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_PvDumFraStaTriMod_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_PvDumFraStaTriMod_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_PvDummyFrameStartTriggerMode") field(ZRST, "Freerun") @@ -5490,7 +5490,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_PvDumFraStaTriMod_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_PvDumFraStaTriMod") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_PvDumFraStaTriMod") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_PvDummyFrameStartTriggerMode") field(DOL, "2147483648") @@ -5511,7 +5511,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_PvDumFraStaTriMod") { field(DISA, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_PvDumTriggerMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_PvDumTriggerMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)GC_E_PvDummyTriggerMode") field(ZRST, "Disabled") @@ -5532,7 +5532,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_PvDumTriggerMode_RBV") { field(DISA, "0") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_PvDumTriggerMode") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_PvDumTriggerMode") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_E_PvDummyTriggerMode") field(DOL, "0") @@ -5553,138 +5553,138 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_PvDumTriggerMode") { field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_FraStaTriDelay_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_FraStaTriDelay_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_FrameStartTriggerDelay") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_FraStaTriDelay") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_FraStaTriDelay") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_FrameStartTriggerDelay") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ExposureValue_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_ExposureValue_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureValue") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ExposureValue") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_ExposureValue") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_ExposureValue") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_TimeStampValueLo_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_TimeStampValueLo_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_TimeStampValueLo") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_TimeStampValueLo") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_TimeStampValueLo") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_TimeStampValueLo") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_TimeStampValueHi_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_TimeStampValueHi_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_TimeStampValueHi") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_TimeStampValueHi") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_TimeStampValueHi") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_TimeStampValueHi") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_WhitebalValueRed_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_WhitebalValueRed_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_WhitebalValueRed") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_WhitebalValueRed") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_WhitebalValueRed") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_WhitebalValueRed") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_WhitebalValueBlue_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_WhitebalValueBlue_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_WhitebalValueBlue") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_WhitebalValueBlue") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_WhitebalValueBlue") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_WhitebalValueBlue") field(DISA, "0") } -record(stringin, "S03SIM-EA-FSCN-02:CAM:GC_ModelName_RBV") { +record(stringin, "BL03S-EA-FSCN-02:CAM:GC_ModelName_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.CAM,0,1)GC_S_ModelName") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GainValue_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_GainValue_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_GainValue") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GainValue") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_GainValue") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_GainValue") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_PvGainAutoMin_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_PvGainAutoMin_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_PvGainAutoMin") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_PvGainAutoMin") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_PvGainAutoMin") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_PvGainAutoMin") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_PvGainAutoMax_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_PvGainAutoMax_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_PvGainAutoMax") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_PvGainAutoMax") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_PvGainAutoMax") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_PvGainAutoMax") field(DISA, "0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_OffsetValue_RBV") { +record(ai, "BL03S-EA-FSCN-02:CAM:GC_OffsetValue_RBV") { field(DTYP, "asynInt64") field(INP, "@asyn(FSCN2.CAM,0,1)GC_I_OffsetValue") field(SCAN, "I/O Intr") field(DISA, "0") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_OffsetValue") { +record(ao, "BL03S-EA-FSCN-02:CAM:GC_OffsetValue") { field(DTYP, "asynInt64") field(OUT, "@asyn(FSCN2.CAM,0,1)GC_I_OffsetValue") field(DISA, "0") @@ -5699,9 +5699,9 @@ record(ao, "S03SIM-EA-FSCN-02:CAM:GC_OffsetValue") { #% macro, ADDR, Asyn Port address, default 0 # This associates a BOY screen with the template -# % gui, FSCN1.CAM, boydetail, aravisApp_opi/aravis_detail.opi, P=S03SIM-EA-FSCN-01, R=:CAM:, DESC=Camera -# % gui, FSCN1.CAM, boyembed, aravisApp_opi/aravis_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:CAM:, DESC=Camera -# % gui, FSCN1.CAM, boyembed, aravisApp_opi/aravis_embed.opi, P=S03SIM-EA-FSCN-01, R=:CAM:, DESC=Camera +# % gui, FSCN1.CAM, boydetail, aravisApp_opi/aravis_detail.opi, P=BL03S-EA-FSCN-01, R=:CAM:, DESC=Camera +# % gui, FSCN1.CAM, boyembed, aravisApp_opi/aravis_embed_box.opi, P=BL03S-EA-FSCN-01, R=:CAM:, DESC=Camera +# % gui, FSCN1.CAM, boyembed, aravisApp_opi/aravis_embed.opi, P=BL03S-EA-FSCN-01, R=:CAM:, DESC=Camera ## ADGenICam.template ## Template database file to control some features of ADGenICam. @@ -5736,7 +5736,7 @@ record(ao, "S03SIM-EA-FSCN-02:CAM:GC_OffsetValue") { # This record contains the version of ADCore # ################################################################### -record(stringin, "S03SIM-EA-FSCN-01:CAM:ADCoreVersion_RBV") +record(stringin, "BL03S-EA-FSCN-01:CAM:ADCoreVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.CAM,0,1)ADCORE_VERSION") @@ -5748,7 +5748,7 @@ record(stringin, "S03SIM-EA-FSCN-01:CAM:ADCoreVersion_RBV") # This record contains the version of the driver or plugin # ################################################################### -record(stringin, "S03SIM-EA-FSCN-01:CAM:DriverVersion_RBV") +record(stringin, "BL03S-EA-FSCN-01:CAM:DriverVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.CAM,0,1)DRIVER_VERSION") @@ -5760,7 +5760,7 @@ record(stringin, "S03SIM-EA-FSCN-01:CAM:DriverVersion_RBV") # This record contains the asyn port name of this detector # ################################################################### -record(stringin, "S03SIM-EA-FSCN-01:CAM:PortName_RBV") +record(stringin, "BL03S-EA-FSCN-01:CAM:PortName_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.CAM,0,1)PORT_NAME_SELF") @@ -5772,7 +5772,7 @@ record(stringin, "S03SIM-EA-FSCN-01:CAM:PortName_RBV") # These records contain basic information about the detector # ################################################################### -record(stringin, "S03SIM-EA-FSCN-01:CAM:Manufacturer_RBV") +record(stringin, "BL03S-EA-FSCN-01:CAM:Manufacturer_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.CAM,0,1)MANUFACTURER") @@ -5780,7 +5780,7 @@ record(stringin, "S03SIM-EA-FSCN-01:CAM:Manufacturer_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-EA-FSCN-01:CAM:Model_RBV") +record(stringin, "BL03S-EA-FSCN-01:CAM:Model_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.CAM,0,1)MODEL") @@ -5788,7 +5788,7 @@ record(stringin, "S03SIM-EA-FSCN-01:CAM:Model_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-EA-FSCN-01:CAM:SerialNumber_RBV") +record(stringin, "BL03S-EA-FSCN-01:CAM:SerialNumber_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.CAM,0,1)SERIAL_NUMBER") @@ -5796,7 +5796,7 @@ record(stringin, "S03SIM-EA-FSCN-01:CAM:SerialNumber_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-EA-FSCN-01:CAM:SDKVersion_RBV") +record(stringin, "BL03S-EA-FSCN-01:CAM:SDKVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.CAM,0,1)SDK_VERSION") @@ -5804,7 +5804,7 @@ record(stringin, "S03SIM-EA-FSCN-01:CAM:SDKVersion_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-EA-FSCN-01:CAM:FirmwareVersion_RBV") +record(stringin, "BL03S-EA-FSCN-01:CAM:FirmwareVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.CAM,0,1)FIRMWARE_VERSION") @@ -5816,17 +5816,17 @@ record(stringin, "S03SIM-EA-FSCN-01:CAM:FirmwareVersion_RBV") # These records control acquisition start and stop # ################################################################### -record(bo, "S03SIM-EA-FSCN-01:CAM:Acquire") { +record(bo, "BL03S-EA-FSCN-01:CAM:Acquire") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)ACQUIRE") field(ZNAM, "Done") field(ONAM, "Acquire") field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:SetAcquireBusy") + field(FLNK, "BL03S-EA-FSCN-01:CAM:SetAcquireBusy") info(asyn:READBACK, "1") } -record(bi, "S03SIM-EA-FSCN-01:CAM:Acquire_RBV") { +record(bi, "BL03S-EA-FSCN-01:CAM:Acquire_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)ACQUIRE") field(ZNAM, "Done") @@ -5836,15 +5836,15 @@ record(bi, "S03SIM-EA-FSCN-01:CAM:Acquire_RBV") { field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-EA-FSCN-01:CAM:SetAcquireBusy") +record(calcout, "BL03S-EA-FSCN-01:CAM:SetAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:CAM:Acquire NPP") + field(INPA, "BL03S-EA-FSCN-01:CAM:Acquire NPP") field(CALC, "A") field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:CAM:AcquireBusy PP") + field(OUT, "BL03S-EA-FSCN-01:CAM:AcquireBusy PP") } -record(bi, "S03SIM-EA-FSCN-01:CAM:AcquireBusy") { +record(bi, "BL03S-EA-FSCN-01:CAM:AcquireBusy") { field(ZNAM, "Done") field(ZSV, "NO_ALARM") field(ONAM, "Acquiring") @@ -5852,7 +5852,7 @@ record(bi, "S03SIM-EA-FSCN-01:CAM:AcquireBusy") { field(VAL, "0") } -record(bi, "S03SIM-EA-FSCN-01:CAM:AcquireBusyCB") { +record(bi, "BL03S-EA-FSCN-01:CAM:AcquireBusyCB") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)ACQUIRE_BUSY") field(ZNAM, "Done") @@ -5862,14 +5862,14 @@ record(bi, "S03SIM-EA-FSCN-01:CAM:AcquireBusyCB") { field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-EA-FSCN-01:CAM:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:CAM:AcquireBusyCB CP") +record(calcout, "BL03S-EA-FSCN-01:CAM:ClearAcquireBusy") { + field(INPA, "BL03S-EA-FSCN-01:CAM:AcquireBusyCB CP") field(CALC, "A") field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:CAM:AcquireBusy PP") + field(OUT, "BL03S-EA-FSCN-01:CAM:AcquireBusy PP") } -record(bo, "S03SIM-EA-FSCN-01:CAM:WaitForPlugins") { +record(bo, "BL03S-EA-FSCN-01:CAM:WaitForPlugins") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)WAIT_FOR_PLUGINS") @@ -5882,13 +5882,13 @@ record(bo, "S03SIM-EA-FSCN-01:CAM:WaitForPlugins") { # These records are the array size and data type # ################################################################### # The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:CAM:NDimensions") +record(longout, "BL03S-EA-FSCN-01:CAM:NDimensions") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)ARRAY_NDIMENSIONS") } -record(longin, "S03SIM-EA-FSCN-01:CAM:NDimensions_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:NDimensions_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)ARRAY_NDIMENSIONS") @@ -5896,346 +5896,346 @@ record(longin, "S03SIM-EA-FSCN-01:CAM:NDimensions_RBV") } # The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:CAM:Dimensions") +record(waveform, "BL03S-EA-FSCN-01:CAM:Dimensions") { field(DTYP, "asynInt32ArrayOut") field(INP, "@asyn(FSCN1.CAM,0,1)ARRAY_DIMENSIONS") field(FTVL, "LONG") field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim0SA") + field(FLNK, "BL03S-EA-FSCN-01:CAM:Dim0SA") } -record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim0SA") +record(subArray, "BL03S-EA-FSCN-01:CAM:Dim0SA") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-01:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize0") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ArraySize0") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize0") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySize0") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim1SA") + field(INP, "BL03S-EA-FSCN-01:CAM:Dim0SA") + field(FLNK, "BL03S-EA-FSCN-01:CAM:Dim1SA") } -record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim1SA") +record(subArray, "BL03S-EA-FSCN-01:CAM:Dim1SA") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-01:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize1") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ArraySize1") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize1") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySize1") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim2SA") + field(INP, "BL03S-EA-FSCN-01:CAM:Dim1SA") + field(FLNK, "BL03S-EA-FSCN-01:CAM:Dim2SA") } -record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim2SA") +record(subArray, "BL03S-EA-FSCN-01:CAM:Dim2SA") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-01:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize2") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ArraySize2") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize2") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySize2") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim3SA") + field(INP, "BL03S-EA-FSCN-01:CAM:Dim2SA") + field(FLNK, "BL03S-EA-FSCN-01:CAM:Dim3SA") } -record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim3SA") +record(subArray, "BL03S-EA-FSCN-01:CAM:Dim3SA") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-01:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize3") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ArraySize3") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize3") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySize3") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim4SA") + field(INP, "BL03S-EA-FSCN-01:CAM:Dim3SA") + field(FLNK, "BL03S-EA-FSCN-01:CAM:Dim4SA") } -record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim4SA") +record(subArray, "BL03S-EA-FSCN-01:CAM:Dim4SA") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-01:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize4") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ArraySize4") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize4") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySize4") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim5SA") + field(INP, "BL03S-EA-FSCN-01:CAM:Dim4SA") + field(FLNK, "BL03S-EA-FSCN-01:CAM:Dim5SA") } -record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim5SA") +record(subArray, "BL03S-EA-FSCN-01:CAM:Dim5SA") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-01:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize5") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ArraySize5") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize5") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySize5") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim6SA") + field(INP, "BL03S-EA-FSCN-01:CAM:Dim5SA") + field(FLNK, "BL03S-EA-FSCN-01:CAM:Dim6SA") } -record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim6SA") +record(subArray, "BL03S-EA-FSCN-01:CAM:Dim6SA") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-01:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize6") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ArraySize6") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize6") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySize6") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim7SA") + field(INP, "BL03S-EA-FSCN-01:CAM:Dim6SA") + field(FLNK, "BL03S-EA-FSCN-01:CAM:Dim7SA") } -record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim7SA") +record(subArray, "BL03S-EA-FSCN-01:CAM:Dim7SA") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-01:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize7") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ArraySize7") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize7") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySize7") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim8SA") + field(INP, "BL03S-EA-FSCN-01:CAM:Dim7SA") + field(FLNK, "BL03S-EA-FSCN-01:CAM:Dim8SA") } -record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim8SA") +record(subArray, "BL03S-EA-FSCN-01:CAM:Dim8SA") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-01:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize8") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ArraySize8") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize8") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySize8") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim9SA") + field(INP, "BL03S-EA-FSCN-01:CAM:Dim8SA") + field(FLNK, "BL03S-EA-FSCN-01:CAM:Dim9SA") } -record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim9SA") +record(subArray, "BL03S-EA-FSCN-01:CAM:Dim9SA") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-01:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize9") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ArraySize9") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize9") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySize9") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dim9SA") + field(INP, "BL03S-EA-FSCN-01:CAM:Dim9SA") } -record(waveform, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV") +record(waveform, "BL03S-EA-FSCN-01:CAM:Dimensions_RBV") { field(DTYP, "asynInt32ArrayIn") field(INP, "@asyn(FSCN1.CAM,0,1)ARRAY_DIMENSIONS") field(FTVL, "LONG") field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim0SA_RBV") + field(FLNK, "BL03S-EA-FSCN-01:CAM:Dim0SA_RBV") field(SCAN, "I/O Intr") } -record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim0SA_RBV") +record(subArray, "BL03S-EA-FSCN-01:CAM:Dim0SA_RBV") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize0_RBV") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ArraySize0_RBV") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize0_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySize0_RBV") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim1SA_RBV") + field(INP, "BL03S-EA-FSCN-01:CAM:Dim0SA_RBV") + field(FLNK, "BL03S-EA-FSCN-01:CAM:Dim1SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim1SA_RBV") +record(subArray, "BL03S-EA-FSCN-01:CAM:Dim1SA_RBV") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize1_RBV") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ArraySize1_RBV") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize1_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySize1_RBV") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim2SA_RBV") + field(INP, "BL03S-EA-FSCN-01:CAM:Dim1SA_RBV") + field(FLNK, "BL03S-EA-FSCN-01:CAM:Dim2SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim2SA_RBV") +record(subArray, "BL03S-EA-FSCN-01:CAM:Dim2SA_RBV") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize2_RBV") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ArraySize2_RBV") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize2_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySize2_RBV") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim3SA_RBV") + field(INP, "BL03S-EA-FSCN-01:CAM:Dim2SA_RBV") + field(FLNK, "BL03S-EA-FSCN-01:CAM:Dim3SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim3SA_RBV") +record(subArray, "BL03S-EA-FSCN-01:CAM:Dim3SA_RBV") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize3_RBV") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ArraySize3_RBV") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize3_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySize3_RBV") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim4SA_RBV") + field(INP, "BL03S-EA-FSCN-01:CAM:Dim3SA_RBV") + field(FLNK, "BL03S-EA-FSCN-01:CAM:Dim4SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim4SA_RBV") +record(subArray, "BL03S-EA-FSCN-01:CAM:Dim4SA_RBV") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize4_RBV") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ArraySize4_RBV") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize4_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySize4_RBV") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim5SA_RBV") + field(INP, "BL03S-EA-FSCN-01:CAM:Dim4SA_RBV") + field(FLNK, "BL03S-EA-FSCN-01:CAM:Dim5SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim5SA_RBV") +record(subArray, "BL03S-EA-FSCN-01:CAM:Dim5SA_RBV") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize5_RBV") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ArraySize5_RBV") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize5_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySize5_RBV") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim6SA_RBV") + field(INP, "BL03S-EA-FSCN-01:CAM:Dim5SA_RBV") + field(FLNK, "BL03S-EA-FSCN-01:CAM:Dim6SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim6SA_RBV") +record(subArray, "BL03S-EA-FSCN-01:CAM:Dim6SA_RBV") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize6_RBV") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ArraySize6_RBV") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize6_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySize6_RBV") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim7SA_RBV") + field(INP, "BL03S-EA-FSCN-01:CAM:Dim6SA_RBV") + field(FLNK, "BL03S-EA-FSCN-01:CAM:Dim7SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim7SA_RBV") +record(subArray, "BL03S-EA-FSCN-01:CAM:Dim7SA_RBV") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize7_RBV") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ArraySize7_RBV") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize7_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySize7_RBV") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim8SA_RBV") + field(INP, "BL03S-EA-FSCN-01:CAM:Dim7SA_RBV") + field(FLNK, "BL03S-EA-FSCN-01:CAM:Dim8SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim8SA_RBV") +record(subArray, "BL03S-EA-FSCN-01:CAM:Dim8SA_RBV") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize8_RBV") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ArraySize8_RBV") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize8_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySize8_RBV") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:Dim9SA_RBV") + field(INP, "BL03S-EA-FSCN-01:CAM:Dim8SA_RBV") + field(FLNK, "BL03S-EA-FSCN-01:CAM:Dim9SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-01:CAM:Dim9SA_RBV") +record(subArray, "BL03S-EA-FSCN-01:CAM:Dim9SA_RBV") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-01:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ArraySize9_RBV") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ArraySize9_RBV") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize9_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySize9_RBV") { - field(INP, "S03SIM-EA-FSCN-01:CAM:Dim9SA_RBV") + field(INP, "BL03S-EA-FSCN-01:CAM:Dim9SA_RBV") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:BayerPattern_RBV") +record(mbbi, "BL03S-EA-FSCN-01:CAM:BayerPattern_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)BAYER_PATTERN") @@ -6250,28 +6250,28 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:BayerPattern_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySizeX_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySizeX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)ARRAY_SIZE_X") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySizeY_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySizeY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)ARRAY_SIZE_Y") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySizeZ_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySizeZ_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)ARRAY_SIZE_Z") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:ArraySize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)ARRAY_SIZE") @@ -6281,7 +6281,7 @@ record(longin, "S03SIM-EA-FSCN-01:CAM:ArraySize_RBV") ################################################################### # These records have information on the compression # ################################################################### -record(stringin, "S03SIM-EA-FSCN-01:CAM:Codec_RBV") +record(stringin, "BL03S-EA-FSCN-01:CAM:Codec_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.CAM,0,1)CODEC") @@ -6289,7 +6289,7 @@ record(stringin, "S03SIM-EA-FSCN-01:CAM:Codec_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-01:CAM:CompressedSize_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:CompressedSize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)COMPRESSED_SIZE") @@ -6300,7 +6300,7 @@ record(longin, "S03SIM-EA-FSCN-01:CAM:CompressedSize_RBV") # These records control the data type # ################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:CAM:DataType") +record(mbbo, "BL03S-EA-FSCN-01:CAM:DataType") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -6329,7 +6329,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:DataType") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:DataType_RBV") +record(mbbi, "BL03S-EA-FSCN-01:CAM:DataType_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)DATA_TYPE") @@ -6361,7 +6361,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:DataType_RBV") # These choices must agree with NDColorMode_t in NDArray.h # ################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:CAM:ColorMode") +record(mbbo, "BL03S-EA-FSCN-01:CAM:ColorMode") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -6385,7 +6385,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:ColorMode") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:ColorMode_RBV") +record(mbbi, "BL03S-EA-FSCN-01:CAM:ColorMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)COLOR_MODE") @@ -6411,14 +6411,14 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:ColorMode_RBV") ################################################################### # These records are the uniqueId and time stamps of the array # ################################################################### -record(longin, "S03SIM-EA-FSCN-01:CAM:UniqueId_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:UniqueId_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)UNIQUE_ID") field(SCAN, "I/O Intr") } -record(ai, "S03SIM-EA-FSCN-01:CAM:TimeStamp_RBV") +record(ai, "BL03S-EA-FSCN-01:CAM:TimeStamp_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)TIME_STAMP") @@ -6426,14 +6426,14 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:TimeStamp_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-01:CAM:EpicsTSSec_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:EpicsTSSec_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)EPICS_TS_SEC") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-01:CAM:EpicsTSNsec_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:EpicsTSNsec_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)EPICS_TS_NSEC") @@ -6444,13 +6444,13 @@ record(longin, "S03SIM-EA-FSCN-01:CAM:EpicsTSNsec_RBV") # These records provide statistics on array callbacks and # # array callback rates # ################################################################### -record(longout, "S03SIM-EA-FSCN-01:CAM:ArrayCounter") +record(longout, "BL03S-EA-FSCN-01:CAM:ArrayCounter") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)ARRAY_COUNTER") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ArrayCounter_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:ArrayCounter_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)ARRAY_COUNTER") @@ -6458,12 +6458,12 @@ record(longin, "S03SIM-EA-FSCN-01:CAM:ArrayCounter_RBV") } # Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:CAM:ArrayRate_RBV") +record(calc, "BL03S-EA-FSCN-01:CAM:ArrayRate_RBV") { - field(INPA, "S03SIM-EA-FSCN-01:CAM:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:CAM:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPA, "BL03S-EA-FSCN-01:CAM:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "BL03S-EA-FSCN-01:CAM:ArrayCounter_RBV NPP NMS") # Current counter value field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:CAM:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPD, "BL03S-EA-FSCN-01:CAM:ArrayRate_RBV.VAL NPP NMS") # Previous rate field(INPE, "0.0") # Smoothing factor field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") field(PREC, "2" ) @@ -6474,7 +6474,7 @@ record(calc, "S03SIM-EA-FSCN-01:CAM:ArrayRate_RBV") ################################################################### # These records control NDArray callacks # ################################################################### -record(bo, "S03SIM-EA-FSCN-01:CAM:ArrayCallbacks") +record(bo, "BL03S-EA-FSCN-01:CAM:ArrayCallbacks") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -6487,7 +6487,7 @@ record(bo, "S03SIM-EA-FSCN-01:CAM:ArrayCallbacks") info(autosaveFields, "VAL") } -record(bi, "S03SIM-EA-FSCN-01:CAM:ArrayCallbacks_RBV") +record(bi, "BL03S-EA-FSCN-01:CAM:ArrayCallbacks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)ARRAY_CALLBACKS") @@ -6502,7 +6502,7 @@ record(bi, "S03SIM-EA-FSCN-01:CAM:ArrayCallbacks_RBV") # This record contains macro definitions for the attributes # ################################################################### -record(waveform, "S03SIM-EA-FSCN-01:CAM:NDAttributesMacros") +record(waveform, "BL03S-EA-FSCN-01:CAM:NDAttributesMacros") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -6516,7 +6516,7 @@ record(waveform, "S03SIM-EA-FSCN-01:CAM:NDAttributesMacros") # This record is the name of a file defining attributes # ################################################################### -record(waveform, "S03SIM-EA-FSCN-01:CAM:NDAttributesFile") +record(waveform, "BL03S-EA-FSCN-01:CAM:NDAttributesFile") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -6530,7 +6530,7 @@ record(waveform, "S03SIM-EA-FSCN-01:CAM:NDAttributesFile") # This record defines the status of reading attributes file # ################################################################### -record(mbbi, "S03SIM-EA-FSCN-01:CAM:NDAttributesStatus") +record(mbbi, "BL03S-EA-FSCN-01:CAM:NDAttributesStatus") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)ND_ATTRIBUTES_STATUS") @@ -6553,7 +6553,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:NDAttributesStatus") # Status of NDArrayPool - number of buffers, memory used etc. # ################################################################### -record(ai, "S03SIM-EA-FSCN-01:CAM:PoolMaxMem") +record(ai, "BL03S-EA-FSCN-01:CAM:PoolMaxMem") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)POOL_MAX_MEMORY") @@ -6563,59 +6563,59 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:PoolMaxMem") field(PINI, "YES") } -record(ai, "S03SIM-EA-FSCN-01:CAM:PoolUsedMem") +record(ai, "BL03S-EA-FSCN-01:CAM:PoolUsedMem") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)POOL_USED_MEMORY") field(PREC, "1") field(EGU, "MB") field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:PoolAllocBuffers") + field(FLNK, "BL03S-EA-FSCN-01:CAM:PoolAllocBuffers") info(autosaveFields, "SCAN") } -record(longin, "S03SIM-EA-FSCN-01:CAM:PoolAllocBuffers") +record(longin, "BL03S-EA-FSCN-01:CAM:PoolAllocBuffers") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:PoolFreeBuffers") + field(FLNK, "BL03S-EA-FSCN-01:CAM:PoolFreeBuffers") } -record(longin, "S03SIM-EA-FSCN-01:CAM:PoolFreeBuffers") +record(longin, "BL03S-EA-FSCN-01:CAM:PoolFreeBuffers") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:PoolUsedBuffers") + field(FLNK, "BL03S-EA-FSCN-01:CAM:PoolUsedBuffers") } -record(calc, "S03SIM-EA-FSCN-01:CAM:PoolUsedBuffers") +record(calc, "BL03S-EA-FSCN-01:CAM:PoolUsedBuffers") { - field(INPA, "S03SIM-EA-FSCN-01:CAM:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:CAM:PoolFreeBuffers NPP MS") + field(INPA, "BL03S-EA-FSCN-01:CAM:PoolAllocBuffers NPP MS") + field(INPB, "BL03S-EA-FSCN-01:CAM:PoolFreeBuffers NPP MS") field(CALC, "A-B") } -record(bo, "S03SIM-EA-FSCN-01:CAM:EmptyFreeList") +record(bo, "BL03S-EA-FSCN-01:CAM:EmptyFreeList") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)POOL_EMPTY_FREELIST") } -record(longin, "S03SIM-EA-FSCN-01:CAM:NumQueuedArrays") +record(longin, "BL03S-EA-FSCN-01:CAM:NumQueuedArrays") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)NUM_QUEUED_ARRAYS") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-01:CAM:MaxSizeX_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:MaxSizeX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)MAX_SIZE_X") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-01:CAM:MaxSizeY_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:MaxSizeY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)MAX_SIZE_Y") @@ -6627,7 +6627,7 @@ record(longin, "S03SIM-EA-FSCN-01:CAM:MaxSizeY_RBV") # including binning, region start and size # ################################################################### -record(longout, "S03SIM-EA-FSCN-01:CAM:BinX") +record(longout, "BL03S-EA-FSCN-01:CAM:BinX") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -6636,14 +6636,14 @@ record(longout, "S03SIM-EA-FSCN-01:CAM:BinX") info(autosaveFields, "VAL") } -record(longin, "S03SIM-EA-FSCN-01:CAM:BinX_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:BinX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)BIN_X") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-EA-FSCN-01:CAM:BinY") +record(longout, "BL03S-EA-FSCN-01:CAM:BinY") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -6652,14 +6652,14 @@ record(longout, "S03SIM-EA-FSCN-01:CAM:BinY") info(autosaveFields, "VAL") } -record(longin, "S03SIM-EA-FSCN-01:CAM:BinY_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:BinY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)BIN_Y") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-EA-FSCN-01:CAM:MinX") +record(longout, "BL03S-EA-FSCN-01:CAM:MinX") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -6668,14 +6668,14 @@ record(longout, "S03SIM-EA-FSCN-01:CAM:MinX") info(autosaveFields, "VAL") } -record(longin, "S03SIM-EA-FSCN-01:CAM:MinX_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:MinX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)MIN_X") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-EA-FSCN-01:CAM:MinY") +record(longout, "BL03S-EA-FSCN-01:CAM:MinY") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -6684,14 +6684,14 @@ record(longout, "S03SIM-EA-FSCN-01:CAM:MinY") info(autosaveFields, "VAL") } -record(longin, "S03SIM-EA-FSCN-01:CAM:MinY_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:MinY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)MIN_Y") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-EA-FSCN-01:CAM:SizeX") +record(longout, "BL03S-EA-FSCN-01:CAM:SizeX") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -6700,14 +6700,14 @@ record(longout, "S03SIM-EA-FSCN-01:CAM:SizeX") info(autosaveFields, "VAL") } -record(longin, "S03SIM-EA-FSCN-01:CAM:SizeX_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:SizeX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)SIZE_X") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-EA-FSCN-01:CAM:SizeY") +record(longout, "BL03S-EA-FSCN-01:CAM:SizeY") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -6716,14 +6716,14 @@ record(longout, "S03SIM-EA-FSCN-01:CAM:SizeY") info(autosaveFields, "VAL") } -record(longin, "S03SIM-EA-FSCN-01:CAM:SizeY_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:SizeY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)SIZE_Y") field(SCAN, "I/O Intr") } -record(bo, "S03SIM-EA-FSCN-01:CAM:ReverseX") +record(bo, "BL03S-EA-FSCN-01:CAM:ReverseX") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -6734,7 +6734,7 @@ record(bo, "S03SIM-EA-FSCN-01:CAM:ReverseX") info(autosaveFields, "VAL") } -record(bi, "S03SIM-EA-FSCN-01:CAM:ReverseX_RBV") +record(bi, "BL03S-EA-FSCN-01:CAM:ReverseX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)REVERSE_X") @@ -6743,7 +6743,7 @@ record(bi, "S03SIM-EA-FSCN-01:CAM:ReverseX_RBV") field(SCAN, "I/O Intr") } -record(bo, "S03SIM-EA-FSCN-01:CAM:ReverseY") +record(bo, "BL03S-EA-FSCN-01:CAM:ReverseY") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -6754,7 +6754,7 @@ record(bo, "S03SIM-EA-FSCN-01:CAM:ReverseY") info(autosaveFields, "VAL") } -record(bi, "S03SIM-EA-FSCN-01:CAM:ReverseY_RBV") +record(bi, "BL03S-EA-FSCN-01:CAM:ReverseY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)REVERSE_Y") @@ -6768,7 +6768,7 @@ record(bi, "S03SIM-EA-FSCN-01:CAM:ReverseY_RBV") # These records control the acquisition time and # # period # ################################################################### -record(ao, "S03SIM-EA-FSCN-01:CAM:AcquireTime") +record(ao, "BL03S-EA-FSCN-01:CAM:AcquireTime") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -6778,7 +6778,7 @@ record(ao, "S03SIM-EA-FSCN-01:CAM:AcquireTime") info(autosaveFields, "VAL") } -record(ai, "S03SIM-EA-FSCN-01:CAM:AcquireTime_RBV") +record(ai, "BL03S-EA-FSCN-01:CAM:AcquireTime_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)ACQ_TIME") @@ -6786,7 +6786,7 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:AcquireTime_RBV") field(SCAN, "I/O Intr") } -record(ao, "S03SIM-EA-FSCN-01:CAM:AcquirePeriod") +record(ao, "BL03S-EA-FSCN-01:CAM:AcquirePeriod") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -6796,7 +6796,7 @@ record(ao, "S03SIM-EA-FSCN-01:CAM:AcquirePeriod") info(autosaveFields, "VAL") } -record(ai, "S03SIM-EA-FSCN-01:CAM:AcquirePeriod_RBV") +record(ai, "BL03S-EA-FSCN-01:CAM:AcquirePeriod_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)ACQ_PERIOD") @@ -6804,7 +6804,7 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:AcquirePeriod_RBV") field(SCAN, "I/O Intr") } -record(ai, "S03SIM-EA-FSCN-01:CAM:TimeRemaining_RBV") +record(ai, "BL03S-EA-FSCN-01:CAM:TimeRemaining_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)TIME_REMAINING") @@ -6815,7 +6815,7 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:TimeRemaining_RBV") ################################################################### # These records control the gain # ################################################################### -record(ao, "S03SIM-EA-FSCN-01:CAM:Gain") +record(ao, "BL03S-EA-FSCN-01:CAM:Gain") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -6825,7 +6825,7 @@ record(ao, "S03SIM-EA-FSCN-01:CAM:Gain") info(autosaveFields, "VAL") } -record(ai, "S03SIM-EA-FSCN-01:CAM:Gain_RBV") +record(ai, "BL03S-EA-FSCN-01:CAM:Gain_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)GAIN") @@ -6836,7 +6836,7 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:Gain_RBV") ################################################################### # These records control the frame type # ################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:CAM:FrameType") +record(mbbo, "BL03S-EA-FSCN-01:CAM:FrameType") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -6853,7 +6853,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:FrameType") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:FrameType_RBV") +record(mbbi, "BL03S-EA-FSCN-01:CAM:FrameType_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)FRAME_TYPE") @@ -6871,7 +6871,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:FrameType_RBV") ################################################################### # These records control the acquisition mode # ################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:CAM:ImageMode") +record(mbbo, "BL03S-EA-FSCN-01:CAM:ImageMode") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -6886,7 +6886,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:ImageMode") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:ImageMode_RBV") +record(mbbi, "BL03S-EA-FSCN-01:CAM:ImageMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)IMAGE_MODE") @@ -6902,7 +6902,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:ImageMode_RBV") ################################################################### # These records control the trigger mode # ################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:CAM:TriggerMode") +record(mbbo, "BL03S-EA-FSCN-01:CAM:TriggerMode") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -6915,7 +6915,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:TriggerMode") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:TriggerMode_RBV") +record(mbbi, "BL03S-EA-FSCN-01:CAM:TriggerMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)TRIGGER_MODE") @@ -6930,7 +6930,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:TriggerMode_RBV") # These records control the number of exposures and # # number of images # ################################################################### -record(longout, "S03SIM-EA-FSCN-01:CAM:NumExposures") +record(longout, "BL03S-EA-FSCN-01:CAM:NumExposures") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -6939,20 +6939,20 @@ record(longout, "S03SIM-EA-FSCN-01:CAM:NumExposures") info(autosaveFields, "VAL") } -record(longin, "S03SIM-EA-FSCN-01:CAM:NumExposures_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:NumExposures_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)NEXPOSURES") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-01:CAM:NumExposuresCounter_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:NumExposuresCounter_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)NEXPOSURES_COUNTER") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-EA-FSCN-01:CAM:NumImages") +record(longout, "BL03S-EA-FSCN-01:CAM:NumImages") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -6961,14 +6961,14 @@ record(longout, "S03SIM-EA-FSCN-01:CAM:NumImages") info(autosaveFields, "VAL") } -record(longin, "S03SIM-EA-FSCN-01:CAM:NumImages_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:NumImages_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)NIMAGES") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-01:CAM:NumImagesCounter_RBV") +record(longin, "BL03S-EA-FSCN-01:CAM:NumImagesCounter_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)NIMAGES_COUNTER") @@ -6979,7 +6979,7 @@ record(longin, "S03SIM-EA-FSCN-01:CAM:NumImagesCounter_RBV") # These records are for the detector state # ################################################################### -record(mbbi, "S03SIM-EA-FSCN-01:CAM:DetectorState_RBV") +record(mbbi, "BL03S-EA-FSCN-01:CAM:DetectorState_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)STATUS") @@ -7024,7 +7024,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:DetectorState_RBV") ################################################################### # Status message. -record(waveform, "S03SIM-EA-FSCN-01:CAM:StatusMessage_RBV") +record(waveform, "BL03S-EA-FSCN-01:CAM:StatusMessage_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.CAM,0,1)STATUS_MESSAGE") @@ -7033,7 +7033,7 @@ record(waveform, "S03SIM-EA-FSCN-01:CAM:StatusMessage_RBV") field(SCAN, "I/O Intr") } -record(waveform, "S03SIM-EA-FSCN-01:CAM:StringToServer_RBV") +record(waveform, "BL03S-EA-FSCN-01:CAM:StringToServer_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.CAM,0,1)STRING_TO_SERVER") @@ -7042,7 +7042,7 @@ record(waveform, "S03SIM-EA-FSCN-01:CAM:StringToServer_RBV") field(SCAN, "I/O Intr") } -record(waveform, "S03SIM-EA-FSCN-01:CAM:StringFromServer_RBV") +record(waveform, "BL03S-EA-FSCN-01:CAM:StringFromServer_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.CAM,0,1)STRING_FROM_SERVER") @@ -7054,7 +7054,7 @@ record(waveform, "S03SIM-EA-FSCN-01:CAM:StringFromServer_RBV") ################################################################@### # This record can be used to force a read of the detector status # #################################################################### -record(bo,"S03SIM-EA-FSCN-01:CAM:ReadStatus") { +record(bo,"BL03S-EA-FSCN-01:CAM:ReadStatus") { field(DTYP,"asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)READ_STATUS") field(VAL, "1") @@ -7066,7 +7066,7 @@ record(bo,"S03SIM-EA-FSCN-01:CAM:ReadStatus") { # These records control the shutter # ################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:CAM:ShutterMode") +record(mbbo, "BL03S-EA-FSCN-01:CAM:ShutterMode") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -7081,7 +7081,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:ShutterMode") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:ShutterMode_RBV") +record(mbbi, "BL03S-EA-FSCN-01:CAM:ShutterMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)SHUTTER_MODE") @@ -7094,7 +7094,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:ShutterMode_RBV") field(SCAN, "I/O Intr") } -record(bo, "S03SIM-EA-FSCN-01:CAM:ShutterControl") +record(bo, "BL03S-EA-FSCN-01:CAM:ShutterControl") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -7104,7 +7104,7 @@ record(bo, "S03SIM-EA-FSCN-01:CAM:ShutterControl") field(VAL, "0") } -record(bi, "S03SIM-EA-FSCN-01:CAM:ShutterControl_RBV") +record(bi, "BL03S-EA-FSCN-01:CAM:ShutterControl_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)SHUTTER_CONTROL") @@ -7113,7 +7113,7 @@ record(bi, "S03SIM-EA-FSCN-01:CAM:ShutterControl_RBV") field(SCAN, "I/O Intr") } -record(bi, "S03SIM-EA-FSCN-01:CAM:ShutterStatus_RBV") +record(bi, "BL03S-EA-FSCN-01:CAM:ShutterStatus_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)SHUTTER_STATUS") @@ -7124,7 +7124,7 @@ record(bi, "S03SIM-EA-FSCN-01:CAM:ShutterStatus_RBV") field(SCAN, "I/O Intr") } -record(ao, "S03SIM-EA-FSCN-01:CAM:ShutterOpenDelay") +record(ao, "BL03S-EA-FSCN-01:CAM:ShutterOpenDelay") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -7134,7 +7134,7 @@ record(ao, "S03SIM-EA-FSCN-01:CAM:ShutterOpenDelay") info(autosaveFields, "VAL") } -record(ai, "S03SIM-EA-FSCN-01:CAM:ShutterOpenDelay_RBV") +record(ai, "BL03S-EA-FSCN-01:CAM:ShutterOpenDelay_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)SHUTTER_OPEN_DELAY") @@ -7142,7 +7142,7 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:ShutterOpenDelay_RBV") field(SCAN, "I/O Intr") } -record(ao, "S03SIM-EA-FSCN-01:CAM:ShutterCloseDelay") +record(ao, "BL03S-EA-FSCN-01:CAM:ShutterCloseDelay") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -7152,7 +7152,7 @@ record(ao, "S03SIM-EA-FSCN-01:CAM:ShutterCloseDelay") info(autosaveFields, "VAL") } -record(ai, "S03SIM-EA-FSCN-01:CAM:ShutterCloseDelay_RBV") +record(ai, "BL03S-EA-FSCN-01:CAM:ShutterCloseDelay_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)SHUTTER_CLOSE_DELAY") @@ -7161,7 +7161,7 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:ShutterCloseDelay_RBV") } # This record changes state when the driver opens/closes an EPICS shutter -record(bi, "S03SIM-EA-FSCN-01:CAM:ShutterControlEPICS") +record(bi, "BL03S-EA-FSCN-01:CAM:ShutterControlEPICS") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)SHUTTER_CONTROL_EPICS") @@ -7170,18 +7170,18 @@ record(bi, "S03SIM-EA-FSCN-01:CAM:ShutterControlEPICS") field(ONAM, "Open") field(OSV, "MINOR") field(SCAN, "I/O Intr") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ShutterFanout.PROC") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ShutterFanout.PROC") } -record(fanout, "S03SIM-EA-FSCN-01:CAM:ShutterFanout") +record(fanout, "BL03S-EA-FSCN-01:CAM:ShutterFanout") { - field(LNK1, "S03SIM-EA-FSCN-01:CAM:ShutterOpenEPICS.PROC PP MS") - field(LNK2, "S03SIM-EA-FSCN-01:CAM:ShutterCloseEPICS.PROC PP MS") + field(LNK1, "BL03S-EA-FSCN-01:CAM:ShutterOpenEPICS.PROC PP MS") + field(LNK2, "BL03S-EA-FSCN-01:CAM:ShutterCloseEPICS.PROC PP MS") } -record(calcout, "S03SIM-EA-FSCN-01:CAM:ShutterOpenEPICS") +record(calcout, "BL03S-EA-FSCN-01:CAM:ShutterOpenEPICS") { - field(INPA, "S03SIM-EA-FSCN-01:CAM:ShutterControlEPICS.VAL NPP NMS") + field(INPA, "BL03S-EA-FSCN-01:CAM:ShutterControlEPICS.VAL NPP NMS") field(CALC, "A") field(OOPT, "Transition To Non-zero") field(DOPT, "Use OCAL") @@ -7190,9 +7190,9 @@ record(calcout, "S03SIM-EA-FSCN-01:CAM:ShutterOpenEPICS") info(autosaveFields, "OUT OCAL") } -record(calcout, "S03SIM-EA-FSCN-01:CAM:ShutterCloseEPICS") +record(calcout, "BL03S-EA-FSCN-01:CAM:ShutterCloseEPICS") { - field(INPA, "S03SIM-EA-FSCN-01:CAM:ShutterControlEPICS.VAL NPP NMS") + field(INPA, "BL03S-EA-FSCN-01:CAM:ShutterControlEPICS.VAL NPP NMS") field(CALC, "A") field(OOPT, "Transition To Zero") field(DOPT, "Use OCAL") @@ -7201,7 +7201,7 @@ record(calcout, "S03SIM-EA-FSCN-01:CAM:ShutterCloseEPICS") info(autosaveFields, "OUT OCAL") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:ShutterStatusEPICS_RBV") +record(mbbi, "BL03S-EA-FSCN-01:CAM:ShutterStatusEPICS_RBV") { field(DTYP, "Raw Soft Channel") field(INP, "test CP MS") @@ -7218,7 +7218,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:ShutterStatusEPICS_RBV") # These records control the detector temperature # ################################################################### -record(ao, "S03SIM-EA-FSCN-01:CAM:Temperature") +record(ao, "BL03S-EA-FSCN-01:CAM:Temperature") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -7229,7 +7229,7 @@ record(ao, "S03SIM-EA-FSCN-01:CAM:Temperature") info(autosaveFields, "VAL") } -record(ai, "S03SIM-EA-FSCN-01:CAM:Temperature_RBV") +record(ai, "BL03S-EA-FSCN-01:CAM:Temperature_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)TEMPERATURE") @@ -7238,7 +7238,7 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:Temperature_RBV") field(SCAN, "I/O Intr") } -record(ai, "S03SIM-EA-FSCN-01:CAM:TemperatureActual") +record(ai, "BL03S-EA-FSCN-01:CAM:TemperatureActual") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)TEMPERATURE_ACTUAL") @@ -7259,21 +7259,21 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:TemperatureActual") # Some cameras use both AcquisitionFrameRate and AcquirePeriod. # Make AcquirePeriod update if FrameRate is changed. -record(ao, "S03SIM-EA-FSCN-01:CAM:AcquirePeriod") +record(ao, "BL03S-EA-FSCN-01:CAM:AcquirePeriod") { info(asyn:READBACK, "1") } # This record hides the fact that some cameras use FrameRate and some use FrameRateAbs # This is not PINI=YES because AcquirePeriod is and they control the same thing -record(ao, "S03SIM-EA-FSCN-01:CAM:FrameRate") +record(ao, "BL03S-EA-FSCN-01:CAM:FrameRate") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN1.CAM 0)GC_FRAMERATE") field(PREC, "3") } -record(ai, "S03SIM-EA-FSCN-01:CAM:FrameRate_RBV") +record(ai, "BL03S-EA-FSCN-01:CAM:FrameRate_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM 0)GC_FRAMERATE") @@ -7283,7 +7283,7 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:FrameRate_RBV") # Some cameras (Basler, Point Grey, FLIR) use AcquisitionFrameRateEnable or AcquisitionFrameRateEnabled # This record hides the fact that the feature name may differ; the record name is always the same. -record(bo, "S03SIM-EA-FSCN-01:CAM:FrameRateEnable") +record(bo, "BL03S-EA-FSCN-01:CAM:FrameRateEnable") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -7292,7 +7292,7 @@ record(bo, "S03SIM-EA-FSCN-01:CAM:FrameRateEnable") field(ONAM, "Yes") } -record(bi, "S03SIM-EA-FSCN-01:CAM:FrameRateEnable_RBV") +record(bi, "BL03S-EA-FSCN-01:CAM:FrameRateEnable_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM 0)GC_FRAMERATE_ENABLE") @@ -7302,7 +7302,7 @@ record(bi, "S03SIM-EA-FSCN-01:CAM:FrameRateEnable_RBV") } # This record is used to ensure there is a record for TriggerSource even if there is no such GenICam feature -record(mbbo, "S03SIM-EA-FSCN-01:CAM:TriggerSource") +record(mbbo, "BL03S-EA-FSCN-01:CAM:TriggerSource") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -7311,7 +7311,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:TriggerSource") field(ZRVL, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:TriggerSource_RBV") +record(mbbi, "BL03S-EA-FSCN-01:CAM:TriggerSource_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM 0)GC_TRIGGER_SOURCE") @@ -7321,7 +7321,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:TriggerSource_RBV") } # This record is used to ensure there is a record for TriggerOverlap even if there is no such GenICam feature -record(mbbo, "S03SIM-EA-FSCN-01:CAM:TriggerOverlap") +record(mbbo, "BL03S-EA-FSCN-01:CAM:TriggerOverlap") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -7330,7 +7330,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:TriggerOverlap") field(ZRVL, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:TriggerOverlap_RBV") +record(mbbi, "BL03S-EA-FSCN-01:CAM:TriggerOverlap_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM 0)GC_TRIGGER_OVERLAP") @@ -7340,7 +7340,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:TriggerOverlap_RBV") } # This record is used to ensure there is a record for TriggerSoftware even if there is no such GenICam feature -record(bo, "S03SIM-EA-FSCN-01:CAM:TriggerSoftware") +record(bo, "BL03S-EA-FSCN-01:CAM:TriggerSoftware") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -7350,7 +7350,7 @@ record(bo, "S03SIM-EA-FSCN-01:CAM:TriggerSoftware") } # This record is used to ensure there is a record for ExposureMode even if there is no such GenICam feature -record(mbbo, "S03SIM-EA-FSCN-01:CAM:ExposureMode") +record(mbbo, "BL03S-EA-FSCN-01:CAM:ExposureMode") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -7359,7 +7359,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:ExposureMode") field(ZRVL, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:ExposureMode_RBV") +record(mbbi, "BL03S-EA-FSCN-01:CAM:ExposureMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM 0)GC_EXPOSURE_MODE") @@ -7369,7 +7369,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:ExposureMode_RBV") } # This record is used to ensure there is a record for ExposureAuto even if there is no such GenICam feature -record(mbbo, "S03SIM-EA-FSCN-01:CAM:ExposureAuto") +record(mbbo, "BL03S-EA-FSCN-01:CAM:ExposureAuto") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -7378,7 +7378,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:ExposureAuto") field(ZRVL, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:ExposureAuto_RBV") +record(mbbi, "BL03S-EA-FSCN-01:CAM:ExposureAuto_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM 0)GC_EXPOSURE_AUTO") @@ -7388,7 +7388,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:ExposureAuto_RBV") } # This record is used to ensure there is a record for GainAuto even if there is no such GenICam feature -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GainAuto") +record(mbbo, "BL03S-EA-FSCN-01:CAM:GainAuto") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -7397,7 +7397,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:GainAuto") field(ZRVL, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GainAuto_RBV") +record(mbbi, "BL03S-EA-FSCN-01:CAM:GainAuto_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM 0)GC_GAIN_AUTO") @@ -7407,7 +7407,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:GainAuto_RBV") } # This record is used to ensure there is a record for PixelFormat even if there is no such GenICam feature -record(mbbo, "S03SIM-EA-FSCN-01:CAM:PixelFormat") +record(mbbo, "BL03S-EA-FSCN-01:CAM:PixelFormat") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -7416,7 +7416,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:PixelFormat") field(ZRVL, "0") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:PixelFormat_RBV") +record(mbbi, "BL03S-EA-FSCN-01:CAM:PixelFormat_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM 0)GC_PIXEL_FORMAT") @@ -7425,7 +7425,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:PixelFormat_RBV") field(SCAN, "I/O Intr") } -record(ai, "S03SIM-EA-FSCN-01:CAM:ARFramesCompleted") +record(ai, "BL03S-EA-FSCN-01:CAM:ARFramesCompleted") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)ARAVIS_COMPLETED") @@ -7433,7 +7433,7 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:ARFramesCompleted") info(autosaveFields, "DESC LLSV LOLO LOW LSV") } -record(ai, "S03SIM-EA-FSCN-01:CAM:ARFrameFailures") +record(ai, "BL03S-EA-FSCN-01:CAM:ARFrameFailures") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)ARAVIS_FAILURES") @@ -7441,7 +7441,7 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:ARFrameFailures") info(autosaveFields, "DESC HHSV HIHI HIGH HSV") } -record(ai, "S03SIM-EA-FSCN-01:CAM:ARFrameUnderruns") +record(ai, "BL03S-EA-FSCN-01:CAM:ARFrameUnderruns") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.CAM,0,1)ARAVIS_UNDERRUNS") @@ -7449,7 +7449,7 @@ record(ai, "S03SIM-EA-FSCN-01:CAM:ARFrameUnderruns") info(autosaveFields, "DESC HHSV HIHI HIGH HSV") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ARMissingPackets") +record(longin, "BL03S-EA-FSCN-01:CAM:ARMissingPackets") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)ARAVIS_MISSING_PKTS") @@ -7457,7 +7457,7 @@ record(longin, "S03SIM-EA-FSCN-01:CAM:ARMissingPackets") info(autosaveFields, "DESC HHSV HIHI HIGH HSV") } -record(longin, "S03SIM-EA-FSCN-01:CAM:ARResentPackets") +record(longin, "BL03S-EA-FSCN-01:CAM:ARResentPackets") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)ARAVIS_RESENT_PKTS") @@ -7465,7 +7465,7 @@ record(longin, "S03SIM-EA-FSCN-01:CAM:ARResentPackets") info(autosaveFields, "DESC HHSV HIHI HIGH HSV") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:ARPacketResendEnable") +record(mbbo, "BL03S-EA-FSCN-01:CAM:ARPacketResendEnable") { field(DESC, "Packet resend enable") field(DTYP, "asynInt32") @@ -7479,7 +7479,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:ARPacketResendEnable") info(autosaveFields, "DESC ONSV ZRSV PINI VAL") } -record(longout, "S03SIM-EA-FSCN-01:CAM:ARPacketTimeout") +record(longout, "BL03S-EA-FSCN-01:CAM:ARPacketTimeout") { field(DESC, "Delay in us before packet resend request") field(DTYP, "asynInt32") @@ -7490,7 +7490,7 @@ record(longout, "S03SIM-EA-FSCN-01:CAM:ARPacketTimeout") info(autosaveFields, "DESC HHSV HIHI HIGH HSV LLSV LOLO LOW LSV PINI VAL") } -record(longout, "S03SIM-EA-FSCN-01:CAM:ARFrameRetention") +record(longout, "BL03S-EA-FSCN-01:CAM:ARFrameRetention") { field(DESC, "Frame timeout in us after last packet") field(DTYP, "asynInt32") @@ -7501,14 +7501,14 @@ record(longout, "S03SIM-EA-FSCN-01:CAM:ARFrameRetention") info(autosaveFields, "DESC HHSV HIHI HIGH HSV LLSV LOLO LOW LSV PINI VAL") } -record(longout, "S03SIM-EA-FSCN-01:CAM:ARResetCamera") +record(longout, "BL03S-EA-FSCN-01:CAM:ARResetCamera") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)ARAVIS_RESET") - field(FLNK, "S03SIM-EA-FSCN-01:CAM:ARConnectCamera") + field(FLNK, "BL03S-EA-FSCN-01:CAM:ARConnectCamera") } -record(longout, "S03SIM-EA-FSCN-01:CAM:ARConnectCamera") +record(longout, "BL03S-EA-FSCN-01:CAM:ARConnectCamera") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)ARAVIS_CONNECTION") @@ -7516,16 +7516,16 @@ record(longout, "S03SIM-EA-FSCN-01:CAM:ARConnectCamera") field(PINI, "1") } -record(calcout, "S03SIM-EA-FSCN-01:CAM:ARCheckConnection") +record(calcout, "BL03S-EA-FSCN-01:CAM:ARCheckConnection") { field(SCAN, "1 second") - field(INPA, "S03SIM-EA-FSCN-01:CAM:ARConnectCamera.SEVR CP") + field(INPA, "BL03S-EA-FSCN-01:CAM:ARConnectCamera.SEVR CP") field(CALC, "A==0") field(OOPT, "When Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:CAM:ARConnectCamera.PROC PP") + field(OUT, "BL03S-EA-FSCN-01:CAM:ARConnectCamera.PROC PP") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:ARConvertPixelFormat_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:ARConvertPixelFormat_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)ARAVIS_CONVERT_PIXEL_FORMAT") field(ZRST, "Mono16Low") @@ -7539,7 +7539,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:ARConvertPixelFormat_RBV") { ## When unpacking Mono12Packed or Mono12p selects whether 16-bit output is ## left shifted by 4 bits (Mono16High) or not (Mono16Low) -record(mbbo, "S03SIM-EA-FSCN-01:CAM:ARConvertPixelFormat") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:ARConvertPixelFormat") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)ARAVIS_CONVERT_PIXEL_FORMAT") field(ZRST, "Mono16Low") @@ -7551,7 +7551,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:ARConvertPixelFormat") { } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:ARShiftDir_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:ARShiftDir_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)ARAVIS_SHIFT_DIR") field(ZRST, "None") @@ -7565,7 +7565,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:ARShiftDir_RBV") { } ## Select no shift, left shift, or right shift when reading data -record(mbbo, "S03SIM-EA-FSCN-01:CAM:ARShiftDir") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:ARShiftDir") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)ARAVIS_SHIFT_DIR") field(ZRST, "None") @@ -7578,7 +7578,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:ARShiftDir") { info(autosaveFields, "DESC ZRSV ONSV VAL") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:ARShiftBits_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:CAM:ARShiftBits_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.CAM,0,1)ARAVIS_SHIFT_BITS") field(ZRST, "1") @@ -7602,7 +7602,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:CAM:ARShiftBits_RBV") { } ## Selects how many bits to shift left or right when reading data -record(mbbo, "S03SIM-EA-FSCN-01:CAM:ARShiftBits") { +record(mbbo, "BL03S-EA-FSCN-01:CAM:ARShiftBits") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.CAM,0,1)ARAVIS_SHIFT_BITS") field(ZRST, "1") @@ -7633,9 +7633,9 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:ARShiftBits") { #% macro, ADDR, Asyn Port address, default 0 # This associates a BOY screen with the template -# % gui, FSCN2.CAM, boydetail, aravisApp_opi/aravis_detail.opi, P=S03SIM-EA-FSCN-02, R=:CAM:, DESC=Camera -# % gui, FSCN2.CAM, boyembed, aravisApp_opi/aravis_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:CAM:, DESC=Camera -# % gui, FSCN2.CAM, boyembed, aravisApp_opi/aravis_embed.opi, P=S03SIM-EA-FSCN-02, R=:CAM:, DESC=Camera +# % gui, FSCN2.CAM, boydetail, aravisApp_opi/aravis_detail.opi, P=BL03S-EA-FSCN-02, R=:CAM:, DESC=Camera +# % gui, FSCN2.CAM, boyembed, aravisApp_opi/aravis_embed_box.opi, P=BL03S-EA-FSCN-02, R=:CAM:, DESC=Camera +# % gui, FSCN2.CAM, boyembed, aravisApp_opi/aravis_embed.opi, P=BL03S-EA-FSCN-02, R=:CAM:, DESC=Camera ## ADGenICam.template ## Template database file to control some features of ADGenICam. @@ -7670,7 +7670,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:CAM:ARShiftBits") { # This record contains the version of ADCore # ################################################################### -record(stringin, "S03SIM-EA-FSCN-02:CAM:ADCoreVersion_RBV") +record(stringin, "BL03S-EA-FSCN-02:CAM:ADCoreVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.CAM,0,1)ADCORE_VERSION") @@ -7682,7 +7682,7 @@ record(stringin, "S03SIM-EA-FSCN-02:CAM:ADCoreVersion_RBV") # This record contains the version of the driver or plugin # ################################################################### -record(stringin, "S03SIM-EA-FSCN-02:CAM:DriverVersion_RBV") +record(stringin, "BL03S-EA-FSCN-02:CAM:DriverVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.CAM,0,1)DRIVER_VERSION") @@ -7694,7 +7694,7 @@ record(stringin, "S03SIM-EA-FSCN-02:CAM:DriverVersion_RBV") # This record contains the asyn port name of this detector # ################################################################### -record(stringin, "S03SIM-EA-FSCN-02:CAM:PortName_RBV") +record(stringin, "BL03S-EA-FSCN-02:CAM:PortName_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.CAM,0,1)PORT_NAME_SELF") @@ -7706,7 +7706,7 @@ record(stringin, "S03SIM-EA-FSCN-02:CAM:PortName_RBV") # These records contain basic information about the detector # ################################################################### -record(stringin, "S03SIM-EA-FSCN-02:CAM:Manufacturer_RBV") +record(stringin, "BL03S-EA-FSCN-02:CAM:Manufacturer_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.CAM,0,1)MANUFACTURER") @@ -7714,7 +7714,7 @@ record(stringin, "S03SIM-EA-FSCN-02:CAM:Manufacturer_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-EA-FSCN-02:CAM:Model_RBV") +record(stringin, "BL03S-EA-FSCN-02:CAM:Model_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.CAM,0,1)MODEL") @@ -7722,7 +7722,7 @@ record(stringin, "S03SIM-EA-FSCN-02:CAM:Model_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-EA-FSCN-02:CAM:SerialNumber_RBV") +record(stringin, "BL03S-EA-FSCN-02:CAM:SerialNumber_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.CAM,0,1)SERIAL_NUMBER") @@ -7730,7 +7730,7 @@ record(stringin, "S03SIM-EA-FSCN-02:CAM:SerialNumber_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-EA-FSCN-02:CAM:SDKVersion_RBV") +record(stringin, "BL03S-EA-FSCN-02:CAM:SDKVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.CAM,0,1)SDK_VERSION") @@ -7738,7 +7738,7 @@ record(stringin, "S03SIM-EA-FSCN-02:CAM:SDKVersion_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-EA-FSCN-02:CAM:FirmwareVersion_RBV") +record(stringin, "BL03S-EA-FSCN-02:CAM:FirmwareVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.CAM,0,1)FIRMWARE_VERSION") @@ -7750,17 +7750,17 @@ record(stringin, "S03SIM-EA-FSCN-02:CAM:FirmwareVersion_RBV") # These records control acquisition start and stop # ################################################################### -record(bo, "S03SIM-EA-FSCN-02:CAM:Acquire") { +record(bo, "BL03S-EA-FSCN-02:CAM:Acquire") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)ACQUIRE") field(ZNAM, "Done") field(ONAM, "Acquire") field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:SetAcquireBusy") + field(FLNK, "BL03S-EA-FSCN-02:CAM:SetAcquireBusy") info(asyn:READBACK, "1") } -record(bi, "S03SIM-EA-FSCN-02:CAM:Acquire_RBV") { +record(bi, "BL03S-EA-FSCN-02:CAM:Acquire_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)ACQUIRE") field(ZNAM, "Done") @@ -7770,15 +7770,15 @@ record(bi, "S03SIM-EA-FSCN-02:CAM:Acquire_RBV") { field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-EA-FSCN-02:CAM:SetAcquireBusy") +record(calcout, "BL03S-EA-FSCN-02:CAM:SetAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:CAM:Acquire NPP") + field(INPA, "BL03S-EA-FSCN-02:CAM:Acquire NPP") field(CALC, "A") field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:CAM:AcquireBusy PP") + field(OUT, "BL03S-EA-FSCN-02:CAM:AcquireBusy PP") } -record(bi, "S03SIM-EA-FSCN-02:CAM:AcquireBusy") { +record(bi, "BL03S-EA-FSCN-02:CAM:AcquireBusy") { field(ZNAM, "Done") field(ZSV, "NO_ALARM") field(ONAM, "Acquiring") @@ -7786,7 +7786,7 @@ record(bi, "S03SIM-EA-FSCN-02:CAM:AcquireBusy") { field(VAL, "0") } -record(bi, "S03SIM-EA-FSCN-02:CAM:AcquireBusyCB") { +record(bi, "BL03S-EA-FSCN-02:CAM:AcquireBusyCB") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)ACQUIRE_BUSY") field(ZNAM, "Done") @@ -7796,14 +7796,14 @@ record(bi, "S03SIM-EA-FSCN-02:CAM:AcquireBusyCB") { field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-EA-FSCN-02:CAM:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:CAM:AcquireBusyCB CP") +record(calcout, "BL03S-EA-FSCN-02:CAM:ClearAcquireBusy") { + field(INPA, "BL03S-EA-FSCN-02:CAM:AcquireBusyCB CP") field(CALC, "A") field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:CAM:AcquireBusy PP") + field(OUT, "BL03S-EA-FSCN-02:CAM:AcquireBusy PP") } -record(bo, "S03SIM-EA-FSCN-02:CAM:WaitForPlugins") { +record(bo, "BL03S-EA-FSCN-02:CAM:WaitForPlugins") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)WAIT_FOR_PLUGINS") @@ -7816,13 +7816,13 @@ record(bo, "S03SIM-EA-FSCN-02:CAM:WaitForPlugins") { # These records are the array size and data type # ################################################################### # The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:CAM:NDimensions") +record(longout, "BL03S-EA-FSCN-02:CAM:NDimensions") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)ARRAY_NDIMENSIONS") } -record(longin, "S03SIM-EA-FSCN-02:CAM:NDimensions_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:NDimensions_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)ARRAY_NDIMENSIONS") @@ -7830,346 +7830,346 @@ record(longin, "S03SIM-EA-FSCN-02:CAM:NDimensions_RBV") } # The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:CAM:Dimensions") +record(waveform, "BL03S-EA-FSCN-02:CAM:Dimensions") { field(DTYP, "asynInt32ArrayOut") field(INP, "@asyn(FSCN2.CAM,0,1)ARRAY_DIMENSIONS") field(FTVL, "LONG") field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim0SA") + field(FLNK, "BL03S-EA-FSCN-02:CAM:Dim0SA") } -record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim0SA") +record(subArray, "BL03S-EA-FSCN-02:CAM:Dim0SA") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-02:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize0") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ArraySize0") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize0") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySize0") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim1SA") + field(INP, "BL03S-EA-FSCN-02:CAM:Dim0SA") + field(FLNK, "BL03S-EA-FSCN-02:CAM:Dim1SA") } -record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim1SA") +record(subArray, "BL03S-EA-FSCN-02:CAM:Dim1SA") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-02:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize1") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ArraySize1") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize1") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySize1") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim2SA") + field(INP, "BL03S-EA-FSCN-02:CAM:Dim1SA") + field(FLNK, "BL03S-EA-FSCN-02:CAM:Dim2SA") } -record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim2SA") +record(subArray, "BL03S-EA-FSCN-02:CAM:Dim2SA") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-02:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize2") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ArraySize2") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize2") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySize2") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim3SA") + field(INP, "BL03S-EA-FSCN-02:CAM:Dim2SA") + field(FLNK, "BL03S-EA-FSCN-02:CAM:Dim3SA") } -record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim3SA") +record(subArray, "BL03S-EA-FSCN-02:CAM:Dim3SA") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-02:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize3") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ArraySize3") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize3") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySize3") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim4SA") + field(INP, "BL03S-EA-FSCN-02:CAM:Dim3SA") + field(FLNK, "BL03S-EA-FSCN-02:CAM:Dim4SA") } -record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim4SA") +record(subArray, "BL03S-EA-FSCN-02:CAM:Dim4SA") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-02:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize4") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ArraySize4") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize4") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySize4") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim5SA") + field(INP, "BL03S-EA-FSCN-02:CAM:Dim4SA") + field(FLNK, "BL03S-EA-FSCN-02:CAM:Dim5SA") } -record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim5SA") +record(subArray, "BL03S-EA-FSCN-02:CAM:Dim5SA") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-02:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize5") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ArraySize5") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize5") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySize5") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim6SA") + field(INP, "BL03S-EA-FSCN-02:CAM:Dim5SA") + field(FLNK, "BL03S-EA-FSCN-02:CAM:Dim6SA") } -record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim6SA") +record(subArray, "BL03S-EA-FSCN-02:CAM:Dim6SA") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-02:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize6") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ArraySize6") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize6") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySize6") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim7SA") + field(INP, "BL03S-EA-FSCN-02:CAM:Dim6SA") + field(FLNK, "BL03S-EA-FSCN-02:CAM:Dim7SA") } -record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim7SA") +record(subArray, "BL03S-EA-FSCN-02:CAM:Dim7SA") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-02:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize7") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ArraySize7") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize7") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySize7") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim8SA") + field(INP, "BL03S-EA-FSCN-02:CAM:Dim7SA") + field(FLNK, "BL03S-EA-FSCN-02:CAM:Dim8SA") } -record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim8SA") +record(subArray, "BL03S-EA-FSCN-02:CAM:Dim8SA") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-02:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize8") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ArraySize8") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize8") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySize8") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim9SA") + field(INP, "BL03S-EA-FSCN-02:CAM:Dim8SA") + field(FLNK, "BL03S-EA-FSCN-02:CAM:Dim9SA") } -record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim9SA") +record(subArray, "BL03S-EA-FSCN-02:CAM:Dim9SA") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-02:CAM:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize9") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ArraySize9") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize9") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySize9") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dim9SA") + field(INP, "BL03S-EA-FSCN-02:CAM:Dim9SA") } -record(waveform, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV") +record(waveform, "BL03S-EA-FSCN-02:CAM:Dimensions_RBV") { field(DTYP, "asynInt32ArrayIn") field(INP, "@asyn(FSCN2.CAM,0,1)ARRAY_DIMENSIONS") field(FTVL, "LONG") field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim0SA_RBV") + field(FLNK, "BL03S-EA-FSCN-02:CAM:Dim0SA_RBV") field(SCAN, "I/O Intr") } -record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim0SA_RBV") +record(subArray, "BL03S-EA-FSCN-02:CAM:Dim0SA_RBV") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize0_RBV") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ArraySize0_RBV") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize0_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySize0_RBV") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim1SA_RBV") + field(INP, "BL03S-EA-FSCN-02:CAM:Dim0SA_RBV") + field(FLNK, "BL03S-EA-FSCN-02:CAM:Dim1SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim1SA_RBV") +record(subArray, "BL03S-EA-FSCN-02:CAM:Dim1SA_RBV") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize1_RBV") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ArraySize1_RBV") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize1_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySize1_RBV") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim2SA_RBV") + field(INP, "BL03S-EA-FSCN-02:CAM:Dim1SA_RBV") + field(FLNK, "BL03S-EA-FSCN-02:CAM:Dim2SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim2SA_RBV") +record(subArray, "BL03S-EA-FSCN-02:CAM:Dim2SA_RBV") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize2_RBV") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ArraySize2_RBV") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize2_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySize2_RBV") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim3SA_RBV") + field(INP, "BL03S-EA-FSCN-02:CAM:Dim2SA_RBV") + field(FLNK, "BL03S-EA-FSCN-02:CAM:Dim3SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim3SA_RBV") +record(subArray, "BL03S-EA-FSCN-02:CAM:Dim3SA_RBV") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize3_RBV") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ArraySize3_RBV") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize3_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySize3_RBV") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim4SA_RBV") + field(INP, "BL03S-EA-FSCN-02:CAM:Dim3SA_RBV") + field(FLNK, "BL03S-EA-FSCN-02:CAM:Dim4SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim4SA_RBV") +record(subArray, "BL03S-EA-FSCN-02:CAM:Dim4SA_RBV") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize4_RBV") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ArraySize4_RBV") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize4_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySize4_RBV") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim5SA_RBV") + field(INP, "BL03S-EA-FSCN-02:CAM:Dim4SA_RBV") + field(FLNK, "BL03S-EA-FSCN-02:CAM:Dim5SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim5SA_RBV") +record(subArray, "BL03S-EA-FSCN-02:CAM:Dim5SA_RBV") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize5_RBV") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ArraySize5_RBV") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize5_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySize5_RBV") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim6SA_RBV") + field(INP, "BL03S-EA-FSCN-02:CAM:Dim5SA_RBV") + field(FLNK, "BL03S-EA-FSCN-02:CAM:Dim6SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim6SA_RBV") +record(subArray, "BL03S-EA-FSCN-02:CAM:Dim6SA_RBV") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize6_RBV") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ArraySize6_RBV") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize6_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySize6_RBV") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim7SA_RBV") + field(INP, "BL03S-EA-FSCN-02:CAM:Dim6SA_RBV") + field(FLNK, "BL03S-EA-FSCN-02:CAM:Dim7SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim7SA_RBV") +record(subArray, "BL03S-EA-FSCN-02:CAM:Dim7SA_RBV") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize7_RBV") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ArraySize7_RBV") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize7_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySize7_RBV") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim8SA_RBV") + field(INP, "BL03S-EA-FSCN-02:CAM:Dim7SA_RBV") + field(FLNK, "BL03S-EA-FSCN-02:CAM:Dim8SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim8SA_RBV") +record(subArray, "BL03S-EA-FSCN-02:CAM:Dim8SA_RBV") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize8_RBV") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ArraySize8_RBV") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize8_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySize8_RBV") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:Dim9SA_RBV") + field(INP, "BL03S-EA-FSCN-02:CAM:Dim8SA_RBV") + field(FLNK, "BL03S-EA-FSCN-02:CAM:Dim9SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-02:CAM:Dim9SA_RBV") +record(subArray, "BL03S-EA-FSCN-02:CAM:Dim9SA_RBV") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-02:CAM:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ArraySize9_RBV") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ArraySize9_RBV") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize9_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySize9_RBV") { - field(INP, "S03SIM-EA-FSCN-02:CAM:Dim9SA_RBV") + field(INP, "BL03S-EA-FSCN-02:CAM:Dim9SA_RBV") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:BayerPattern_RBV") +record(mbbi, "BL03S-EA-FSCN-02:CAM:BayerPattern_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)BAYER_PATTERN") @@ -8184,28 +8184,28 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:BayerPattern_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySizeX_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySizeX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)ARRAY_SIZE_X") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySizeY_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySizeY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)ARRAY_SIZE_Y") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySizeZ_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySizeZ_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)ARRAY_SIZE_Z") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:ArraySize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)ARRAY_SIZE") @@ -8215,7 +8215,7 @@ record(longin, "S03SIM-EA-FSCN-02:CAM:ArraySize_RBV") ################################################################### # These records have information on the compression # ################################################################### -record(stringin, "S03SIM-EA-FSCN-02:CAM:Codec_RBV") +record(stringin, "BL03S-EA-FSCN-02:CAM:Codec_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.CAM,0,1)CODEC") @@ -8223,7 +8223,7 @@ record(stringin, "S03SIM-EA-FSCN-02:CAM:Codec_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-02:CAM:CompressedSize_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:CompressedSize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)COMPRESSED_SIZE") @@ -8234,7 +8234,7 @@ record(longin, "S03SIM-EA-FSCN-02:CAM:CompressedSize_RBV") # These records control the data type # ################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:CAM:DataType") +record(mbbo, "BL03S-EA-FSCN-02:CAM:DataType") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -8263,7 +8263,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:DataType") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:DataType_RBV") +record(mbbi, "BL03S-EA-FSCN-02:CAM:DataType_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)DATA_TYPE") @@ -8295,7 +8295,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:DataType_RBV") # These choices must agree with NDColorMode_t in NDArray.h # ################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:CAM:ColorMode") +record(mbbo, "BL03S-EA-FSCN-02:CAM:ColorMode") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -8319,7 +8319,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:ColorMode") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:ColorMode_RBV") +record(mbbi, "BL03S-EA-FSCN-02:CAM:ColorMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)COLOR_MODE") @@ -8345,14 +8345,14 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:ColorMode_RBV") ################################################################### # These records are the uniqueId and time stamps of the array # ################################################################### -record(longin, "S03SIM-EA-FSCN-02:CAM:UniqueId_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:UniqueId_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)UNIQUE_ID") field(SCAN, "I/O Intr") } -record(ai, "S03SIM-EA-FSCN-02:CAM:TimeStamp_RBV") +record(ai, "BL03S-EA-FSCN-02:CAM:TimeStamp_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)TIME_STAMP") @@ -8360,14 +8360,14 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:TimeStamp_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-02:CAM:EpicsTSSec_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:EpicsTSSec_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)EPICS_TS_SEC") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-02:CAM:EpicsTSNsec_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:EpicsTSNsec_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)EPICS_TS_NSEC") @@ -8378,13 +8378,13 @@ record(longin, "S03SIM-EA-FSCN-02:CAM:EpicsTSNsec_RBV") # These records provide statistics on array callbacks and # # array callback rates # ################################################################### -record(longout, "S03SIM-EA-FSCN-02:CAM:ArrayCounter") +record(longout, "BL03S-EA-FSCN-02:CAM:ArrayCounter") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)ARRAY_COUNTER") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ArrayCounter_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:ArrayCounter_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)ARRAY_COUNTER") @@ -8392,12 +8392,12 @@ record(longin, "S03SIM-EA-FSCN-02:CAM:ArrayCounter_RBV") } # Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:CAM:ArrayRate_RBV") +record(calc, "BL03S-EA-FSCN-02:CAM:ArrayRate_RBV") { - field(INPA, "S03SIM-EA-FSCN-02:CAM:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:CAM:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPA, "BL03S-EA-FSCN-02:CAM:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "BL03S-EA-FSCN-02:CAM:ArrayCounter_RBV NPP NMS") # Current counter value field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:CAM:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPD, "BL03S-EA-FSCN-02:CAM:ArrayRate_RBV.VAL NPP NMS") # Previous rate field(INPE, "0.0") # Smoothing factor field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") field(PREC, "2" ) @@ -8408,7 +8408,7 @@ record(calc, "S03SIM-EA-FSCN-02:CAM:ArrayRate_RBV") ################################################################### # These records control NDArray callacks # ################################################################### -record(bo, "S03SIM-EA-FSCN-02:CAM:ArrayCallbacks") +record(bo, "BL03S-EA-FSCN-02:CAM:ArrayCallbacks") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -8421,7 +8421,7 @@ record(bo, "S03SIM-EA-FSCN-02:CAM:ArrayCallbacks") info(autosaveFields, "VAL") } -record(bi, "S03SIM-EA-FSCN-02:CAM:ArrayCallbacks_RBV") +record(bi, "BL03S-EA-FSCN-02:CAM:ArrayCallbacks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)ARRAY_CALLBACKS") @@ -8436,7 +8436,7 @@ record(bi, "S03SIM-EA-FSCN-02:CAM:ArrayCallbacks_RBV") # This record contains macro definitions for the attributes # ################################################################### -record(waveform, "S03SIM-EA-FSCN-02:CAM:NDAttributesMacros") +record(waveform, "BL03S-EA-FSCN-02:CAM:NDAttributesMacros") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -8450,7 +8450,7 @@ record(waveform, "S03SIM-EA-FSCN-02:CAM:NDAttributesMacros") # This record is the name of a file defining attributes # ################################################################### -record(waveform, "S03SIM-EA-FSCN-02:CAM:NDAttributesFile") +record(waveform, "BL03S-EA-FSCN-02:CAM:NDAttributesFile") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -8464,7 +8464,7 @@ record(waveform, "S03SIM-EA-FSCN-02:CAM:NDAttributesFile") # This record defines the status of reading attributes file # ################################################################### -record(mbbi, "S03SIM-EA-FSCN-02:CAM:NDAttributesStatus") +record(mbbi, "BL03S-EA-FSCN-02:CAM:NDAttributesStatus") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)ND_ATTRIBUTES_STATUS") @@ -8487,7 +8487,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:NDAttributesStatus") # Status of NDArrayPool - number of buffers, memory used etc. # ################################################################### -record(ai, "S03SIM-EA-FSCN-02:CAM:PoolMaxMem") +record(ai, "BL03S-EA-FSCN-02:CAM:PoolMaxMem") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)POOL_MAX_MEMORY") @@ -8497,59 +8497,59 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:PoolMaxMem") field(PINI, "YES") } -record(ai, "S03SIM-EA-FSCN-02:CAM:PoolUsedMem") +record(ai, "BL03S-EA-FSCN-02:CAM:PoolUsedMem") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)POOL_USED_MEMORY") field(PREC, "1") field(EGU, "MB") field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:PoolAllocBuffers") + field(FLNK, "BL03S-EA-FSCN-02:CAM:PoolAllocBuffers") info(autosaveFields, "SCAN") } -record(longin, "S03SIM-EA-FSCN-02:CAM:PoolAllocBuffers") +record(longin, "BL03S-EA-FSCN-02:CAM:PoolAllocBuffers") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:PoolFreeBuffers") + field(FLNK, "BL03S-EA-FSCN-02:CAM:PoolFreeBuffers") } -record(longin, "S03SIM-EA-FSCN-02:CAM:PoolFreeBuffers") +record(longin, "BL03S-EA-FSCN-02:CAM:PoolFreeBuffers") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:PoolUsedBuffers") + field(FLNK, "BL03S-EA-FSCN-02:CAM:PoolUsedBuffers") } -record(calc, "S03SIM-EA-FSCN-02:CAM:PoolUsedBuffers") +record(calc, "BL03S-EA-FSCN-02:CAM:PoolUsedBuffers") { - field(INPA, "S03SIM-EA-FSCN-02:CAM:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:CAM:PoolFreeBuffers NPP MS") + field(INPA, "BL03S-EA-FSCN-02:CAM:PoolAllocBuffers NPP MS") + field(INPB, "BL03S-EA-FSCN-02:CAM:PoolFreeBuffers NPP MS") field(CALC, "A-B") } -record(bo, "S03SIM-EA-FSCN-02:CAM:EmptyFreeList") +record(bo, "BL03S-EA-FSCN-02:CAM:EmptyFreeList") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)POOL_EMPTY_FREELIST") } -record(longin, "S03SIM-EA-FSCN-02:CAM:NumQueuedArrays") +record(longin, "BL03S-EA-FSCN-02:CAM:NumQueuedArrays") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)NUM_QUEUED_ARRAYS") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-02:CAM:MaxSizeX_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:MaxSizeX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)MAX_SIZE_X") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-02:CAM:MaxSizeY_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:MaxSizeY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)MAX_SIZE_Y") @@ -8561,7 +8561,7 @@ record(longin, "S03SIM-EA-FSCN-02:CAM:MaxSizeY_RBV") # including binning, region start and size # ################################################################### -record(longout, "S03SIM-EA-FSCN-02:CAM:BinX") +record(longout, "BL03S-EA-FSCN-02:CAM:BinX") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -8570,14 +8570,14 @@ record(longout, "S03SIM-EA-FSCN-02:CAM:BinX") info(autosaveFields, "VAL") } -record(longin, "S03SIM-EA-FSCN-02:CAM:BinX_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:BinX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)BIN_X") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-EA-FSCN-02:CAM:BinY") +record(longout, "BL03S-EA-FSCN-02:CAM:BinY") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -8586,14 +8586,14 @@ record(longout, "S03SIM-EA-FSCN-02:CAM:BinY") info(autosaveFields, "VAL") } -record(longin, "S03SIM-EA-FSCN-02:CAM:BinY_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:BinY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)BIN_Y") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-EA-FSCN-02:CAM:MinX") +record(longout, "BL03S-EA-FSCN-02:CAM:MinX") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -8602,14 +8602,14 @@ record(longout, "S03SIM-EA-FSCN-02:CAM:MinX") info(autosaveFields, "VAL") } -record(longin, "S03SIM-EA-FSCN-02:CAM:MinX_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:MinX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)MIN_X") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-EA-FSCN-02:CAM:MinY") +record(longout, "BL03S-EA-FSCN-02:CAM:MinY") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -8618,14 +8618,14 @@ record(longout, "S03SIM-EA-FSCN-02:CAM:MinY") info(autosaveFields, "VAL") } -record(longin, "S03SIM-EA-FSCN-02:CAM:MinY_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:MinY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)MIN_Y") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-EA-FSCN-02:CAM:SizeX") +record(longout, "BL03S-EA-FSCN-02:CAM:SizeX") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -8634,14 +8634,14 @@ record(longout, "S03SIM-EA-FSCN-02:CAM:SizeX") info(autosaveFields, "VAL") } -record(longin, "S03SIM-EA-FSCN-02:CAM:SizeX_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:SizeX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)SIZE_X") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-EA-FSCN-02:CAM:SizeY") +record(longout, "BL03S-EA-FSCN-02:CAM:SizeY") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -8650,14 +8650,14 @@ record(longout, "S03SIM-EA-FSCN-02:CAM:SizeY") info(autosaveFields, "VAL") } -record(longin, "S03SIM-EA-FSCN-02:CAM:SizeY_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:SizeY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)SIZE_Y") field(SCAN, "I/O Intr") } -record(bo, "S03SIM-EA-FSCN-02:CAM:ReverseX") +record(bo, "BL03S-EA-FSCN-02:CAM:ReverseX") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -8668,7 +8668,7 @@ record(bo, "S03SIM-EA-FSCN-02:CAM:ReverseX") info(autosaveFields, "VAL") } -record(bi, "S03SIM-EA-FSCN-02:CAM:ReverseX_RBV") +record(bi, "BL03S-EA-FSCN-02:CAM:ReverseX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)REVERSE_X") @@ -8677,7 +8677,7 @@ record(bi, "S03SIM-EA-FSCN-02:CAM:ReverseX_RBV") field(SCAN, "I/O Intr") } -record(bo, "S03SIM-EA-FSCN-02:CAM:ReverseY") +record(bo, "BL03S-EA-FSCN-02:CAM:ReverseY") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -8688,7 +8688,7 @@ record(bo, "S03SIM-EA-FSCN-02:CAM:ReverseY") info(autosaveFields, "VAL") } -record(bi, "S03SIM-EA-FSCN-02:CAM:ReverseY_RBV") +record(bi, "BL03S-EA-FSCN-02:CAM:ReverseY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)REVERSE_Y") @@ -8702,7 +8702,7 @@ record(bi, "S03SIM-EA-FSCN-02:CAM:ReverseY_RBV") # These records control the acquisition time and # # period # ################################################################### -record(ao, "S03SIM-EA-FSCN-02:CAM:AcquireTime") +record(ao, "BL03S-EA-FSCN-02:CAM:AcquireTime") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -8712,7 +8712,7 @@ record(ao, "S03SIM-EA-FSCN-02:CAM:AcquireTime") info(autosaveFields, "VAL") } -record(ai, "S03SIM-EA-FSCN-02:CAM:AcquireTime_RBV") +record(ai, "BL03S-EA-FSCN-02:CAM:AcquireTime_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)ACQ_TIME") @@ -8720,7 +8720,7 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:AcquireTime_RBV") field(SCAN, "I/O Intr") } -record(ao, "S03SIM-EA-FSCN-02:CAM:AcquirePeriod") +record(ao, "BL03S-EA-FSCN-02:CAM:AcquirePeriod") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -8730,7 +8730,7 @@ record(ao, "S03SIM-EA-FSCN-02:CAM:AcquirePeriod") info(autosaveFields, "VAL") } -record(ai, "S03SIM-EA-FSCN-02:CAM:AcquirePeriod_RBV") +record(ai, "BL03S-EA-FSCN-02:CAM:AcquirePeriod_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)ACQ_PERIOD") @@ -8738,7 +8738,7 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:AcquirePeriod_RBV") field(SCAN, "I/O Intr") } -record(ai, "S03SIM-EA-FSCN-02:CAM:TimeRemaining_RBV") +record(ai, "BL03S-EA-FSCN-02:CAM:TimeRemaining_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)TIME_REMAINING") @@ -8749,7 +8749,7 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:TimeRemaining_RBV") ################################################################### # These records control the gain # ################################################################### -record(ao, "S03SIM-EA-FSCN-02:CAM:Gain") +record(ao, "BL03S-EA-FSCN-02:CAM:Gain") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -8759,7 +8759,7 @@ record(ao, "S03SIM-EA-FSCN-02:CAM:Gain") info(autosaveFields, "VAL") } -record(ai, "S03SIM-EA-FSCN-02:CAM:Gain_RBV") +record(ai, "BL03S-EA-FSCN-02:CAM:Gain_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)GAIN") @@ -8770,7 +8770,7 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:Gain_RBV") ################################################################### # These records control the frame type # ################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:CAM:FrameType") +record(mbbo, "BL03S-EA-FSCN-02:CAM:FrameType") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -8787,7 +8787,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:FrameType") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:FrameType_RBV") +record(mbbi, "BL03S-EA-FSCN-02:CAM:FrameType_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)FRAME_TYPE") @@ -8805,7 +8805,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:FrameType_RBV") ################################################################### # These records control the acquisition mode # ################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:CAM:ImageMode") +record(mbbo, "BL03S-EA-FSCN-02:CAM:ImageMode") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -8820,7 +8820,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:ImageMode") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:ImageMode_RBV") +record(mbbi, "BL03S-EA-FSCN-02:CAM:ImageMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)IMAGE_MODE") @@ -8836,7 +8836,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:ImageMode_RBV") ################################################################### # These records control the trigger mode # ################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:CAM:TriggerMode") +record(mbbo, "BL03S-EA-FSCN-02:CAM:TriggerMode") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -8849,7 +8849,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:TriggerMode") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:TriggerMode_RBV") +record(mbbi, "BL03S-EA-FSCN-02:CAM:TriggerMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)TRIGGER_MODE") @@ -8864,7 +8864,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:TriggerMode_RBV") # These records control the number of exposures and # # number of images # ################################################################### -record(longout, "S03SIM-EA-FSCN-02:CAM:NumExposures") +record(longout, "BL03S-EA-FSCN-02:CAM:NumExposures") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -8873,20 +8873,20 @@ record(longout, "S03SIM-EA-FSCN-02:CAM:NumExposures") info(autosaveFields, "VAL") } -record(longin, "S03SIM-EA-FSCN-02:CAM:NumExposures_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:NumExposures_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)NEXPOSURES") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-02:CAM:NumExposuresCounter_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:NumExposuresCounter_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)NEXPOSURES_COUNTER") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-EA-FSCN-02:CAM:NumImages") +record(longout, "BL03S-EA-FSCN-02:CAM:NumImages") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -8895,14 +8895,14 @@ record(longout, "S03SIM-EA-FSCN-02:CAM:NumImages") info(autosaveFields, "VAL") } -record(longin, "S03SIM-EA-FSCN-02:CAM:NumImages_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:NumImages_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)NIMAGES") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-02:CAM:NumImagesCounter_RBV") +record(longin, "BL03S-EA-FSCN-02:CAM:NumImagesCounter_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)NIMAGES_COUNTER") @@ -8913,7 +8913,7 @@ record(longin, "S03SIM-EA-FSCN-02:CAM:NumImagesCounter_RBV") # These records are for the detector state # ################################################################### -record(mbbi, "S03SIM-EA-FSCN-02:CAM:DetectorState_RBV") +record(mbbi, "BL03S-EA-FSCN-02:CAM:DetectorState_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)STATUS") @@ -8958,7 +8958,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:DetectorState_RBV") ################################################################### # Status message. -record(waveform, "S03SIM-EA-FSCN-02:CAM:StatusMessage_RBV") +record(waveform, "BL03S-EA-FSCN-02:CAM:StatusMessage_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.CAM,0,1)STATUS_MESSAGE") @@ -8967,7 +8967,7 @@ record(waveform, "S03SIM-EA-FSCN-02:CAM:StatusMessage_RBV") field(SCAN, "I/O Intr") } -record(waveform, "S03SIM-EA-FSCN-02:CAM:StringToServer_RBV") +record(waveform, "BL03S-EA-FSCN-02:CAM:StringToServer_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.CAM,0,1)STRING_TO_SERVER") @@ -8976,7 +8976,7 @@ record(waveform, "S03SIM-EA-FSCN-02:CAM:StringToServer_RBV") field(SCAN, "I/O Intr") } -record(waveform, "S03SIM-EA-FSCN-02:CAM:StringFromServer_RBV") +record(waveform, "BL03S-EA-FSCN-02:CAM:StringFromServer_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.CAM,0,1)STRING_FROM_SERVER") @@ -8988,7 +8988,7 @@ record(waveform, "S03SIM-EA-FSCN-02:CAM:StringFromServer_RBV") ################################################################@### # This record can be used to force a read of the detector status # #################################################################### -record(bo,"S03SIM-EA-FSCN-02:CAM:ReadStatus") { +record(bo,"BL03S-EA-FSCN-02:CAM:ReadStatus") { field(DTYP,"asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)READ_STATUS") field(VAL, "1") @@ -9000,7 +9000,7 @@ record(bo,"S03SIM-EA-FSCN-02:CAM:ReadStatus") { # These records control the shutter # ################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:CAM:ShutterMode") +record(mbbo, "BL03S-EA-FSCN-02:CAM:ShutterMode") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -9015,7 +9015,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:ShutterMode") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:ShutterMode_RBV") +record(mbbi, "BL03S-EA-FSCN-02:CAM:ShutterMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)SHUTTER_MODE") @@ -9028,7 +9028,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:ShutterMode_RBV") field(SCAN, "I/O Intr") } -record(bo, "S03SIM-EA-FSCN-02:CAM:ShutterControl") +record(bo, "BL03S-EA-FSCN-02:CAM:ShutterControl") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -9038,7 +9038,7 @@ record(bo, "S03SIM-EA-FSCN-02:CAM:ShutterControl") field(VAL, "0") } -record(bi, "S03SIM-EA-FSCN-02:CAM:ShutterControl_RBV") +record(bi, "BL03S-EA-FSCN-02:CAM:ShutterControl_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)SHUTTER_CONTROL") @@ -9047,7 +9047,7 @@ record(bi, "S03SIM-EA-FSCN-02:CAM:ShutterControl_RBV") field(SCAN, "I/O Intr") } -record(bi, "S03SIM-EA-FSCN-02:CAM:ShutterStatus_RBV") +record(bi, "BL03S-EA-FSCN-02:CAM:ShutterStatus_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)SHUTTER_STATUS") @@ -9058,7 +9058,7 @@ record(bi, "S03SIM-EA-FSCN-02:CAM:ShutterStatus_RBV") field(SCAN, "I/O Intr") } -record(ao, "S03SIM-EA-FSCN-02:CAM:ShutterOpenDelay") +record(ao, "BL03S-EA-FSCN-02:CAM:ShutterOpenDelay") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -9068,7 +9068,7 @@ record(ao, "S03SIM-EA-FSCN-02:CAM:ShutterOpenDelay") info(autosaveFields, "VAL") } -record(ai, "S03SIM-EA-FSCN-02:CAM:ShutterOpenDelay_RBV") +record(ai, "BL03S-EA-FSCN-02:CAM:ShutterOpenDelay_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)SHUTTER_OPEN_DELAY") @@ -9076,7 +9076,7 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:ShutterOpenDelay_RBV") field(SCAN, "I/O Intr") } -record(ao, "S03SIM-EA-FSCN-02:CAM:ShutterCloseDelay") +record(ao, "BL03S-EA-FSCN-02:CAM:ShutterCloseDelay") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -9086,7 +9086,7 @@ record(ao, "S03SIM-EA-FSCN-02:CAM:ShutterCloseDelay") info(autosaveFields, "VAL") } -record(ai, "S03SIM-EA-FSCN-02:CAM:ShutterCloseDelay_RBV") +record(ai, "BL03S-EA-FSCN-02:CAM:ShutterCloseDelay_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)SHUTTER_CLOSE_DELAY") @@ -9095,7 +9095,7 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:ShutterCloseDelay_RBV") } # This record changes state when the driver opens/closes an EPICS shutter -record(bi, "S03SIM-EA-FSCN-02:CAM:ShutterControlEPICS") +record(bi, "BL03S-EA-FSCN-02:CAM:ShutterControlEPICS") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)SHUTTER_CONTROL_EPICS") @@ -9104,18 +9104,18 @@ record(bi, "S03SIM-EA-FSCN-02:CAM:ShutterControlEPICS") field(ONAM, "Open") field(OSV, "MINOR") field(SCAN, "I/O Intr") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ShutterFanout.PROC") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ShutterFanout.PROC") } -record(fanout, "S03SIM-EA-FSCN-02:CAM:ShutterFanout") +record(fanout, "BL03S-EA-FSCN-02:CAM:ShutterFanout") { - field(LNK1, "S03SIM-EA-FSCN-02:CAM:ShutterOpenEPICS.PROC PP MS") - field(LNK2, "S03SIM-EA-FSCN-02:CAM:ShutterCloseEPICS.PROC PP MS") + field(LNK1, "BL03S-EA-FSCN-02:CAM:ShutterOpenEPICS.PROC PP MS") + field(LNK2, "BL03S-EA-FSCN-02:CAM:ShutterCloseEPICS.PROC PP MS") } -record(calcout, "S03SIM-EA-FSCN-02:CAM:ShutterOpenEPICS") +record(calcout, "BL03S-EA-FSCN-02:CAM:ShutterOpenEPICS") { - field(INPA, "S03SIM-EA-FSCN-02:CAM:ShutterControlEPICS.VAL NPP NMS") + field(INPA, "BL03S-EA-FSCN-02:CAM:ShutterControlEPICS.VAL NPP NMS") field(CALC, "A") field(OOPT, "Transition To Non-zero") field(DOPT, "Use OCAL") @@ -9124,9 +9124,9 @@ record(calcout, "S03SIM-EA-FSCN-02:CAM:ShutterOpenEPICS") info(autosaveFields, "OUT OCAL") } -record(calcout, "S03SIM-EA-FSCN-02:CAM:ShutterCloseEPICS") +record(calcout, "BL03S-EA-FSCN-02:CAM:ShutterCloseEPICS") { - field(INPA, "S03SIM-EA-FSCN-02:CAM:ShutterControlEPICS.VAL NPP NMS") + field(INPA, "BL03S-EA-FSCN-02:CAM:ShutterControlEPICS.VAL NPP NMS") field(CALC, "A") field(OOPT, "Transition To Zero") field(DOPT, "Use OCAL") @@ -9135,7 +9135,7 @@ record(calcout, "S03SIM-EA-FSCN-02:CAM:ShutterCloseEPICS") info(autosaveFields, "OUT OCAL") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:ShutterStatusEPICS_RBV") +record(mbbi, "BL03S-EA-FSCN-02:CAM:ShutterStatusEPICS_RBV") { field(DTYP, "Raw Soft Channel") field(INP, "test CP MS") @@ -9152,7 +9152,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:ShutterStatusEPICS_RBV") # These records control the detector temperature # ################################################################### -record(ao, "S03SIM-EA-FSCN-02:CAM:Temperature") +record(ao, "BL03S-EA-FSCN-02:CAM:Temperature") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -9163,7 +9163,7 @@ record(ao, "S03SIM-EA-FSCN-02:CAM:Temperature") info(autosaveFields, "VAL") } -record(ai, "S03SIM-EA-FSCN-02:CAM:Temperature_RBV") +record(ai, "BL03S-EA-FSCN-02:CAM:Temperature_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)TEMPERATURE") @@ -9172,7 +9172,7 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:Temperature_RBV") field(SCAN, "I/O Intr") } -record(ai, "S03SIM-EA-FSCN-02:CAM:TemperatureActual") +record(ai, "BL03S-EA-FSCN-02:CAM:TemperatureActual") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)TEMPERATURE_ACTUAL") @@ -9190,21 +9190,21 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:TemperatureActual") # Some cameras use both AcquisitionFrameRate and AcquirePeriod. # Make AcquirePeriod update if FrameRate is changed. -record(ao, "S03SIM-EA-FSCN-02:CAM:AcquirePeriod") +record(ao, "BL03S-EA-FSCN-02:CAM:AcquirePeriod") { info(asyn:READBACK, "1") } # This record hides the fact that some cameras use FrameRate and some use FrameRateAbs # This is not PINI=YES because AcquirePeriod is and they control the same thing -record(ao, "S03SIM-EA-FSCN-02:CAM:FrameRate") +record(ao, "BL03S-EA-FSCN-02:CAM:FrameRate") { field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN2.CAM 0)GC_FRAMERATE") field(PREC, "3") } -record(ai, "S03SIM-EA-FSCN-02:CAM:FrameRate_RBV") +record(ai, "BL03S-EA-FSCN-02:CAM:FrameRate_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM 0)GC_FRAMERATE") @@ -9214,7 +9214,7 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:FrameRate_RBV") # Some cameras (Basler, Point Grey, FLIR) use AcquisitionFrameRateEnable or AcquisitionFrameRateEnabled # This record hides the fact that the feature name may differ; the record name is always the same. -record(bo, "S03SIM-EA-FSCN-02:CAM:FrameRateEnable") +record(bo, "BL03S-EA-FSCN-02:CAM:FrameRateEnable") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -9223,7 +9223,7 @@ record(bo, "S03SIM-EA-FSCN-02:CAM:FrameRateEnable") field(ONAM, "Yes") } -record(bi, "S03SIM-EA-FSCN-02:CAM:FrameRateEnable_RBV") +record(bi, "BL03S-EA-FSCN-02:CAM:FrameRateEnable_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM 0)GC_FRAMERATE_ENABLE") @@ -9233,7 +9233,7 @@ record(bi, "S03SIM-EA-FSCN-02:CAM:FrameRateEnable_RBV") } # This record is used to ensure there is a record for TriggerSource even if there is no such GenICam feature -record(mbbo, "S03SIM-EA-FSCN-02:CAM:TriggerSource") +record(mbbo, "BL03S-EA-FSCN-02:CAM:TriggerSource") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -9242,7 +9242,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:TriggerSource") field(ZRVL, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:TriggerSource_RBV") +record(mbbi, "BL03S-EA-FSCN-02:CAM:TriggerSource_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM 0)GC_TRIGGER_SOURCE") @@ -9252,7 +9252,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:TriggerSource_RBV") } # This record is used to ensure there is a record for TriggerOverlap even if there is no such GenICam feature -record(mbbo, "S03SIM-EA-FSCN-02:CAM:TriggerOverlap") +record(mbbo, "BL03S-EA-FSCN-02:CAM:TriggerOverlap") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -9261,7 +9261,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:TriggerOverlap") field(ZRVL, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:TriggerOverlap_RBV") +record(mbbi, "BL03S-EA-FSCN-02:CAM:TriggerOverlap_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM 0)GC_TRIGGER_OVERLAP") @@ -9271,7 +9271,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:TriggerOverlap_RBV") } # This record is used to ensure there is a record for TriggerSoftware even if there is no such GenICam feature -record(bo, "S03SIM-EA-FSCN-02:CAM:TriggerSoftware") +record(bo, "BL03S-EA-FSCN-02:CAM:TriggerSoftware") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -9281,7 +9281,7 @@ record(bo, "S03SIM-EA-FSCN-02:CAM:TriggerSoftware") } # This record is used to ensure there is a record for ExposureMode even if there is no such GenICam feature -record(mbbo, "S03SIM-EA-FSCN-02:CAM:ExposureMode") +record(mbbo, "BL03S-EA-FSCN-02:CAM:ExposureMode") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -9290,7 +9290,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:ExposureMode") field(ZRVL, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:ExposureMode_RBV") +record(mbbi, "BL03S-EA-FSCN-02:CAM:ExposureMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM 0)GC_EXPOSURE_MODE") @@ -9300,7 +9300,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:ExposureMode_RBV") } # This record is used to ensure there is a record for ExposureAuto even if there is no such GenICam feature -record(mbbo, "S03SIM-EA-FSCN-02:CAM:ExposureAuto") +record(mbbo, "BL03S-EA-FSCN-02:CAM:ExposureAuto") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -9309,7 +9309,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:ExposureAuto") field(ZRVL, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:ExposureAuto_RBV") +record(mbbi, "BL03S-EA-FSCN-02:CAM:ExposureAuto_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM 0)GC_EXPOSURE_AUTO") @@ -9319,7 +9319,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:ExposureAuto_RBV") } # This record is used to ensure there is a record for GainAuto even if there is no such GenICam feature -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GainAuto") +record(mbbo, "BL03S-EA-FSCN-02:CAM:GainAuto") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -9328,7 +9328,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:GainAuto") field(ZRVL, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GainAuto_RBV") +record(mbbi, "BL03S-EA-FSCN-02:CAM:GainAuto_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM 0)GC_GAIN_AUTO") @@ -9338,7 +9338,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:GainAuto_RBV") } # This record is used to ensure there is a record for PixelFormat even if there is no such GenICam feature -record(mbbo, "S03SIM-EA-FSCN-02:CAM:PixelFormat") +record(mbbo, "BL03S-EA-FSCN-02:CAM:PixelFormat") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -9347,7 +9347,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:PixelFormat") field(ZRVL, "0") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:PixelFormat_RBV") +record(mbbi, "BL03S-EA-FSCN-02:CAM:PixelFormat_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM 0)GC_PIXEL_FORMAT") @@ -9356,7 +9356,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:PixelFormat_RBV") field(SCAN, "I/O Intr") } -record(ai, "S03SIM-EA-FSCN-02:CAM:ARFramesCompleted") +record(ai, "BL03S-EA-FSCN-02:CAM:ARFramesCompleted") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_COMPLETED") @@ -9364,7 +9364,7 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:ARFramesCompleted") info(autosaveFields, "DESC LLSV LOLO LOW LSV") } -record(ai, "S03SIM-EA-FSCN-02:CAM:ARFrameFailures") +record(ai, "BL03S-EA-FSCN-02:CAM:ARFrameFailures") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_FAILURES") @@ -9372,7 +9372,7 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:ARFrameFailures") info(autosaveFields, "DESC HHSV HIHI HIGH HSV") } -record(ai, "S03SIM-EA-FSCN-02:CAM:ARFrameUnderruns") +record(ai, "BL03S-EA-FSCN-02:CAM:ARFrameUnderruns") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_UNDERRUNS") @@ -9380,7 +9380,7 @@ record(ai, "S03SIM-EA-FSCN-02:CAM:ARFrameUnderruns") info(autosaveFields, "DESC HHSV HIHI HIGH HSV") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ARMissingPackets") +record(longin, "BL03S-EA-FSCN-02:CAM:ARMissingPackets") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_MISSING_PKTS") @@ -9388,7 +9388,7 @@ record(longin, "S03SIM-EA-FSCN-02:CAM:ARMissingPackets") info(autosaveFields, "DESC HHSV HIHI HIGH HSV") } -record(longin, "S03SIM-EA-FSCN-02:CAM:ARResentPackets") +record(longin, "BL03S-EA-FSCN-02:CAM:ARResentPackets") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_RESENT_PKTS") @@ -9396,7 +9396,7 @@ record(longin, "S03SIM-EA-FSCN-02:CAM:ARResentPackets") info(autosaveFields, "DESC HHSV HIHI HIGH HSV") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARPacketResendEnable") +record(mbbo, "BL03S-EA-FSCN-02:CAM:ARPacketResendEnable") { field(DESC, "Packet resend enable") field(DTYP, "asynInt32") @@ -9410,7 +9410,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARPacketResendEnable") info(autosaveFields, "DESC ONSV ZRSV PINI VAL") } -record(longout, "S03SIM-EA-FSCN-02:CAM:ARPacketTimeout") +record(longout, "BL03S-EA-FSCN-02:CAM:ARPacketTimeout") { field(DESC, "Delay in us before packet resend request") field(DTYP, "asynInt32") @@ -9421,7 +9421,7 @@ record(longout, "S03SIM-EA-FSCN-02:CAM:ARPacketTimeout") info(autosaveFields, "DESC HHSV HIHI HIGH HSV LLSV LOLO LOW LSV PINI VAL") } -record(longout, "S03SIM-EA-FSCN-02:CAM:ARFrameRetention") +record(longout, "BL03S-EA-FSCN-02:CAM:ARFrameRetention") { field(DESC, "Frame timeout in us after last packet") field(DTYP, "asynInt32") @@ -9432,14 +9432,14 @@ record(longout, "S03SIM-EA-FSCN-02:CAM:ARFrameRetention") info(autosaveFields, "DESC HHSV HIHI HIGH HSV LLSV LOLO LOW LSV PINI VAL") } -record(longout, "S03SIM-EA-FSCN-02:CAM:ARResetCamera") +record(longout, "BL03S-EA-FSCN-02:CAM:ARResetCamera") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_RESET") - field(FLNK, "S03SIM-EA-FSCN-02:CAM:ARConnectCamera") + field(FLNK, "BL03S-EA-FSCN-02:CAM:ARConnectCamera") } -record(longout, "S03SIM-EA-FSCN-02:CAM:ARConnectCamera") +record(longout, "BL03S-EA-FSCN-02:CAM:ARConnectCamera") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_CONNECTION") @@ -9447,16 +9447,16 @@ record(longout, "S03SIM-EA-FSCN-02:CAM:ARConnectCamera") field(PINI, "1") } -record(calcout, "S03SIM-EA-FSCN-02:CAM:ARCheckConnection") +record(calcout, "BL03S-EA-FSCN-02:CAM:ARCheckConnection") { field(SCAN, "1 second") - field(INPA, "S03SIM-EA-FSCN-02:CAM:ARConnectCamera.SEVR CP") + field(INPA, "BL03S-EA-FSCN-02:CAM:ARConnectCamera.SEVR CP") field(CALC, "A==0") field(OOPT, "When Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:CAM:ARConnectCamera.PROC PP") + field(OUT, "BL03S-EA-FSCN-02:CAM:ARConnectCamera.PROC PP") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:ARConvertPixelFormat_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:ARConvertPixelFormat_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_CONVERT_PIXEL_FORMAT") field(ZRST, "Mono16Low") @@ -9470,7 +9470,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:ARConvertPixelFormat_RBV") { ## When unpacking Mono12Packed or Mono12p selects whether 16-bit output is ## left shifted by 4 bits (Mono16High) or not (Mono16Low) -record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARConvertPixelFormat") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:ARConvertPixelFormat") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_CONVERT_PIXEL_FORMAT") field(ZRST, "Mono16Low") @@ -9482,7 +9482,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARConvertPixelFormat") { } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:ARShiftDir_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:ARShiftDir_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_SHIFT_DIR") field(ZRST, "None") @@ -9496,7 +9496,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:ARShiftDir_RBV") { } ## Select no shift, left shift, or right shift when reading data -record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARShiftDir") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:ARShiftDir") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_SHIFT_DIR") field(ZRST, "None") @@ -9509,7 +9509,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARShiftDir") { info(autosaveFields, "DESC ZRSV ONSV VAL") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:ARShiftBits_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:CAM:ARShiftBits_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.CAM,0,1)ARAVIS_SHIFT_BITS") field(ZRST, "1") @@ -9533,7 +9533,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:CAM:ARShiftBits_RBV") { } ## Selects how many bits to shift left or right when reading data -record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARShiftBits") { +record(mbbo, "BL03S-EA-FSCN-02:CAM:ARShiftBits") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.CAM,0,1)ARAVIS_SHIFT_BITS") field(ZRST, "1") @@ -9556,160 +9556,160 @@ record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARShiftBits") { info(autosaveFields, "DESC ZRSV ONSV VAL") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_ExpAutoTarget_RBV") { - alias("S03SIM-EA-FSCN-01:CAM:ExposureAutoTarg_RBV") +record(ai, "BL03S-EA-FSCN-01:CAM:GC_ExpAutoTarget_RBV") { + alias("BL03S-EA-FSCN-01:CAM:ExposureAutoTarg_RBV") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_ExpAutoTarget") { - alias("S03SIM-EA-FSCN-01:CAM:ExposureAutoTarg") +record(ao, "BL03S-EA-FSCN-01:CAM:GC_ExpAutoTarget") { + alias("BL03S-EA-FSCN-01:CAM:ExposureAutoTarg") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoTarget_RBV") { - alias("S03SIM-EA-FSCN-01:CAM:GainAutoTarget_RBV") +record(ai, "BL03S-EA-FSCN-01:CAM:GC_GainAutoTarget_RBV") { + alias("BL03S-EA-FSCN-01:CAM:GainAutoTarget_RBV") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_GainAutoTarget") { - alias("S03SIM-EA-FSCN-01:CAM:GainAutoTarget") +record(ao, "BL03S-EA-FSCN-01:CAM:GC_GainAutoTarget") { + alias("BL03S-EA-FSCN-01:CAM:GainAutoTarget") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_BalRatioSelector_RBV") { - alias("S03SIM-EA-FSCN-01:CAM:BalanceRatioSele_RBV") +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_BalRatioSelector_RBV") { + alias("BL03S-EA-FSCN-01:CAM:BalanceRatioSele_RBV") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_BalRatioSelector") { - alias("S03SIM-EA-FSCN-01:CAM:BalanceRatioSele") +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_BalRatioSelector") { + alias("BL03S-EA-FSCN-01:CAM:BalanceRatioSele") } -record(ai, "S03SIM-EA-FSCN-01:CAM:GC_BalanceRatioAbs_RBV") { - alias("S03SIM-EA-FSCN-01:CAM:BalanceRatioAbs_RBV") +record(ai, "BL03S-EA-FSCN-01:CAM:GC_BalanceRatioAbs_RBV") { + alias("BL03S-EA-FSCN-01:CAM:BalanceRatioAbs_RBV") } -record(ao, "S03SIM-EA-FSCN-01:CAM:GC_BalanceRatioAbs") { - alias("S03SIM-EA-FSCN-01:CAM:BalanceRatioAbs") +record(ao, "BL03S-EA-FSCN-01:CAM:GC_BalanceRatioAbs") { + alias("BL03S-EA-FSCN-01:CAM:BalanceRatioAbs") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:GC_BalanceWhiteAuto_RBV") { - alias("S03SIM-EA-FSCN-01:CAM:BalanceWhiteAut0_RBV") +record(mbbi, "BL03S-EA-FSCN-01:CAM:GC_BalanceWhiteAuto_RBV") { + alias("BL03S-EA-FSCN-01:CAM:BalanceWhiteAut0_RBV") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:GC_BalanceWhiteAuto") { - alias("S03SIM-EA-FSCN-01:CAM:BalanceWhiteAut0") +record(mbbo, "BL03S-EA-FSCN-01:CAM:GC_BalanceWhiteAuto") { + alias("BL03S-EA-FSCN-01:CAM:BalanceWhiteAut0") } -record(ai, "S03SIM-EA-FSCN-01:CAM:ARFramesCompleted") +record(ai, "BL03S-EA-FSCN-01:CAM:ARFramesCompleted") { - alias("S03SIM-EA-FSCN-01:CAM:COMPLETED_RBV") + alias("BL03S-EA-FSCN-01:CAM:COMPLETED_RBV") } -record(ai, "S03SIM-EA-FSCN-01:CAM:ARFrameFailures") +record(ai, "BL03S-EA-FSCN-01:CAM:ARFrameFailures") { - alias("S03SIM-EA-FSCN-01:CAM:FAILURES_RBV") + alias("BL03S-EA-FSCN-01:CAM:FAILURES_RBV") } -record(ai, "S03SIM-EA-FSCN-01:CAM:ARFrameUnderruns") +record(ai, "BL03S-EA-FSCN-01:CAM:ARFrameUnderruns") { - alias("S03SIM-EA-FSCN-01:CAM:UNDERRUNS_RBV") + alias("BL03S-EA-FSCN-01:CAM:UNDERRUNS_RBV") } -record(longout, "S03SIM-EA-FSCN-01:CAM:ARResetCamera") +record(longout, "BL03S-EA-FSCN-01:CAM:ARResetCamera") { - alias("S03SIM-EA-FSCN-01:CAM:RESET") + alias("BL03S-EA-FSCN-01:CAM:RESET") } -record(mbbi, "S03SIM-EA-FSCN-01:CAM:ARLeftShift_RBV") { - alias("S03SIM-EA-FSCN-01:CAM:LEFTSHIFT_RBV") +record(mbbi, "BL03S-EA-FSCN-01:CAM:ARLeftShift_RBV") { + alias("BL03S-EA-FSCN-01:CAM:LEFTSHIFT_RBV") } -record(mbbo, "S03SIM-EA-FSCN-01:CAM:ARLeftShift") { - alias("S03SIM-EA-FSCN-01:CAM:LEFTSHIFT") +record(mbbo, "BL03S-EA-FSCN-01:CAM:ARLeftShift") { + alias("BL03S-EA-FSCN-01:CAM:LEFTSHIFT") } -record(bi, "S03SIM-EA-FSCN-01:CAM:ARHWImageMode_RBV") { - alias("S03SIM-EA-FSCN-01:CAM:HWIMAGEMODE_RBV") +record(bi, "BL03S-EA-FSCN-01:CAM:ARHWImageMode_RBV") { + alias("BL03S-EA-FSCN-01:CAM:HWIMAGEMODE_RBV") } -record(bo, "S03SIM-EA-FSCN-01:CAM:ARHWImageMode") { - alias("S03SIM-EA-FSCN-01:CAM:HWIMAGEMODE") +record(bo, "BL03S-EA-FSCN-01:CAM:ARHWImageMode") { + alias("BL03S-EA-FSCN-01:CAM:HWIMAGEMODE") } # Macros: #% macro, P, Device Prefix #% macro, R, Device Suffix -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_ExpAutoTarget_RBV") { - alias("S03SIM-EA-FSCN-02:CAM:ExposureAutoTarg_RBV") +record(ai, "BL03S-EA-FSCN-02:CAM:GC_ExpAutoTarget_RBV") { + alias("BL03S-EA-FSCN-02:CAM:ExposureAutoTarg_RBV") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_ExpAutoTarget") { - alias("S03SIM-EA-FSCN-02:CAM:ExposureAutoTarg") +record(ao, "BL03S-EA-FSCN-02:CAM:GC_ExpAutoTarget") { + alias("BL03S-EA-FSCN-02:CAM:ExposureAutoTarg") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoTarget_RBV") { - alias("S03SIM-EA-FSCN-02:CAM:GainAutoTarget_RBV") +record(ai, "BL03S-EA-FSCN-02:CAM:GC_GainAutoTarget_RBV") { + alias("BL03S-EA-FSCN-02:CAM:GainAutoTarget_RBV") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_GainAutoTarget") { - alias("S03SIM-EA-FSCN-02:CAM:GainAutoTarget") +record(ao, "BL03S-EA-FSCN-02:CAM:GC_GainAutoTarget") { + alias("BL03S-EA-FSCN-02:CAM:GainAutoTarget") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_BalRatioSelector_RBV") { - alias("S03SIM-EA-FSCN-02:CAM:BalanceRatioSele_RBV") +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_BalRatioSelector_RBV") { + alias("BL03S-EA-FSCN-02:CAM:BalanceRatioSele_RBV") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_BalRatioSelector") { - alias("S03SIM-EA-FSCN-02:CAM:BalanceRatioSele") +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_BalRatioSelector") { + alias("BL03S-EA-FSCN-02:CAM:BalanceRatioSele") } -record(ai, "S03SIM-EA-FSCN-02:CAM:GC_BalanceRatioAbs_RBV") { - alias("S03SIM-EA-FSCN-02:CAM:BalanceRatioAbs_RBV") +record(ai, "BL03S-EA-FSCN-02:CAM:GC_BalanceRatioAbs_RBV") { + alias("BL03S-EA-FSCN-02:CAM:BalanceRatioAbs_RBV") } -record(ao, "S03SIM-EA-FSCN-02:CAM:GC_BalanceRatioAbs") { - alias("S03SIM-EA-FSCN-02:CAM:BalanceRatioAbs") +record(ao, "BL03S-EA-FSCN-02:CAM:GC_BalanceRatioAbs") { + alias("BL03S-EA-FSCN-02:CAM:BalanceRatioAbs") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:GC_BalanceWhiteAuto_RBV") { - alias("S03SIM-EA-FSCN-02:CAM:BalanceWhiteAut0_RBV") +record(mbbi, "BL03S-EA-FSCN-02:CAM:GC_BalanceWhiteAuto_RBV") { + alias("BL03S-EA-FSCN-02:CAM:BalanceWhiteAut0_RBV") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:GC_BalanceWhiteAuto") { - alias("S03SIM-EA-FSCN-02:CAM:BalanceWhiteAut0") +record(mbbo, "BL03S-EA-FSCN-02:CAM:GC_BalanceWhiteAuto") { + alias("BL03S-EA-FSCN-02:CAM:BalanceWhiteAut0") } -record(ai, "S03SIM-EA-FSCN-02:CAM:ARFramesCompleted") +record(ai, "BL03S-EA-FSCN-02:CAM:ARFramesCompleted") { - alias("S03SIM-EA-FSCN-02:CAM:COMPLETED_RBV") + alias("BL03S-EA-FSCN-02:CAM:COMPLETED_RBV") } -record(ai, "S03SIM-EA-FSCN-02:CAM:ARFrameFailures") +record(ai, "BL03S-EA-FSCN-02:CAM:ARFrameFailures") { - alias("S03SIM-EA-FSCN-02:CAM:FAILURES_RBV") + alias("BL03S-EA-FSCN-02:CAM:FAILURES_RBV") } -record(ai, "S03SIM-EA-FSCN-02:CAM:ARFrameUnderruns") +record(ai, "BL03S-EA-FSCN-02:CAM:ARFrameUnderruns") { - alias("S03SIM-EA-FSCN-02:CAM:UNDERRUNS_RBV") + alias("BL03S-EA-FSCN-02:CAM:UNDERRUNS_RBV") } -record(longout, "S03SIM-EA-FSCN-02:CAM:ARResetCamera") +record(longout, "BL03S-EA-FSCN-02:CAM:ARResetCamera") { - alias("S03SIM-EA-FSCN-02:CAM:RESET") + alias("BL03S-EA-FSCN-02:CAM:RESET") } -record(mbbi, "S03SIM-EA-FSCN-02:CAM:ARLeftShift_RBV") { - alias("S03SIM-EA-FSCN-02:CAM:LEFTSHIFT_RBV") +record(mbbi, "BL03S-EA-FSCN-02:CAM:ARLeftShift_RBV") { + alias("BL03S-EA-FSCN-02:CAM:LEFTSHIFT_RBV") } -record(mbbo, "S03SIM-EA-FSCN-02:CAM:ARLeftShift") { - alias("S03SIM-EA-FSCN-02:CAM:LEFTSHIFT") +record(mbbo, "BL03S-EA-FSCN-02:CAM:ARLeftShift") { + alias("BL03S-EA-FSCN-02:CAM:LEFTSHIFT") } -record(bi, "S03SIM-EA-FSCN-02:CAM:ARHWImageMode_RBV") { - alias("S03SIM-EA-FSCN-02:CAM:HWIMAGEMODE_RBV") +record(bi, "BL03S-EA-FSCN-02:CAM:ARHWImageMode_RBV") { + alias("BL03S-EA-FSCN-02:CAM:HWIMAGEMODE_RBV") } -record(bo, "S03SIM-EA-FSCN-02:CAM:ARHWImageMode") { - alias("S03SIM-EA-FSCN-02:CAM:HWIMAGEMODE") +record(bo, "BL03S-EA-FSCN-02:CAM:ARHWImageMode") { + alias("BL03S-EA-FSCN-02:CAM:HWIMAGEMODE") } # Macros: #% macro, P, Device Prefix @@ -9730,51 +9730,51 @@ record(bo, "S03SIM-EA-FSCN-02:CAM:ARHWImageMode") { #% macro, TIMEOUT, Asyn timeout # This associates the template with an edm screen -# % gui, FSCN1.pva, edmtab, NDPvaPlugin.edl, P=S03SIM-EA-FSCN-01,R=:PVA: +# % gui, FSCN1.pva, edmtab, NDPvaPlugin.edl, P=BL03S-EA-FSCN-01,R=:PVA: # This associates a BOY screen with the template -# % gui, FSCN1.pva, boydetail,ADApp_opi/dls/pva_detail.opi, P=S03SIM-EA-FSCN-01, R=:PVA:, DESC=PVAccess -# % gui, FSCN1.pva, boyembed, ADApp_opi/dls/pva_embed_box.opi, P=S03SIM-EA-FSCN-01, R=:PVA:, DESC=PVAccess -# % gui, FSCN1.pva, boyembed, ADApp_opi/dls/pva_embed.opi, P=S03SIM-EA-FSCN-01, R=:PVA:, DESC=PVAccess +# % gui, FSCN1.pva, boydetail,ADApp_opi/dls/pva_detail.opi, P=BL03S-EA-FSCN-01, R=:PVA:, DESC=PVAccess +# % gui, FSCN1.pva, boyembed, ADApp_opi/dls/pva_embed_box.opi, P=BL03S-EA-FSCN-01, R=:PVA:, DESC=PVAccess +# % gui, FSCN1.pva, boyembed, ADApp_opi/dls/pva_embed.opi, P=BL03S-EA-FSCN-01, R=:PVA:, DESC=PVAccess # Info # % gui, FSCN1.pva, groupHeading, Info -# % gui, FSCN1.pva, readback, Port name, S03SIM-EA-FSCN-01:PVA:PortName_RBV -# % gui, FSCN1.pva, readback, Plugin type, S03SIM-EA-FSCN-01:PVA:PluginType_RBV +# % gui, FSCN1.pva, readback, Port name, BL03S-EA-FSCN-01:PVA:PortName_RBV +# % gui, FSCN1.pva, readback, Plugin type, BL03S-EA-FSCN-01:PVA:PluginType_RBV # Input -# % gui, FSCN1.pva, demandString, Input, S03SIM-EA-FSCN-01:PVA:NDArrayPort -# % gui, FSCN1.pva, readback, Input, S03SIM-EA-FSCN-01:PVA:NDArrayPort_RBV +# % gui, FSCN1.pva, demandString, Input, BL03S-EA-FSCN-01:PVA:NDArrayPort +# % gui, FSCN1.pva, readback, Input, BL03S-EA-FSCN-01:PVA:NDArrayPort_RBV # % gui, FSCN1.pva, groupHeading, Callback -# % gui, FSCN1.pva, enum, Callbacks, S03SIM-EA-FSCN-01:PVA:EnableCallbacks -# % gui, FSCN1.pva, statusbits, Callbacks, S03SIM-EA-FSCN-01:PVA:EnableCallbacks_RBV -# % gui, FSCN1.pva, demand, Min Callback Time, S03SIM-EA-FSCN-01:PVA:MinCallbackTime -# % gui, FSCN1.pva, readback, Min Callback Time, S03SIM-EA-FSCN-01:PVA:MinCallbackTime_RBV -# % gui, FSCN1.pva, enum, Block Callbacks, S03SIM-EA-FSCN-01:PVA:BlockingCallbacks -# % gui, FSCN1.pva, statusbits, Block Callbacks, S03SIM-EA-FSCN-01:PVA:BlockingCallbacks_RBV +# % gui, FSCN1.pva, enum, Callbacks, BL03S-EA-FSCN-01:PVA:EnableCallbacks +# % gui, FSCN1.pva, statusbits, Callbacks, BL03S-EA-FSCN-01:PVA:EnableCallbacks_RBV +# % gui, FSCN1.pva, demand, Min Callback Time, BL03S-EA-FSCN-01:PVA:MinCallbackTime +# % gui, FSCN1.pva, readback, Min Callback Time, BL03S-EA-FSCN-01:PVA:MinCallbackTime_RBV +# % gui, FSCN1.pva, enum, Block Callbacks, BL03S-EA-FSCN-01:PVA:BlockingCallbacks +# % gui, FSCN1.pva, statusbits, Block Callbacks, BL03S-EA-FSCN-01:PVA:BlockingCallbacks_RBV # % gui, FSCN1.pva, groupHeading, Counters -# % gui, FSCN1.pva, demand, Array Counter, S03SIM-EA-FSCN-01:PVA:ArrayCounter -# % gui, FSCN1.pva, readback, Array Counter, S03SIM-EA-FSCN-01:PVA:ArrayCounter_RBV -# % gui, FSCN1.pva, readback, Array Rate (fps), S03SIM-EA-FSCN-01:PVA:ArrayRate_RBV -# % gui, FSCN1.pva, readback, Queue Use, S03SIM-EA-FSCN-01:PVA:QueueUse -# % gui, FSCN1.pva, readback, Queue Size, S03SIM-EA-FSCN-01:PVA:QueueSize -# % gui, FSCN1.pva, demand, Dropped Arrays, S03SIM-EA-FSCN-01:PVA:DroppedArrays -# % gui, FSCN1.pva, readback, Dropped Arrays, S03SIM-EA-FSCN-01:PVA:DroppedArrays_RBV +# % gui, FSCN1.pva, demand, Array Counter, BL03S-EA-FSCN-01:PVA:ArrayCounter +# % gui, FSCN1.pva, readback, Array Counter, BL03S-EA-FSCN-01:PVA:ArrayCounter_RBV +# % gui, FSCN1.pva, readback, Array Rate (fps), BL03S-EA-FSCN-01:PVA:ArrayRate_RBV +# % gui, FSCN1.pva, readback, Queue Use, BL03S-EA-FSCN-01:PVA:QueueUse +# % gui, FSCN1.pva, readback, Queue Size, BL03S-EA-FSCN-01:PVA:QueueSize +# % gui, FSCN1.pva, demand, Dropped Arrays, BL03S-EA-FSCN-01:PVA:DroppedArrays +# % gui, FSCN1.pva, readback, Dropped Arrays, BL03S-EA-FSCN-01:PVA:DroppedArrays_RBV # % gui, FSCN1.pva, groupHeading, Array Settings -# % gui, FSCN1.pva, readback, Num Dimensions, S03SIM-EA-FSCN-01:PVA:NDimensions_RBV -# % gui, FSCN1.pva, readback, Dim 0 Size, S03SIM-EA-FSCN-01:PVA:ArraySize0_RBV -# % gui, FSCN1.pva, readback, Dim 1 Size, S03SIM-EA-FSCN-01:PVA:ArraySize1_RBV -# % gui, FSCN1.pva, readback, Dim 2 Size, S03SIM-EA-FSCN-01:PVA:ArraySize2_RBV -# % gui, FSCN1.pva, readback, Input Data Type, S03SIM-EA-FSCN-01:PVA:DataType_RBV -# % gui, FSCN1.pva, readback, Colour Mode, S03SIM-EA-FSCN-01:PVA:ColorMode_RBV -# % gui, FSCN1.pva, readback, Bayer Pattern, S03SIM-EA-FSCN-01:PVA:BayerPattern_RBV -# % gui, FSCN1.pva, readback, Unique id, S03SIM-EA-FSCN-01:PVA:UniqueId_RBV -# % gui, FSCN1.pva, readback, Timestamp, S03SIM-EA-FSCN-01:PVA:TimeStamp_RBV +# % gui, FSCN1.pva, readback, Num Dimensions, BL03S-EA-FSCN-01:PVA:NDimensions_RBV +# % gui, FSCN1.pva, readback, Dim 0 Size, BL03S-EA-FSCN-01:PVA:ArraySize0_RBV +# % gui, FSCN1.pva, readback, Dim 1 Size, BL03S-EA-FSCN-01:PVA:ArraySize1_RBV +# % gui, FSCN1.pva, readback, Dim 2 Size, BL03S-EA-FSCN-01:PVA:ArraySize2_RBV +# % gui, FSCN1.pva, readback, Input Data Type, BL03S-EA-FSCN-01:PVA:DataType_RBV +# % gui, FSCN1.pva, readback, Colour Mode, BL03S-EA-FSCN-01:PVA:ColorMode_RBV +# % gui, FSCN1.pva, readback, Bayer Pattern, BL03S-EA-FSCN-01:PVA:BayerPattern_RBV +# % gui, FSCN1.pva, readback, Unique id, BL03S-EA-FSCN-01:PVA:UniqueId_RBV +# % gui, FSCN1.pva, readback, Timestamp, BL03S-EA-FSCN-01:PVA:TimeStamp_RBV # % gui, FSCN1.pva, groupHeading, PVA Settings -# % gui, FSCN1.pva, readback, PV Name, S03SIM-EA-FSCN-01:PVA:PvName_RBV +# % gui, FSCN1.pva, readback, PV Name, BL03S-EA-FSCN-01:PVA:PvName_RBV #=================================================================# # Template file: NDPluginBase.template @@ -9803,7 +9803,7 @@ record(bo, "S03SIM-EA-FSCN-02:CAM:ARHWImageMode") { # This record contains the version of ADCore # ################################################################### -record(stringin, "S03SIM-EA-FSCN-01:PVA:ADCoreVersion_RBV") +record(stringin, "BL03S-EA-FSCN-01:PVA:ADCoreVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.pva,0,1)ADCORE_VERSION") @@ -9815,7 +9815,7 @@ record(stringin, "S03SIM-EA-FSCN-01:PVA:ADCoreVersion_RBV") # This record contains the version of the driver or plugin # ################################################################### -record(stringin, "S03SIM-EA-FSCN-01:PVA:DriverVersion_RBV") +record(stringin, "BL03S-EA-FSCN-01:PVA:DriverVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.pva,0,1)DRIVER_VERSION") @@ -9827,7 +9827,7 @@ record(stringin, "S03SIM-EA-FSCN-01:PVA:DriverVersion_RBV") # This record contains the asyn port name of this detector # ################################################################### -record(stringin, "S03SIM-EA-FSCN-01:PVA:PortName_RBV") +record(stringin, "BL03S-EA-FSCN-01:PVA:PortName_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.pva,0,1)PORT_NAME_SELF") @@ -9839,7 +9839,7 @@ record(stringin, "S03SIM-EA-FSCN-01:PVA:PortName_RBV") # These records contain basic information about the detector # ################################################################### -record(stringin, "S03SIM-EA-FSCN-01:PVA:Manufacturer_RBV") +record(stringin, "BL03S-EA-FSCN-01:PVA:Manufacturer_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.pva,0,1)MANUFACTURER") @@ -9847,7 +9847,7 @@ record(stringin, "S03SIM-EA-FSCN-01:PVA:Manufacturer_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-EA-FSCN-01:PVA:Model_RBV") +record(stringin, "BL03S-EA-FSCN-01:PVA:Model_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.pva,0,1)MODEL") @@ -9855,7 +9855,7 @@ record(stringin, "S03SIM-EA-FSCN-01:PVA:Model_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-EA-FSCN-01:PVA:SerialNumber_RBV") +record(stringin, "BL03S-EA-FSCN-01:PVA:SerialNumber_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.pva,0,1)SERIAL_NUMBER") @@ -9863,7 +9863,7 @@ record(stringin, "S03SIM-EA-FSCN-01:PVA:SerialNumber_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-EA-FSCN-01:PVA:SDKVersion_RBV") +record(stringin, "BL03S-EA-FSCN-01:PVA:SDKVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.pva,0,1)SDK_VERSION") @@ -9871,7 +9871,7 @@ record(stringin, "S03SIM-EA-FSCN-01:PVA:SDKVersion_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-EA-FSCN-01:PVA:FirmwareVersion_RBV") +record(stringin, "BL03S-EA-FSCN-01:PVA:FirmwareVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.pva,0,1)FIRMWARE_VERSION") @@ -9883,17 +9883,17 @@ record(stringin, "S03SIM-EA-FSCN-01:PVA:FirmwareVersion_RBV") # These records control acquisition start and stop # ################################################################### -record(bo, "S03SIM-EA-FSCN-01:PVA:Acquire") { +record(bo, "BL03S-EA-FSCN-01:PVA:Acquire") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.pva,0,1)ACQUIRE") field(ZNAM, "Done") field(ONAM, "Acquire") field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:SetAcquireBusy") + field(FLNK, "BL03S-EA-FSCN-01:PVA:SetAcquireBusy") info(ai:READBACK, "1") } -record(bi, "S03SIM-EA-FSCN-01:PVA:Acquire_RBV") { +record(bi, "BL03S-EA-FSCN-01:PVA:Acquire_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)ACQUIRE") field(ZNAM, "Done") @@ -9903,15 +9903,15 @@ record(bi, "S03SIM-EA-FSCN-01:PVA:Acquire_RBV") { field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-EA-FSCN-01:PVA:SetAcquireBusy") +record(calcout, "BL03S-EA-FSCN-01:PVA:SetAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:PVA:Acquire NPP") + field(INPA, "BL03S-EA-FSCN-01:PVA:Acquire NPP") field(CALC, "A") field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-01:PVA:AcquireBusy PP") + field(OUT, "BL03S-EA-FSCN-01:PVA:AcquireBusy PP") } -record(bi, "S03SIM-EA-FSCN-01:PVA:AcquireBusy") { +record(bi, "BL03S-EA-FSCN-01:PVA:AcquireBusy") { field(ZNAM, "Done") field(ZSV, "NO_ALARM") field(ONAM, "Acquiring") @@ -9919,7 +9919,7 @@ record(bi, "S03SIM-EA-FSCN-01:PVA:AcquireBusy") { field(VAL, "0") } -record(bi, "S03SIM-EA-FSCN-01:PVA:AcquireBusyCB") { +record(bi, "BL03S-EA-FSCN-01:PVA:AcquireBusyCB") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)ACQUIRE_BUSY") field(ZNAM, "Done") @@ -9929,14 +9929,14 @@ record(bi, "S03SIM-EA-FSCN-01:PVA:AcquireBusyCB") { field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-EA-FSCN-01:PVA:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-01:PVA:AcquireBusyCB CP") +record(calcout, "BL03S-EA-FSCN-01:PVA:ClearAcquireBusy") { + field(INPA, "BL03S-EA-FSCN-01:PVA:AcquireBusyCB CP") field(CALC, "A") field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-01:PVA:AcquireBusy PP") + field(OUT, "BL03S-EA-FSCN-01:PVA:AcquireBusy PP") } -record(bo, "S03SIM-EA-FSCN-01:PVA:WaitForPlugins") { +record(bo, "BL03S-EA-FSCN-01:PVA:WaitForPlugins") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.pva,0,1)WAIT_FOR_PLUGINS") @@ -9949,13 +9949,13 @@ record(bo, "S03SIM-EA-FSCN-01:PVA:WaitForPlugins") { # These records are the array size and data type # ################################################################### # The number of dimensions -record(longout, "S03SIM-EA-FSCN-01:PVA:NDimensions") +record(longout, "BL03S-EA-FSCN-01:PVA:NDimensions") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.pva,0,1)ARRAY_NDIMENSIONS") } -record(longin, "S03SIM-EA-FSCN-01:PVA:NDimensions_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:NDimensions_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)ARRAY_NDIMENSIONS") @@ -9963,346 +9963,346 @@ record(longin, "S03SIM-EA-FSCN-01:PVA:NDimensions_RBV") } # The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-01:PVA:Dimensions") +record(waveform, "BL03S-EA-FSCN-01:PVA:Dimensions") { field(DTYP, "asynInt32ArrayOut") field(INP, "@asyn(FSCN1.pva,0,1)ARRAY_DIMENSIONS") field(FTVL, "LONG") field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim0SA") + field(FLNK, "BL03S-EA-FSCN-01:PVA:Dim0SA") } -record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim0SA") +record(subArray, "BL03S-EA-FSCN-01:PVA:Dim0SA") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-01:PVA:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize0") + field(FLNK, "BL03S-EA-FSCN-01:PVA:ArraySize0") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize0") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySize0") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim1SA") + field(INP, "BL03S-EA-FSCN-01:PVA:Dim0SA") + field(FLNK, "BL03S-EA-FSCN-01:PVA:Dim1SA") } -record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim1SA") +record(subArray, "BL03S-EA-FSCN-01:PVA:Dim1SA") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-01:PVA:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize1") + field(FLNK, "BL03S-EA-FSCN-01:PVA:ArraySize1") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize1") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySize1") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim2SA") + field(INP, "BL03S-EA-FSCN-01:PVA:Dim1SA") + field(FLNK, "BL03S-EA-FSCN-01:PVA:Dim2SA") } -record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim2SA") +record(subArray, "BL03S-EA-FSCN-01:PVA:Dim2SA") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-01:PVA:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize2") + field(FLNK, "BL03S-EA-FSCN-01:PVA:ArraySize2") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize2") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySize2") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim3SA") + field(INP, "BL03S-EA-FSCN-01:PVA:Dim2SA") + field(FLNK, "BL03S-EA-FSCN-01:PVA:Dim3SA") } -record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim3SA") +record(subArray, "BL03S-EA-FSCN-01:PVA:Dim3SA") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-01:PVA:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize3") + field(FLNK, "BL03S-EA-FSCN-01:PVA:ArraySize3") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize3") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySize3") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim4SA") + field(INP, "BL03S-EA-FSCN-01:PVA:Dim3SA") + field(FLNK, "BL03S-EA-FSCN-01:PVA:Dim4SA") } -record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim4SA") +record(subArray, "BL03S-EA-FSCN-01:PVA:Dim4SA") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-01:PVA:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize4") + field(FLNK, "BL03S-EA-FSCN-01:PVA:ArraySize4") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize4") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySize4") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim5SA") + field(INP, "BL03S-EA-FSCN-01:PVA:Dim4SA") + field(FLNK, "BL03S-EA-FSCN-01:PVA:Dim5SA") } -record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim5SA") +record(subArray, "BL03S-EA-FSCN-01:PVA:Dim5SA") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-01:PVA:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize5") + field(FLNK, "BL03S-EA-FSCN-01:PVA:ArraySize5") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize5") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySize5") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim6SA") + field(INP, "BL03S-EA-FSCN-01:PVA:Dim5SA") + field(FLNK, "BL03S-EA-FSCN-01:PVA:Dim6SA") } -record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim6SA") +record(subArray, "BL03S-EA-FSCN-01:PVA:Dim6SA") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-01:PVA:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize6") + field(FLNK, "BL03S-EA-FSCN-01:PVA:ArraySize6") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize6") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySize6") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim7SA") + field(INP, "BL03S-EA-FSCN-01:PVA:Dim6SA") + field(FLNK, "BL03S-EA-FSCN-01:PVA:Dim7SA") } -record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim7SA") +record(subArray, "BL03S-EA-FSCN-01:PVA:Dim7SA") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-01:PVA:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize7") + field(FLNK, "BL03S-EA-FSCN-01:PVA:ArraySize7") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize7") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySize7") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim8SA") + field(INP, "BL03S-EA-FSCN-01:PVA:Dim7SA") + field(FLNK, "BL03S-EA-FSCN-01:PVA:Dim8SA") } -record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim8SA") +record(subArray, "BL03S-EA-FSCN-01:PVA:Dim8SA") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-01:PVA:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize8") + field(FLNK, "BL03S-EA-FSCN-01:PVA:ArraySize8") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize8") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySize8") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim9SA") + field(INP, "BL03S-EA-FSCN-01:PVA:Dim8SA") + field(FLNK, "BL03S-EA-FSCN-01:PVA:Dim9SA") } -record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim9SA") +record(subArray, "BL03S-EA-FSCN-01:PVA:Dim9SA") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-01:PVA:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize9") + field(FLNK, "BL03S-EA-FSCN-01:PVA:ArraySize9") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize9") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySize9") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dim9SA") + field(INP, "BL03S-EA-FSCN-01:PVA:Dim9SA") } -record(waveform, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV") +record(waveform, "BL03S-EA-FSCN-01:PVA:Dimensions_RBV") { field(DTYP, "asynInt32ArrayIn") field(INP, "@asyn(FSCN1.pva,0,1)ARRAY_DIMENSIONS") field(FTVL, "LONG") field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim0SA_RBV") + field(FLNK, "BL03S-EA-FSCN-01:PVA:Dim0SA_RBV") field(SCAN, "I/O Intr") } -record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim0SA_RBV") +record(subArray, "BL03S-EA-FSCN-01:PVA:Dim0SA_RBV") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize0_RBV") + field(FLNK, "BL03S-EA-FSCN-01:PVA:ArraySize0_RBV") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize0_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySize0_RBV") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim1SA_RBV") + field(INP, "BL03S-EA-FSCN-01:PVA:Dim0SA_RBV") + field(FLNK, "BL03S-EA-FSCN-01:PVA:Dim1SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim1SA_RBV") +record(subArray, "BL03S-EA-FSCN-01:PVA:Dim1SA_RBV") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize1_RBV") + field(FLNK, "BL03S-EA-FSCN-01:PVA:ArraySize1_RBV") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize1_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySize1_RBV") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim2SA_RBV") + field(INP, "BL03S-EA-FSCN-01:PVA:Dim1SA_RBV") + field(FLNK, "BL03S-EA-FSCN-01:PVA:Dim2SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim2SA_RBV") +record(subArray, "BL03S-EA-FSCN-01:PVA:Dim2SA_RBV") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize2_RBV") + field(FLNK, "BL03S-EA-FSCN-01:PVA:ArraySize2_RBV") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize2_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySize2_RBV") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim3SA_RBV") + field(INP, "BL03S-EA-FSCN-01:PVA:Dim2SA_RBV") + field(FLNK, "BL03S-EA-FSCN-01:PVA:Dim3SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim3SA_RBV") +record(subArray, "BL03S-EA-FSCN-01:PVA:Dim3SA_RBV") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize3_RBV") + field(FLNK, "BL03S-EA-FSCN-01:PVA:ArraySize3_RBV") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize3_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySize3_RBV") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim4SA_RBV") + field(INP, "BL03S-EA-FSCN-01:PVA:Dim3SA_RBV") + field(FLNK, "BL03S-EA-FSCN-01:PVA:Dim4SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim4SA_RBV") +record(subArray, "BL03S-EA-FSCN-01:PVA:Dim4SA_RBV") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize4_RBV") + field(FLNK, "BL03S-EA-FSCN-01:PVA:ArraySize4_RBV") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize4_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySize4_RBV") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim5SA_RBV") + field(INP, "BL03S-EA-FSCN-01:PVA:Dim4SA_RBV") + field(FLNK, "BL03S-EA-FSCN-01:PVA:Dim5SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim5SA_RBV") +record(subArray, "BL03S-EA-FSCN-01:PVA:Dim5SA_RBV") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize5_RBV") + field(FLNK, "BL03S-EA-FSCN-01:PVA:ArraySize5_RBV") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize5_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySize5_RBV") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim6SA_RBV") + field(INP, "BL03S-EA-FSCN-01:PVA:Dim5SA_RBV") + field(FLNK, "BL03S-EA-FSCN-01:PVA:Dim6SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim6SA_RBV") +record(subArray, "BL03S-EA-FSCN-01:PVA:Dim6SA_RBV") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize6_RBV") + field(FLNK, "BL03S-EA-FSCN-01:PVA:ArraySize6_RBV") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize6_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySize6_RBV") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim7SA_RBV") + field(INP, "BL03S-EA-FSCN-01:PVA:Dim6SA_RBV") + field(FLNK, "BL03S-EA-FSCN-01:PVA:Dim7SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim7SA_RBV") +record(subArray, "BL03S-EA-FSCN-01:PVA:Dim7SA_RBV") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize7_RBV") + field(FLNK, "BL03S-EA-FSCN-01:PVA:ArraySize7_RBV") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize7_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySize7_RBV") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim8SA_RBV") + field(INP, "BL03S-EA-FSCN-01:PVA:Dim7SA_RBV") + field(FLNK, "BL03S-EA-FSCN-01:PVA:Dim8SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim8SA_RBV") +record(subArray, "BL03S-EA-FSCN-01:PVA:Dim8SA_RBV") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize8_RBV") + field(FLNK, "BL03S-EA-FSCN-01:PVA:ArraySize8_RBV") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize8_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySize8_RBV") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:Dim9SA_RBV") + field(INP, "BL03S-EA-FSCN-01:PVA:Dim8SA_RBV") + field(FLNK, "BL03S-EA-FSCN-01:PVA:Dim9SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-01:PVA:Dim9SA_RBV") +record(subArray, "BL03S-EA-FSCN-01:PVA:Dim9SA_RBV") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-01:PVA:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:ArraySize9_RBV") + field(FLNK, "BL03S-EA-FSCN-01:PVA:ArraySize9_RBV") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize9_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySize9_RBV") { - field(INP, "S03SIM-EA-FSCN-01:PVA:Dim9SA_RBV") + field(INP, "BL03S-EA-FSCN-01:PVA:Dim9SA_RBV") } -record(mbbi, "S03SIM-EA-FSCN-01:PVA:BayerPattern_RBV") +record(mbbi, "BL03S-EA-FSCN-01:PVA:BayerPattern_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)BAYER_PATTERN") @@ -10317,28 +10317,28 @@ record(mbbi, "S03SIM-EA-FSCN-01:PVA:BayerPattern_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySizeX_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySizeX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)ARRAY_SIZE_X") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySizeY_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySizeY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)ARRAY_SIZE_Y") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySizeZ_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySizeZ_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)ARRAY_SIZE_Z") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:ArraySize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)ARRAY_SIZE") @@ -10348,7 +10348,7 @@ record(longin, "S03SIM-EA-FSCN-01:PVA:ArraySize_RBV") ################################################################### # These records have information on the compression # ################################################################### -record(stringin, "S03SIM-EA-FSCN-01:PVA:Codec_RBV") +record(stringin, "BL03S-EA-FSCN-01:PVA:Codec_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.pva,0,1)CODEC") @@ -10356,7 +10356,7 @@ record(stringin, "S03SIM-EA-FSCN-01:PVA:Codec_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-01:PVA:CompressedSize_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:CompressedSize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)COMPRESSED_SIZE") @@ -10367,7 +10367,7 @@ record(longin, "S03SIM-EA-FSCN-01:PVA:CompressedSize_RBV") # These records control the data type # ################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:PVA:DataType") +record(mbbo, "BL03S-EA-FSCN-01:PVA:DataType") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -10396,7 +10396,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:PVA:DataType") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-EA-FSCN-01:PVA:DataType_RBV") +record(mbbi, "BL03S-EA-FSCN-01:PVA:DataType_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)DATA_TYPE") @@ -10428,7 +10428,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:PVA:DataType_RBV") # These choices must agree with NDColorMode_t in NDArray.h # ################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:PVA:ColorMode") +record(mbbo, "BL03S-EA-FSCN-01:PVA:ColorMode") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -10452,7 +10452,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:PVA:ColorMode") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-EA-FSCN-01:PVA:ColorMode_RBV") +record(mbbi, "BL03S-EA-FSCN-01:PVA:ColorMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)COLOR_MODE") @@ -10478,14 +10478,14 @@ record(mbbi, "S03SIM-EA-FSCN-01:PVA:ColorMode_RBV") ################################################################### # These records are the uniqueId and time stamps of the array # ################################################################### -record(longin, "S03SIM-EA-FSCN-01:PVA:UniqueId_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:UniqueId_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)UNIQUE_ID") field(SCAN, "I/O Intr") } -record(ai, "S03SIM-EA-FSCN-01:PVA:TimeStamp_RBV") +record(ai, "BL03S-EA-FSCN-01:PVA:TimeStamp_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.pva,0,1)TIME_STAMP") @@ -10493,14 +10493,14 @@ record(ai, "S03SIM-EA-FSCN-01:PVA:TimeStamp_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-01:PVA:EpicsTSSec_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:EpicsTSSec_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)EPICS_TS_SEC") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-01:PVA:EpicsTSNsec_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:EpicsTSNsec_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)EPICS_TS_NSEC") @@ -10511,13 +10511,13 @@ record(longin, "S03SIM-EA-FSCN-01:PVA:EpicsTSNsec_RBV") # These records provide statistics on array callbacks and # # array callback rates # ################################################################### -record(longout, "S03SIM-EA-FSCN-01:PVA:ArrayCounter") +record(longout, "BL03S-EA-FSCN-01:PVA:ArrayCounter") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.pva,0,1)ARRAY_COUNTER") } -record(longin, "S03SIM-EA-FSCN-01:PVA:ArrayCounter_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:ArrayCounter_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)ARRAY_COUNTER") @@ -10525,12 +10525,12 @@ record(longin, "S03SIM-EA-FSCN-01:PVA:ArrayCounter_RBV") } # Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-01:PVA:ArrayRate_RBV") +record(calc, "BL03S-EA-FSCN-01:PVA:ArrayRate_RBV") { - field(INPA, "S03SIM-EA-FSCN-01:PVA:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-01:PVA:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPA, "BL03S-EA-FSCN-01:PVA:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "BL03S-EA-FSCN-01:PVA:ArrayCounter_RBV NPP NMS") # Current counter value field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-01:PVA:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPD, "BL03S-EA-FSCN-01:PVA:ArrayRate_RBV.VAL NPP NMS") # Previous rate field(INPE, "0.0") # Smoothing factor field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") field(PREC, "2" ) @@ -10541,7 +10541,7 @@ record(calc, "S03SIM-EA-FSCN-01:PVA:ArrayRate_RBV") ################################################################### # These records control NDArray callacks # ################################################################### -record(bo, "S03SIM-EA-FSCN-01:PVA:ArrayCallbacks") +record(bo, "BL03S-EA-FSCN-01:PVA:ArrayCallbacks") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -10554,7 +10554,7 @@ record(bo, "S03SIM-EA-FSCN-01:PVA:ArrayCallbacks") info(autosaveFields, "VAL") } -record(bi, "S03SIM-EA-FSCN-01:PVA:ArrayCallbacks_RBV") +record(bi, "BL03S-EA-FSCN-01:PVA:ArrayCallbacks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)ARRAY_CALLBACKS") @@ -10569,7 +10569,7 @@ record(bi, "S03SIM-EA-FSCN-01:PVA:ArrayCallbacks_RBV") # This record contains macro definitions for the attributes # ################################################################### -record(waveform, "S03SIM-EA-FSCN-01:PVA:NDAttributesMacros") +record(waveform, "BL03S-EA-FSCN-01:PVA:NDAttributesMacros") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -10583,7 +10583,7 @@ record(waveform, "S03SIM-EA-FSCN-01:PVA:NDAttributesMacros") # This record is the name of a file defining attributes # ################################################################### -record(waveform, "S03SIM-EA-FSCN-01:PVA:NDAttributesFile") +record(waveform, "BL03S-EA-FSCN-01:PVA:NDAttributesFile") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -10597,7 +10597,7 @@ record(waveform, "S03SIM-EA-FSCN-01:PVA:NDAttributesFile") # This record defines the status of reading attributes file # ################################################################### -record(mbbi, "S03SIM-EA-FSCN-01:PVA:NDAttributesStatus") +record(mbbi, "BL03S-EA-FSCN-01:PVA:NDAttributesStatus") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)ND_ATTRIBUTES_STATUS") @@ -10620,7 +10620,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:PVA:NDAttributesStatus") # Status of NDArrayPool - number of buffers, memory used etc. # ################################################################### -record(ai, "S03SIM-EA-FSCN-01:PVA:PoolMaxMem") +record(ai, "BL03S-EA-FSCN-01:PVA:PoolMaxMem") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.pva,0,1)POOL_MAX_MEMORY") @@ -10630,45 +10630,45 @@ record(ai, "S03SIM-EA-FSCN-01:PVA:PoolMaxMem") field(PINI, "YES") } -record(ai, "S03SIM-EA-FSCN-01:PVA:PoolUsedMem") +record(ai, "BL03S-EA-FSCN-01:PVA:PoolUsedMem") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.pva,0,1)POOL_USED_MEMORY") field(PREC, "1") field(EGU, "MB") field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:PoolAllocBuffers") + field(FLNK, "BL03S-EA-FSCN-01:PVA:PoolAllocBuffers") info(autosaveFields, "SCAN") } -record(longin, "S03SIM-EA-FSCN-01:PVA:PoolAllocBuffers") +record(longin, "BL03S-EA-FSCN-01:PVA:PoolAllocBuffers") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:PoolFreeBuffers") + field(FLNK, "BL03S-EA-FSCN-01:PVA:PoolFreeBuffers") } -record(longin, "S03SIM-EA-FSCN-01:PVA:PoolFreeBuffers") +record(longin, "BL03S-EA-FSCN-01:PVA:PoolFreeBuffers") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:PoolUsedBuffers") + field(FLNK, "BL03S-EA-FSCN-01:PVA:PoolUsedBuffers") } -record(calc, "S03SIM-EA-FSCN-01:PVA:PoolUsedBuffers") +record(calc, "BL03S-EA-FSCN-01:PVA:PoolUsedBuffers") { - field(INPA, "S03SIM-EA-FSCN-01:PVA:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-01:PVA:PoolFreeBuffers NPP MS") + field(INPA, "BL03S-EA-FSCN-01:PVA:PoolAllocBuffers NPP MS") + field(INPB, "BL03S-EA-FSCN-01:PVA:PoolFreeBuffers NPP MS") field(CALC, "A-B") } -record(bo, "S03SIM-EA-FSCN-01:PVA:EmptyFreeList") +record(bo, "BL03S-EA-FSCN-01:PVA:EmptyFreeList") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.pva,0,1)POOL_EMPTY_FREELIST") } -record(longin, "S03SIM-EA-FSCN-01:PVA:NumQueuedArrays") +record(longin, "BL03S-EA-FSCN-01:PVA:NumQueuedArrays") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)NUM_QUEUED_ARRAYS") @@ -10679,7 +10679,7 @@ record(longin, "S03SIM-EA-FSCN-01:PVA:NumQueuedArrays") # This record contains the type of plugin # ################################################################### -record(stringin, "S03SIM-EA-FSCN-01:PVA:PluginType_RBV") +record(stringin, "BL03S-EA-FSCN-01:PVA:PluginType_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.pva,0,1)PLUGIN_TYPE") @@ -10692,7 +10692,7 @@ record(stringin, "S03SIM-EA-FSCN-01:PVA:PluginType_RBV") # an NDArray driver port and address # ################################################################### # Array port name -record(stringout, "S03SIM-EA-FSCN-01:PVA:NDArrayPort") +record(stringout, "BL03S-EA-FSCN-01:PVA:NDArrayPort") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -10701,14 +10701,14 @@ record(stringout, "S03SIM-EA-FSCN-01:PVA:NDArrayPort") info(autosaveFields, "VAL") } -record(stringin, "S03SIM-EA-FSCN-01:PVA:NDArrayPort_RBV") +record(stringin, "BL03S-EA-FSCN-01:PVA:NDArrayPort_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.pva,0,1)NDARRAY_PORT") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-EA-FSCN-01:PVA:NDArrayAddress") +record(longout, "BL03S-EA-FSCN-01:PVA:NDArrayAddress") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -10717,7 +10717,7 @@ record(longout, "S03SIM-EA-FSCN-01:PVA:NDArrayAddress") info(autosaveFields, "VAL") } -record(longin, "S03SIM-EA-FSCN-01:PVA:NDArrayAddress_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:NDArrayAddress_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)NDARRAY_ADDR") @@ -10728,7 +10728,7 @@ record(longin, "S03SIM-EA-FSCN-01:PVA:NDArrayAddress_RBV") # These records control whether callbacks are enabled and # # minimum time between callbacks # ################################################################### -record(bo, "S03SIM-EA-FSCN-01:PVA:EnableCallbacks") +record(bo, "BL03S-EA-FSCN-01:PVA:EnableCallbacks") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -10739,7 +10739,7 @@ record(bo, "S03SIM-EA-FSCN-01:PVA:EnableCallbacks") info(autosaveFields, "VAL") } -record(bi, "S03SIM-EA-FSCN-01:PVA:EnableCallbacks_RBV") +record(bi, "BL03S-EA-FSCN-01:PVA:EnableCallbacks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)ENABLE_CALLBACKS") @@ -10750,7 +10750,7 @@ record(bi, "S03SIM-EA-FSCN-01:PVA:EnableCallbacks_RBV") field(SCAN, "I/O Intr") } -record(ao, "S03SIM-EA-FSCN-01:PVA:MinCallbackTime") +record(ao, "BL03S-EA-FSCN-01:PVA:MinCallbackTime") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -10762,7 +10762,7 @@ record(ao, "S03SIM-EA-FSCN-01:PVA:MinCallbackTime") info(autosaveFields, "VAL") } -record(ai, "S03SIM-EA-FSCN-01:PVA:MinCallbackTime_RBV") +record(ai, "BL03S-EA-FSCN-01:PVA:MinCallbackTime_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.pva,0,1)MIN_CALLBACK_TIME") @@ -10771,33 +10771,33 @@ record(ai, "S03SIM-EA-FSCN-01:PVA:MinCallbackTime_RBV") field(SCAN, "I/O Intr") } -record(ao, "S03SIM-EA-FSCN-01:PVA:MaxArrayRate") +record(ao, "BL03S-EA-FSCN-01:PVA:MaxArrayRate") { field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-01:PVA:MaxArrayRate_COUT PP") + field(OUT, "BL03S-EA-FSCN-01:PVA:MaxArrayRate_COUT PP") field(EGU, "Hz") field(PREC, "3") field(VAL, "0.0") info(autosaveFields, "VAL") } -record(calcout, "S03SIM-EA-FSCN-01:PVA:MaxArrayRate_COUT") +record(calcout, "BL03S-EA-FSCN-01:PVA:MaxArrayRate_COUT") { - field(INPA, "S03SIM-EA-FSCN-01:PVA:MaxArrayRate") + field(INPA, "BL03S-EA-FSCN-01:PVA:MaxArrayRate") field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-01:PVA:MinCallbackTime PP") + field(OUT, "BL03S-EA-FSCN-01:PVA:MinCallbackTime PP") } -record(calc, "S03SIM-EA-FSCN-01:PVA:MaxArrayRate_RBV") +record(calc, "BL03S-EA-FSCN-01:PVA:MaxArrayRate_RBV") { - field(INPA, "S03SIM-EA-FSCN-01:PVA:MinCallbackTime_RBV CP") + field(INPA, "BL03S-EA-FSCN-01:PVA:MinCallbackTime_RBV CP") field(CALC, "A=0?0:1.0/A") field(EGU, "Hz") field(PREC, "3") field(SCAN, "Passive") } -record(ao, "S03SIM-EA-FSCN-01:PVA:MaxByteRate") +record(ao, "BL03S-EA-FSCN-01:PVA:MaxByteRate") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -10809,7 +10809,7 @@ record(ao, "S03SIM-EA-FSCN-01:PVA:MaxByteRate") info(autosaveFields, "VAL") } -record(ai, "S03SIM-EA-FSCN-01:PVA:MaxByteRate_RBV") +record(ai, "BL03S-EA-FSCN-01:PVA:MaxByteRate_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.pva,0,1)MAX_BYTE_RATE") @@ -10821,7 +10821,7 @@ record(ai, "S03SIM-EA-FSCN-01:PVA:MaxByteRate_RBV") ################################################################### # This record contains the last execution time of the plugin # ################################################################### -record(ai, "S03SIM-EA-FSCN-01:PVA:ExecutionTime_RBV") +record(ai, "BL03S-EA-FSCN-01:PVA:ExecutionTime_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.pva,0,1)EXECUTION_TIME") @@ -10834,7 +10834,7 @@ record(ai, "S03SIM-EA-FSCN-01:PVA:ExecutionTime_RBV") # This record requests that the plugin execute again with the # # same NDArray # ################################################################### -record(bo, "S03SIM-EA-FSCN-01:PVA:ProcessPlugin") +record(bo, "BL03S-EA-FSCN-01:PVA:ProcessPlugin") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.pva,0,1)PROCESS_PLUGIN") @@ -10844,7 +10844,7 @@ record(bo, "S03SIM-EA-FSCN-01:PVA:ProcessPlugin") ################################################################### # These records control whether callbacks block or not # ################################################################### -record(bo, "S03SIM-EA-FSCN-01:PVA:BlockingCallbacks") +record(bo, "BL03S-EA-FSCN-01:PVA:BlockingCallbacks") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -10855,7 +10855,7 @@ record(bo, "S03SIM-EA-FSCN-01:PVA:BlockingCallbacks") info(autosaveFields, "VAL") } -record(bi, "S03SIM-EA-FSCN-01:PVA:BlockingCallbacks_RBV") +record(bi, "BL03S-EA-FSCN-01:PVA:BlockingCallbacks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)BLOCKING_CALLBACKS") @@ -10865,7 +10865,7 @@ record(bi, "S03SIM-EA-FSCN-01:PVA:BlockingCallbacks_RBV") } -record(longout, "S03SIM-EA-FSCN-01:PVA:DroppedArrays") +record(longout, "BL03S-EA-FSCN-01:PVA:DroppedArrays") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -10873,53 +10873,53 @@ record(longout, "S03SIM-EA-FSCN-01:PVA:DroppedArrays") field(VAL, "0") } -record(longin, "S03SIM-EA-FSCN-01:PVA:DroppedArrays_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:DroppedArrays_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)DROPPED_ARRAYS") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-EA-FSCN-01:PVA:QueueSize") +record(longout, "BL03S-EA-FSCN-01:PVA:QueueSize") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.pva,0,1)QUEUE_SIZE") field(PINI, "YES") } -record(longin, "S03SIM-EA-FSCN-01:PVA:QueueSize_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:QueueSize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:QueueFreeLow") + field(FLNK, "BL03S-EA-FSCN-01:PVA:QueueFreeLow") field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-EA-FSCN-01:PVA:QueueFreeLow") { +record(calcout, "BL03S-EA-FSCN-01:PVA:QueueFreeLow") { field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:PVA:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:PVA:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:QueueUseHIGH") + field(INPA, "BL03S-EA-FSCN-01:PVA:QueueSize") + field(OUT, "BL03S-EA-FSCN-01:PVA:QueueFree.LOW") + field(FLNK, "BL03S-EA-FSCN-01:PVA:QueueUseHIGH") } # Set a HIGH warning level for the input queue fill level to 75% # of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-01:PVA:QueueUseHIGH") { +record(calcout, "BL03S-EA-FSCN-01:PVA:QueueUseHIGH") { field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-01:PVA:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:PVA:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:QueueUseHIHI") + field(INPA, "BL03S-EA-FSCN-01:PVA:QueueSize") + field(OUT, "BL03S-EA-FSCN-01:PVA:QueueUse.HIGH") + field(FLNK, "BL03S-EA-FSCN-01:PVA:QueueUseHIHI") } # Set a HIHI level for the input queue fill level to indicate an error # (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-01:PVA:QueueUseHIHI") { +record(calcout, "BL03S-EA-FSCN-01:PVA:QueueUseHIHI") { field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-01:PVA:QueueSize") - field(OUT, "S03SIM-EA-FSCN-01:PVA:QueueUse.HIHI") + field(INPA, "BL03S-EA-FSCN-01:PVA:QueueSize") + field(OUT, "BL03S-EA-FSCN-01:PVA:QueueUse.HIHI") } -record(longin, "S03SIM-EA-FSCN-01:PVA:QueueFree") +record(longin, "BL03S-EA-FSCN-01:PVA:QueueFree") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)QUEUE_FREE") @@ -10931,17 +10931,17 @@ record(longin, "S03SIM-EA-FSCN-01:PVA:QueueFree") } # Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-01:PVA:QueueUse") { +record(calc, "BL03S-EA-FSCN-01:PVA:QueueUse") { field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-01:PVA:QueueSize") - field(INPB, "S03SIM-EA-FSCN-01:PVA:QueueFree CP") + field(INPA, "BL03S-EA-FSCN-01:PVA:QueueSize") + field(INPB, "BL03S-EA-FSCN-01:PVA:QueueFree CP") field(SCAN, "Passive") field(HHSV, "MAJOR") field(HSV, "MINOR") field(HYST, "1") } -record(longout, "S03SIM-EA-FSCN-01:PVA:NumThreads") +record(longout, "BL03S-EA-FSCN-01:PVA:NumThreads") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.pva,0,1)NUM_THREADS") @@ -10949,14 +10949,14 @@ record(longout, "S03SIM-EA-FSCN-01:PVA:NumThreads") field(PINI, "YES") } -record(longin, "S03SIM-EA-FSCN-01:PVA:NumThreads_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:NumThreads_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)NUM_THREADS") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-01:PVA:MaxThreads_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:MaxThreads_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)MAX_THREADS") @@ -10966,7 +10966,7 @@ record(longin, "S03SIM-EA-FSCN-01:PVA:MaxThreads_RBV") ################################################################### # These records control output array sorting # ################################################################### -record(mbbo, "S03SIM-EA-FSCN-01:PVA:SortMode") { +record(mbbo, "BL03S-EA-FSCN-01:PVA:SortMode") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.pva,0,1)SORT_MODE") @@ -10976,7 +10976,7 @@ record(mbbo, "S03SIM-EA-FSCN-01:PVA:SortMode") { field(ONST, "Sorted") } -record(mbbi, "S03SIM-EA-FSCN-01:PVA:SortMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-01:PVA:SortMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)SORT_MODE") field(ZRVL, "0") @@ -10986,7 +10986,7 @@ record(mbbi, "S03SIM-EA-FSCN-01:PVA:SortMode_RBV") { field(SCAN, "I/O Intr") } -record(ao, "S03SIM-EA-FSCN-01:PVA:SortTime") { +record(ao, "BL03S-EA-FSCN-01:PVA:SortTime") { field(PINI, "YES") field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN1.pva,0,1)SORT_TIME") @@ -10994,14 +10994,14 @@ record(ao, "S03SIM-EA-FSCN-01:PVA:SortTime") { field(VAL, "0.1") } -record(ai, "S03SIM-EA-FSCN-01:PVA:SortTime_RBV") { +record(ai, "BL03S-EA-FSCN-01:PVA:SortTime_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN1.pva,0,1)SORT_TIME") field(PREC, "3") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-EA-FSCN-01:PVA:SortSize") +record(longout, "BL03S-EA-FSCN-01:PVA:SortSize") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.pva,0,1)SORT_SIZE") @@ -11009,15 +11009,15 @@ record(longout, "S03SIM-EA-FSCN-01:PVA:SortSize") field(PINI, "YES") } -record(longin, "S03SIM-EA-FSCN-01:PVA:SortSize_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:SortSize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-01:PVA:SortFreeLow") + field(FLNK, "BL03S-EA-FSCN-01:PVA:SortFreeLow") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-01:PVA:SortFree") { +record(longin, "BL03S-EA-FSCN-01:PVA:SortFree") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)SORT_FREE") field(LLSV, "MAJOR") @@ -11027,13 +11027,13 @@ record(longin, "S03SIM-EA-FSCN-01:PVA:SortFree") { field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-EA-FSCN-01:PVA:SortFreeLow") { +record(calcout, "BL03S-EA-FSCN-01:PVA:SortFreeLow") { field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-01:PVA:SortSize") - field(OUT, "S03SIM-EA-FSCN-01:PVA:SortFree.LOW") + field(INPA, "BL03S-EA-FSCN-01:PVA:SortSize") + field(OUT, "BL03S-EA-FSCN-01:PVA:SortFree.LOW") } -record(longout, "S03SIM-EA-FSCN-01:PVA:DroppedOutputArrays") +record(longout, "BL03S-EA-FSCN-01:PVA:DroppedOutputArrays") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -11041,21 +11041,21 @@ record(longout, "S03SIM-EA-FSCN-01:PVA:DroppedOutputArrays") field(VAL, "0") } -record(longin, "S03SIM-EA-FSCN-01:PVA:DroppedOutputArrays_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:DroppedOutputArrays_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)DROPPED_OUTPUT_ARRAYS") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-EA-FSCN-01:PVA:DisorderedArrays") +record(longout, "BL03S-EA-FSCN-01:PVA:DisorderedArrays") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN1.pva,0,1)DISORDERED_ARRAYS") field(PINI, "YES") } -record(longin, "S03SIM-EA-FSCN-01:PVA:DisorderedArrays_RBV") +record(longin, "BL03S-EA-FSCN-01:PVA:DisorderedArrays_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN1.pva,0,1)DISORDERED_ARRAYS") @@ -11070,7 +11070,7 @@ record(longin, "S03SIM-EA-FSCN-01:PVA:DisorderedArrays_RBV") # Set ASYN_TRACEIO_HEX bit by default -record(waveform, "S03SIM-EA-FSCN-01:PVA:PvName_RBV") +record(waveform, "BL03S-EA-FSCN-01:PVA:PvName_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN1.pva,0,1)PV_NAME") @@ -11091,51 +11091,51 @@ record(waveform, "S03SIM-EA-FSCN-01:PVA:PvName_RBV") #% macro, TIMEOUT, Asyn timeout # This associates the template with an edm screen -# % gui, FSCN2.pva, edmtab, NDPvaPlugin.edl, P=S03SIM-EA-FSCN-02,R=:PVA: +# % gui, FSCN2.pva, edmtab, NDPvaPlugin.edl, P=BL03S-EA-FSCN-02,R=:PVA: # This associates a BOY screen with the template -# % gui, FSCN2.pva, boydetail,ADApp_opi/dls/pva_detail.opi, P=S03SIM-EA-FSCN-02, R=:PVA:, DESC=PVAccess -# % gui, FSCN2.pva, boyembed, ADApp_opi/dls/pva_embed_box.opi, P=S03SIM-EA-FSCN-02, R=:PVA:, DESC=PVAccess -# % gui, FSCN2.pva, boyembed, ADApp_opi/dls/pva_embed.opi, P=S03SIM-EA-FSCN-02, R=:PVA:, DESC=PVAccess +# % gui, FSCN2.pva, boydetail,ADApp_opi/dls/pva_detail.opi, P=BL03S-EA-FSCN-02, R=:PVA:, DESC=PVAccess +# % gui, FSCN2.pva, boyembed, ADApp_opi/dls/pva_embed_box.opi, P=BL03S-EA-FSCN-02, R=:PVA:, DESC=PVAccess +# % gui, FSCN2.pva, boyembed, ADApp_opi/dls/pva_embed.opi, P=BL03S-EA-FSCN-02, R=:PVA:, DESC=PVAccess # Info # % gui, FSCN2.pva, groupHeading, Info -# % gui, FSCN2.pva, readback, Port name, S03SIM-EA-FSCN-02:PVA:PortName_RBV -# % gui, FSCN2.pva, readback, Plugin type, S03SIM-EA-FSCN-02:PVA:PluginType_RBV +# % gui, FSCN2.pva, readback, Port name, BL03S-EA-FSCN-02:PVA:PortName_RBV +# % gui, FSCN2.pva, readback, Plugin type, BL03S-EA-FSCN-02:PVA:PluginType_RBV # Input -# % gui, FSCN2.pva, demandString, Input, S03SIM-EA-FSCN-02:PVA:NDArrayPort -# % gui, FSCN2.pva, readback, Input, S03SIM-EA-FSCN-02:PVA:NDArrayPort_RBV +# % gui, FSCN2.pva, demandString, Input, BL03S-EA-FSCN-02:PVA:NDArrayPort +# % gui, FSCN2.pva, readback, Input, BL03S-EA-FSCN-02:PVA:NDArrayPort_RBV # % gui, FSCN2.pva, groupHeading, Callback -# % gui, FSCN2.pva, enum, Callbacks, S03SIM-EA-FSCN-02:PVA:EnableCallbacks -# % gui, FSCN2.pva, statusbits, Callbacks, S03SIM-EA-FSCN-02:PVA:EnableCallbacks_RBV -# % gui, FSCN2.pva, demand, Min Callback Time, S03SIM-EA-FSCN-02:PVA:MinCallbackTime -# % gui, FSCN2.pva, readback, Min Callback Time, S03SIM-EA-FSCN-02:PVA:MinCallbackTime_RBV -# % gui, FSCN2.pva, enum, Block Callbacks, S03SIM-EA-FSCN-02:PVA:BlockingCallbacks -# % gui, FSCN2.pva, statusbits, Block Callbacks, S03SIM-EA-FSCN-02:PVA:BlockingCallbacks_RBV +# % gui, FSCN2.pva, enum, Callbacks, BL03S-EA-FSCN-02:PVA:EnableCallbacks +# % gui, FSCN2.pva, statusbits, Callbacks, BL03S-EA-FSCN-02:PVA:EnableCallbacks_RBV +# % gui, FSCN2.pva, demand, Min Callback Time, BL03S-EA-FSCN-02:PVA:MinCallbackTime +# % gui, FSCN2.pva, readback, Min Callback Time, BL03S-EA-FSCN-02:PVA:MinCallbackTime_RBV +# % gui, FSCN2.pva, enum, Block Callbacks, BL03S-EA-FSCN-02:PVA:BlockingCallbacks +# % gui, FSCN2.pva, statusbits, Block Callbacks, BL03S-EA-FSCN-02:PVA:BlockingCallbacks_RBV # % gui, FSCN2.pva, groupHeading, Counters -# % gui, FSCN2.pva, demand, Array Counter, S03SIM-EA-FSCN-02:PVA:ArrayCounter -# % gui, FSCN2.pva, readback, Array Counter, S03SIM-EA-FSCN-02:PVA:ArrayCounter_RBV -# % gui, FSCN2.pva, readback, Array Rate (fps), S03SIM-EA-FSCN-02:PVA:ArrayRate_RBV -# % gui, FSCN2.pva, readback, Queue Use, S03SIM-EA-FSCN-02:PVA:QueueUse -# % gui, FSCN2.pva, readback, Queue Size, S03SIM-EA-FSCN-02:PVA:QueueSize -# % gui, FSCN2.pva, demand, Dropped Arrays, S03SIM-EA-FSCN-02:PVA:DroppedArrays -# % gui, FSCN2.pva, readback, Dropped Arrays, S03SIM-EA-FSCN-02:PVA:DroppedArrays_RBV +# % gui, FSCN2.pva, demand, Array Counter, BL03S-EA-FSCN-02:PVA:ArrayCounter +# % gui, FSCN2.pva, readback, Array Counter, BL03S-EA-FSCN-02:PVA:ArrayCounter_RBV +# % gui, FSCN2.pva, readback, Array Rate (fps), BL03S-EA-FSCN-02:PVA:ArrayRate_RBV +# % gui, FSCN2.pva, readback, Queue Use, BL03S-EA-FSCN-02:PVA:QueueUse +# % gui, FSCN2.pva, readback, Queue Size, BL03S-EA-FSCN-02:PVA:QueueSize +# % gui, FSCN2.pva, demand, Dropped Arrays, BL03S-EA-FSCN-02:PVA:DroppedArrays +# % gui, FSCN2.pva, readback, Dropped Arrays, BL03S-EA-FSCN-02:PVA:DroppedArrays_RBV # % gui, FSCN2.pva, groupHeading, Array Settings -# % gui, FSCN2.pva, readback, Num Dimensions, S03SIM-EA-FSCN-02:PVA:NDimensions_RBV -# % gui, FSCN2.pva, readback, Dim 0 Size, S03SIM-EA-FSCN-02:PVA:ArraySize0_RBV -# % gui, FSCN2.pva, readback, Dim 1 Size, S03SIM-EA-FSCN-02:PVA:ArraySize1_RBV -# % gui, FSCN2.pva, readback, Dim 2 Size, S03SIM-EA-FSCN-02:PVA:ArraySize2_RBV -# % gui, FSCN2.pva, readback, Input Data Type, S03SIM-EA-FSCN-02:PVA:DataType_RBV -# % gui, FSCN2.pva, readback, Colour Mode, S03SIM-EA-FSCN-02:PVA:ColorMode_RBV -# % gui, FSCN2.pva, readback, Bayer Pattern, S03SIM-EA-FSCN-02:PVA:BayerPattern_RBV -# % gui, FSCN2.pva, readback, Unique id, S03SIM-EA-FSCN-02:PVA:UniqueId_RBV -# % gui, FSCN2.pva, readback, Timestamp, S03SIM-EA-FSCN-02:PVA:TimeStamp_RBV +# % gui, FSCN2.pva, readback, Num Dimensions, BL03S-EA-FSCN-02:PVA:NDimensions_RBV +# % gui, FSCN2.pva, readback, Dim 0 Size, BL03S-EA-FSCN-02:PVA:ArraySize0_RBV +# % gui, FSCN2.pva, readback, Dim 1 Size, BL03S-EA-FSCN-02:PVA:ArraySize1_RBV +# % gui, FSCN2.pva, readback, Dim 2 Size, BL03S-EA-FSCN-02:PVA:ArraySize2_RBV +# % gui, FSCN2.pva, readback, Input Data Type, BL03S-EA-FSCN-02:PVA:DataType_RBV +# % gui, FSCN2.pva, readback, Colour Mode, BL03S-EA-FSCN-02:PVA:ColorMode_RBV +# % gui, FSCN2.pva, readback, Bayer Pattern, BL03S-EA-FSCN-02:PVA:BayerPattern_RBV +# % gui, FSCN2.pva, readback, Unique id, BL03S-EA-FSCN-02:PVA:UniqueId_RBV +# % gui, FSCN2.pva, readback, Timestamp, BL03S-EA-FSCN-02:PVA:TimeStamp_RBV # % gui, FSCN2.pva, groupHeading, PVA Settings -# % gui, FSCN2.pva, readback, PV Name, S03SIM-EA-FSCN-02:PVA:PvName_RBV +# % gui, FSCN2.pva, readback, PV Name, BL03S-EA-FSCN-02:PVA:PvName_RBV #=================================================================# # Template file: NDPluginBase.template @@ -11164,7 +11164,7 @@ record(waveform, "S03SIM-EA-FSCN-01:PVA:PvName_RBV") # This record contains the version of ADCore # ################################################################### -record(stringin, "S03SIM-EA-FSCN-02:PVA:ADCoreVersion_RBV") +record(stringin, "BL03S-EA-FSCN-02:PVA:ADCoreVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.pva,0,1)ADCORE_VERSION") @@ -11176,7 +11176,7 @@ record(stringin, "S03SIM-EA-FSCN-02:PVA:ADCoreVersion_RBV") # This record contains the version of the driver or plugin # ################################################################### -record(stringin, "S03SIM-EA-FSCN-02:PVA:DriverVersion_RBV") +record(stringin, "BL03S-EA-FSCN-02:PVA:DriverVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.pva,0,1)DRIVER_VERSION") @@ -11188,7 +11188,7 @@ record(stringin, "S03SIM-EA-FSCN-02:PVA:DriverVersion_RBV") # This record contains the asyn port name of this detector # ################################################################### -record(stringin, "S03SIM-EA-FSCN-02:PVA:PortName_RBV") +record(stringin, "BL03S-EA-FSCN-02:PVA:PortName_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.pva,0,1)PORT_NAME_SELF") @@ -11200,7 +11200,7 @@ record(stringin, "S03SIM-EA-FSCN-02:PVA:PortName_RBV") # These records contain basic information about the detector # ################################################################### -record(stringin, "S03SIM-EA-FSCN-02:PVA:Manufacturer_RBV") +record(stringin, "BL03S-EA-FSCN-02:PVA:Manufacturer_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.pva,0,1)MANUFACTURER") @@ -11208,7 +11208,7 @@ record(stringin, "S03SIM-EA-FSCN-02:PVA:Manufacturer_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-EA-FSCN-02:PVA:Model_RBV") +record(stringin, "BL03S-EA-FSCN-02:PVA:Model_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.pva,0,1)MODEL") @@ -11216,7 +11216,7 @@ record(stringin, "S03SIM-EA-FSCN-02:PVA:Model_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-EA-FSCN-02:PVA:SerialNumber_RBV") +record(stringin, "BL03S-EA-FSCN-02:PVA:SerialNumber_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.pva,0,1)SERIAL_NUMBER") @@ -11224,7 +11224,7 @@ record(stringin, "S03SIM-EA-FSCN-02:PVA:SerialNumber_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-EA-FSCN-02:PVA:SDKVersion_RBV") +record(stringin, "BL03S-EA-FSCN-02:PVA:SDKVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.pva,0,1)SDK_VERSION") @@ -11232,7 +11232,7 @@ record(stringin, "S03SIM-EA-FSCN-02:PVA:SDKVersion_RBV") field(SCAN, "I/O Intr") } -record(stringin, "S03SIM-EA-FSCN-02:PVA:FirmwareVersion_RBV") +record(stringin, "BL03S-EA-FSCN-02:PVA:FirmwareVersion_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.pva,0,1)FIRMWARE_VERSION") @@ -11244,17 +11244,17 @@ record(stringin, "S03SIM-EA-FSCN-02:PVA:FirmwareVersion_RBV") # These records control acquisition start and stop # ################################################################### -record(bo, "S03SIM-EA-FSCN-02:PVA:Acquire") { +record(bo, "BL03S-EA-FSCN-02:PVA:Acquire") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.pva,0,1)ACQUIRE") field(ZNAM, "Done") field(ONAM, "Acquire") field(VAL, "0") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:SetAcquireBusy") + field(FLNK, "BL03S-EA-FSCN-02:PVA:SetAcquireBusy") info(ai:READBACK, "1") } -record(bi, "S03SIM-EA-FSCN-02:PVA:Acquire_RBV") { +record(bi, "BL03S-EA-FSCN-02:PVA:Acquire_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)ACQUIRE") field(ZNAM, "Done") @@ -11264,15 +11264,15 @@ record(bi, "S03SIM-EA-FSCN-02:PVA:Acquire_RBV") { field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-EA-FSCN-02:PVA:SetAcquireBusy") +record(calcout, "BL03S-EA-FSCN-02:PVA:SetAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:PVA:Acquire NPP") + field(INPA, "BL03S-EA-FSCN-02:PVA:Acquire NPP") field(CALC, "A") field(OOPT, "Transition To Non-zero") - field(OUT, "S03SIM-EA-FSCN-02:PVA:AcquireBusy PP") + field(OUT, "BL03S-EA-FSCN-02:PVA:AcquireBusy PP") } -record(bi, "S03SIM-EA-FSCN-02:PVA:AcquireBusy") { +record(bi, "BL03S-EA-FSCN-02:PVA:AcquireBusy") { field(ZNAM, "Done") field(ZSV, "NO_ALARM") field(ONAM, "Acquiring") @@ -11280,7 +11280,7 @@ record(bi, "S03SIM-EA-FSCN-02:PVA:AcquireBusy") { field(VAL, "0") } -record(bi, "S03SIM-EA-FSCN-02:PVA:AcquireBusyCB") { +record(bi, "BL03S-EA-FSCN-02:PVA:AcquireBusyCB") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)ACQUIRE_BUSY") field(ZNAM, "Done") @@ -11290,14 +11290,14 @@ record(bi, "S03SIM-EA-FSCN-02:PVA:AcquireBusyCB") { field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-EA-FSCN-02:PVA:ClearAcquireBusy") { - field(INPA, "S03SIM-EA-FSCN-02:PVA:AcquireBusyCB CP") +record(calcout, "BL03S-EA-FSCN-02:PVA:ClearAcquireBusy") { + field(INPA, "BL03S-EA-FSCN-02:PVA:AcquireBusyCB CP") field(CALC, "A") field(OOPT, "Transition To Zero") - field(OUT, "S03SIM-EA-FSCN-02:PVA:AcquireBusy PP") + field(OUT, "BL03S-EA-FSCN-02:PVA:AcquireBusy PP") } -record(bo, "S03SIM-EA-FSCN-02:PVA:WaitForPlugins") { +record(bo, "BL03S-EA-FSCN-02:PVA:WaitForPlugins") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.pva,0,1)WAIT_FOR_PLUGINS") @@ -11310,13 +11310,13 @@ record(bo, "S03SIM-EA-FSCN-02:PVA:WaitForPlugins") { # These records are the array size and data type # ################################################################### # The number of dimensions -record(longout, "S03SIM-EA-FSCN-02:PVA:NDimensions") +record(longout, "BL03S-EA-FSCN-02:PVA:NDimensions") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.pva,0,1)ARRAY_NDIMENSIONS") } -record(longin, "S03SIM-EA-FSCN-02:PVA:NDimensions_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:NDimensions_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)ARRAY_NDIMENSIONS") @@ -11324,346 +11324,346 @@ record(longin, "S03SIM-EA-FSCN-02:PVA:NDimensions_RBV") } # The array dimensions waveform records -record(waveform, "S03SIM-EA-FSCN-02:PVA:Dimensions") +record(waveform, "BL03S-EA-FSCN-02:PVA:Dimensions") { field(DTYP, "asynInt32ArrayOut") field(INP, "@asyn(FSCN2.pva,0,1)ARRAY_DIMENSIONS") field(FTVL, "LONG") field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim0SA") + field(FLNK, "BL03S-EA-FSCN-02:PVA:Dim0SA") } -record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim0SA") +record(subArray, "BL03S-EA-FSCN-02:PVA:Dim0SA") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-02:PVA:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize0") + field(FLNK, "BL03S-EA-FSCN-02:PVA:ArraySize0") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize0") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySize0") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dim0SA") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim1SA") + field(INP, "BL03S-EA-FSCN-02:PVA:Dim0SA") + field(FLNK, "BL03S-EA-FSCN-02:PVA:Dim1SA") } -record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim1SA") +record(subArray, "BL03S-EA-FSCN-02:PVA:Dim1SA") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-02:PVA:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize1") + field(FLNK, "BL03S-EA-FSCN-02:PVA:ArraySize1") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize1") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySize1") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dim1SA") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim2SA") + field(INP, "BL03S-EA-FSCN-02:PVA:Dim1SA") + field(FLNK, "BL03S-EA-FSCN-02:PVA:Dim2SA") } -record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim2SA") +record(subArray, "BL03S-EA-FSCN-02:PVA:Dim2SA") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-02:PVA:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize2") + field(FLNK, "BL03S-EA-FSCN-02:PVA:ArraySize2") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize2") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySize2") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dim2SA") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim3SA") + field(INP, "BL03S-EA-FSCN-02:PVA:Dim2SA") + field(FLNK, "BL03S-EA-FSCN-02:PVA:Dim3SA") } -record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim3SA") +record(subArray, "BL03S-EA-FSCN-02:PVA:Dim3SA") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-02:PVA:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize3") + field(FLNK, "BL03S-EA-FSCN-02:PVA:ArraySize3") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize3") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySize3") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dim3SA") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim4SA") + field(INP, "BL03S-EA-FSCN-02:PVA:Dim3SA") + field(FLNK, "BL03S-EA-FSCN-02:PVA:Dim4SA") } -record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim4SA") +record(subArray, "BL03S-EA-FSCN-02:PVA:Dim4SA") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-02:PVA:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize4") + field(FLNK, "BL03S-EA-FSCN-02:PVA:ArraySize4") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize4") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySize4") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dim4SA") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim5SA") + field(INP, "BL03S-EA-FSCN-02:PVA:Dim4SA") + field(FLNK, "BL03S-EA-FSCN-02:PVA:Dim5SA") } -record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim5SA") +record(subArray, "BL03S-EA-FSCN-02:PVA:Dim5SA") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-02:PVA:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize5") + field(FLNK, "BL03S-EA-FSCN-02:PVA:ArraySize5") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize5") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySize5") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dim5SA") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim6SA") + field(INP, "BL03S-EA-FSCN-02:PVA:Dim5SA") + field(FLNK, "BL03S-EA-FSCN-02:PVA:Dim6SA") } -record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim6SA") +record(subArray, "BL03S-EA-FSCN-02:PVA:Dim6SA") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-02:PVA:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize6") + field(FLNK, "BL03S-EA-FSCN-02:PVA:ArraySize6") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize6") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySize6") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dim6SA") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim7SA") + field(INP, "BL03S-EA-FSCN-02:PVA:Dim6SA") + field(FLNK, "BL03S-EA-FSCN-02:PVA:Dim7SA") } -record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim7SA") +record(subArray, "BL03S-EA-FSCN-02:PVA:Dim7SA") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-02:PVA:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize7") + field(FLNK, "BL03S-EA-FSCN-02:PVA:ArraySize7") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize7") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySize7") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dim7SA") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim8SA") + field(INP, "BL03S-EA-FSCN-02:PVA:Dim7SA") + field(FLNK, "BL03S-EA-FSCN-02:PVA:Dim8SA") } -record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim8SA") +record(subArray, "BL03S-EA-FSCN-02:PVA:Dim8SA") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-02:PVA:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize8") + field(FLNK, "BL03S-EA-FSCN-02:PVA:ArraySize8") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize8") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySize8") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dim8SA") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim9SA") + field(INP, "BL03S-EA-FSCN-02:PVA:Dim8SA") + field(FLNK, "BL03S-EA-FSCN-02:PVA:Dim9SA") } -record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim9SA") +record(subArray, "BL03S-EA-FSCN-02:PVA:Dim9SA") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions NPP NMS") + field(INP, "BL03S-EA-FSCN-02:PVA:Dimensions NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize9") + field(FLNK, "BL03S-EA-FSCN-02:PVA:ArraySize9") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize9") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySize9") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dim9SA") + field(INP, "BL03S-EA-FSCN-02:PVA:Dim9SA") } -record(waveform, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV") +record(waveform, "BL03S-EA-FSCN-02:PVA:Dimensions_RBV") { field(DTYP, "asynInt32ArrayIn") field(INP, "@asyn(FSCN2.pva,0,1)ARRAY_DIMENSIONS") field(FTVL, "LONG") field(NELM, "10") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim0SA_RBV") + field(FLNK, "BL03S-EA-FSCN-02:PVA:Dim0SA_RBV") field(SCAN, "I/O Intr") } -record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim0SA_RBV") +record(subArray, "BL03S-EA-FSCN-02:PVA:Dim0SA_RBV") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "0") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize0_RBV") + field(FLNK, "BL03S-EA-FSCN-02:PVA:ArraySize0_RBV") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize0_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySize0_RBV") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dim0SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim1SA_RBV") + field(INP, "BL03S-EA-FSCN-02:PVA:Dim0SA_RBV") + field(FLNK, "BL03S-EA-FSCN-02:PVA:Dim1SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim1SA_RBV") +record(subArray, "BL03S-EA-FSCN-02:PVA:Dim1SA_RBV") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "1") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize1_RBV") + field(FLNK, "BL03S-EA-FSCN-02:PVA:ArraySize1_RBV") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize1_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySize1_RBV") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dim1SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim2SA_RBV") + field(INP, "BL03S-EA-FSCN-02:PVA:Dim1SA_RBV") + field(FLNK, "BL03S-EA-FSCN-02:PVA:Dim2SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim2SA_RBV") +record(subArray, "BL03S-EA-FSCN-02:PVA:Dim2SA_RBV") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "2") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize2_RBV") + field(FLNK, "BL03S-EA-FSCN-02:PVA:ArraySize2_RBV") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize2_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySize2_RBV") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dim2SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim3SA_RBV") + field(INP, "BL03S-EA-FSCN-02:PVA:Dim2SA_RBV") + field(FLNK, "BL03S-EA-FSCN-02:PVA:Dim3SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim3SA_RBV") +record(subArray, "BL03S-EA-FSCN-02:PVA:Dim3SA_RBV") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "3") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize3_RBV") + field(FLNK, "BL03S-EA-FSCN-02:PVA:ArraySize3_RBV") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize3_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySize3_RBV") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dim3SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim4SA_RBV") + field(INP, "BL03S-EA-FSCN-02:PVA:Dim3SA_RBV") + field(FLNK, "BL03S-EA-FSCN-02:PVA:Dim4SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim4SA_RBV") +record(subArray, "BL03S-EA-FSCN-02:PVA:Dim4SA_RBV") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "4") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize4_RBV") + field(FLNK, "BL03S-EA-FSCN-02:PVA:ArraySize4_RBV") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize4_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySize4_RBV") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dim4SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim5SA_RBV") + field(INP, "BL03S-EA-FSCN-02:PVA:Dim4SA_RBV") + field(FLNK, "BL03S-EA-FSCN-02:PVA:Dim5SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim5SA_RBV") +record(subArray, "BL03S-EA-FSCN-02:PVA:Dim5SA_RBV") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "5") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize5_RBV") + field(FLNK, "BL03S-EA-FSCN-02:PVA:ArraySize5_RBV") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize5_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySize5_RBV") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dim5SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim6SA_RBV") + field(INP, "BL03S-EA-FSCN-02:PVA:Dim5SA_RBV") + field(FLNK, "BL03S-EA-FSCN-02:PVA:Dim6SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim6SA_RBV") +record(subArray, "BL03S-EA-FSCN-02:PVA:Dim6SA_RBV") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "6") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize6_RBV") + field(FLNK, "BL03S-EA-FSCN-02:PVA:ArraySize6_RBV") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize6_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySize6_RBV") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dim6SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim7SA_RBV") + field(INP, "BL03S-EA-FSCN-02:PVA:Dim6SA_RBV") + field(FLNK, "BL03S-EA-FSCN-02:PVA:Dim7SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim7SA_RBV") +record(subArray, "BL03S-EA-FSCN-02:PVA:Dim7SA_RBV") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "7") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize7_RBV") + field(FLNK, "BL03S-EA-FSCN-02:PVA:ArraySize7_RBV") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize7_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySize7_RBV") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dim7SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim8SA_RBV") + field(INP, "BL03S-EA-FSCN-02:PVA:Dim7SA_RBV") + field(FLNK, "BL03S-EA-FSCN-02:PVA:Dim8SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim8SA_RBV") +record(subArray, "BL03S-EA-FSCN-02:PVA:Dim8SA_RBV") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "8") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize8_RBV") + field(FLNK, "BL03S-EA-FSCN-02:PVA:ArraySize8_RBV") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize8_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySize8_RBV") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dim8SA_RBV") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:Dim9SA_RBV") + field(INP, "BL03S-EA-FSCN-02:PVA:Dim8SA_RBV") + field(FLNK, "BL03S-EA-FSCN-02:PVA:Dim9SA_RBV") } -record(subArray, "S03SIM-EA-FSCN-02:PVA:Dim9SA_RBV") +record(subArray, "BL03S-EA-FSCN-02:PVA:Dim9SA_RBV") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") + field(INP, "BL03S-EA-FSCN-02:PVA:Dimensions_RBV NPP NMS") field(FTVL, "LONG") field(MALM, "10") field(NELM, "1") field(INDX, "9") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:ArraySize9_RBV") + field(FLNK, "BL03S-EA-FSCN-02:PVA:ArraySize9_RBV") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize9_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySize9_RBV") { - field(INP, "S03SIM-EA-FSCN-02:PVA:Dim9SA_RBV") + field(INP, "BL03S-EA-FSCN-02:PVA:Dim9SA_RBV") } -record(mbbi, "S03SIM-EA-FSCN-02:PVA:BayerPattern_RBV") +record(mbbi, "BL03S-EA-FSCN-02:PVA:BayerPattern_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)BAYER_PATTERN") @@ -11678,28 +11678,28 @@ record(mbbi, "S03SIM-EA-FSCN-02:PVA:BayerPattern_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySizeX_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySizeX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)ARRAY_SIZE_X") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySizeY_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySizeY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)ARRAY_SIZE_Y") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySizeZ_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySizeZ_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)ARRAY_SIZE_Z") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:ArraySize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)ARRAY_SIZE") @@ -11709,7 +11709,7 @@ record(longin, "S03SIM-EA-FSCN-02:PVA:ArraySize_RBV") ################################################################### # These records have information on the compression # ################################################################### -record(stringin, "S03SIM-EA-FSCN-02:PVA:Codec_RBV") +record(stringin, "BL03S-EA-FSCN-02:PVA:Codec_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.pva,0,1)CODEC") @@ -11717,7 +11717,7 @@ record(stringin, "S03SIM-EA-FSCN-02:PVA:Codec_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-02:PVA:CompressedSize_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:CompressedSize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)COMPRESSED_SIZE") @@ -11728,7 +11728,7 @@ record(longin, "S03SIM-EA-FSCN-02:PVA:CompressedSize_RBV") # These records control the data type # ################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:PVA:DataType") +record(mbbo, "BL03S-EA-FSCN-02:PVA:DataType") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -11757,7 +11757,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:PVA:DataType") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-EA-FSCN-02:PVA:DataType_RBV") +record(mbbi, "BL03S-EA-FSCN-02:PVA:DataType_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)DATA_TYPE") @@ -11789,7 +11789,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:PVA:DataType_RBV") # These choices must agree with NDColorMode_t in NDArray.h # ################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:PVA:ColorMode") +record(mbbo, "BL03S-EA-FSCN-02:PVA:ColorMode") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -11813,7 +11813,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:PVA:ColorMode") info(autosaveFields, "VAL") } -record(mbbi, "S03SIM-EA-FSCN-02:PVA:ColorMode_RBV") +record(mbbi, "BL03S-EA-FSCN-02:PVA:ColorMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)COLOR_MODE") @@ -11839,14 +11839,14 @@ record(mbbi, "S03SIM-EA-FSCN-02:PVA:ColorMode_RBV") ################################################################### # These records are the uniqueId and time stamps of the array # ################################################################### -record(longin, "S03SIM-EA-FSCN-02:PVA:UniqueId_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:UniqueId_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)UNIQUE_ID") field(SCAN, "I/O Intr") } -record(ai, "S03SIM-EA-FSCN-02:PVA:TimeStamp_RBV") +record(ai, "BL03S-EA-FSCN-02:PVA:TimeStamp_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.pva,0,1)TIME_STAMP") @@ -11854,14 +11854,14 @@ record(ai, "S03SIM-EA-FSCN-02:PVA:TimeStamp_RBV") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-02:PVA:EpicsTSSec_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:EpicsTSSec_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)EPICS_TS_SEC") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-02:PVA:EpicsTSNsec_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:EpicsTSNsec_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)EPICS_TS_NSEC") @@ -11872,13 +11872,13 @@ record(longin, "S03SIM-EA-FSCN-02:PVA:EpicsTSNsec_RBV") # These records provide statistics on array callbacks and # # array callback rates # ################################################################### -record(longout, "S03SIM-EA-FSCN-02:PVA:ArrayCounter") +record(longout, "BL03S-EA-FSCN-02:PVA:ArrayCounter") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.pva,0,1)ARRAY_COUNTER") } -record(longin, "S03SIM-EA-FSCN-02:PVA:ArrayCounter_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:ArrayCounter_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)ARRAY_COUNTER") @@ -11886,12 +11886,12 @@ record(longin, "S03SIM-EA-FSCN-02:PVA:ArrayCounter_RBV") } # Updated rate calculation to use a smoothing factor w/ guard against negative values -record(calc, "S03SIM-EA-FSCN-02:PVA:ArrayRate_RBV") +record(calc, "BL03S-EA-FSCN-02:PVA:ArrayRate_RBV") { - field(INPA, "S03SIM-EA-FSCN-02:PVA:ArrayRate_RBV.LB NPP NMS") # Previous counter value - field(INPB, "S03SIM-EA-FSCN-02:PVA:ArrayCounter_RBV NPP NMS") # Current counter value + field(INPA, "BL03S-EA-FSCN-02:PVA:ArrayRate_RBV.LB NPP NMS") # Previous counter value + field(INPB, "BL03S-EA-FSCN-02:PVA:ArrayCounter_RBV NPP NMS") # Current counter value field(INPC, "1.0") # Delta time in seconds - field(INPD, "S03SIM-EA-FSCN-02:PVA:ArrayRate_RBV.VAL NPP NMS") # Previous rate + field(INPD, "BL03S-EA-FSCN-02:PVA:ArrayRate_RBV.VAL NPP NMS") # Previous rate field(INPE, "0.0") # Smoothing factor field(CALC, "(D*E)/C+MAX(0,B-A)*(1-E)/C") field(PREC, "2" ) @@ -11902,7 +11902,7 @@ record(calc, "S03SIM-EA-FSCN-02:PVA:ArrayRate_RBV") ################################################################### # These records control NDArray callacks # ################################################################### -record(bo, "S03SIM-EA-FSCN-02:PVA:ArrayCallbacks") +record(bo, "BL03S-EA-FSCN-02:PVA:ArrayCallbacks") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -11915,7 +11915,7 @@ record(bo, "S03SIM-EA-FSCN-02:PVA:ArrayCallbacks") info(autosaveFields, "VAL") } -record(bi, "S03SIM-EA-FSCN-02:PVA:ArrayCallbacks_RBV") +record(bi, "BL03S-EA-FSCN-02:PVA:ArrayCallbacks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)ARRAY_CALLBACKS") @@ -11930,7 +11930,7 @@ record(bi, "S03SIM-EA-FSCN-02:PVA:ArrayCallbacks_RBV") # This record contains macro definitions for the attributes # ################################################################### -record(waveform, "S03SIM-EA-FSCN-02:PVA:NDAttributesMacros") +record(waveform, "BL03S-EA-FSCN-02:PVA:NDAttributesMacros") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -11944,7 +11944,7 @@ record(waveform, "S03SIM-EA-FSCN-02:PVA:NDAttributesMacros") # This record is the name of a file defining attributes # ################################################################### -record(waveform, "S03SIM-EA-FSCN-02:PVA:NDAttributesFile") +record(waveform, "BL03S-EA-FSCN-02:PVA:NDAttributesFile") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -11958,7 +11958,7 @@ record(waveform, "S03SIM-EA-FSCN-02:PVA:NDAttributesFile") # This record defines the status of reading attributes file # ################################################################### -record(mbbi, "S03SIM-EA-FSCN-02:PVA:NDAttributesStatus") +record(mbbi, "BL03S-EA-FSCN-02:PVA:NDAttributesStatus") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)ND_ATTRIBUTES_STATUS") @@ -11981,7 +11981,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:PVA:NDAttributesStatus") # Status of NDArrayPool - number of buffers, memory used etc. # ################################################################### -record(ai, "S03SIM-EA-FSCN-02:PVA:PoolMaxMem") +record(ai, "BL03S-EA-FSCN-02:PVA:PoolMaxMem") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.pva,0,1)POOL_MAX_MEMORY") @@ -11991,45 +11991,45 @@ record(ai, "S03SIM-EA-FSCN-02:PVA:PoolMaxMem") field(PINI, "YES") } -record(ai, "S03SIM-EA-FSCN-02:PVA:PoolUsedMem") +record(ai, "BL03S-EA-FSCN-02:PVA:PoolUsedMem") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.pva,0,1)POOL_USED_MEMORY") field(PREC, "1") field(EGU, "MB") field(SCAN, "1 second") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:PoolAllocBuffers") + field(FLNK, "BL03S-EA-FSCN-02:PVA:PoolAllocBuffers") info(autosaveFields, "SCAN") } -record(longin, "S03SIM-EA-FSCN-02:PVA:PoolAllocBuffers") +record(longin, "BL03S-EA-FSCN-02:PVA:PoolAllocBuffers") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)POOL_ALLOC_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:PoolFreeBuffers") + field(FLNK, "BL03S-EA-FSCN-02:PVA:PoolFreeBuffers") } -record(longin, "S03SIM-EA-FSCN-02:PVA:PoolFreeBuffers") +record(longin, "BL03S-EA-FSCN-02:PVA:PoolFreeBuffers") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)POOL_FREE_BUFFERS") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:PoolUsedBuffers") + field(FLNK, "BL03S-EA-FSCN-02:PVA:PoolUsedBuffers") } -record(calc, "S03SIM-EA-FSCN-02:PVA:PoolUsedBuffers") +record(calc, "BL03S-EA-FSCN-02:PVA:PoolUsedBuffers") { - field(INPA, "S03SIM-EA-FSCN-02:PVA:PoolAllocBuffers NPP MS") - field(INPB, "S03SIM-EA-FSCN-02:PVA:PoolFreeBuffers NPP MS") + field(INPA, "BL03S-EA-FSCN-02:PVA:PoolAllocBuffers NPP MS") + field(INPB, "BL03S-EA-FSCN-02:PVA:PoolFreeBuffers NPP MS") field(CALC, "A-B") } -record(bo, "S03SIM-EA-FSCN-02:PVA:EmptyFreeList") +record(bo, "BL03S-EA-FSCN-02:PVA:EmptyFreeList") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.pva,0,1)POOL_EMPTY_FREELIST") } -record(longin, "S03SIM-EA-FSCN-02:PVA:NumQueuedArrays") +record(longin, "BL03S-EA-FSCN-02:PVA:NumQueuedArrays") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)NUM_QUEUED_ARRAYS") @@ -12040,7 +12040,7 @@ record(longin, "S03SIM-EA-FSCN-02:PVA:NumQueuedArrays") # This record contains the type of plugin # ################################################################### -record(stringin, "S03SIM-EA-FSCN-02:PVA:PluginType_RBV") +record(stringin, "BL03S-EA-FSCN-02:PVA:PluginType_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.pva,0,1)PLUGIN_TYPE") @@ -12053,7 +12053,7 @@ record(stringin, "S03SIM-EA-FSCN-02:PVA:PluginType_RBV") # an NDArray driver port and address # ################################################################### # Array port name -record(stringout, "S03SIM-EA-FSCN-02:PVA:NDArrayPort") +record(stringout, "BL03S-EA-FSCN-02:PVA:NDArrayPort") { field(PINI, "YES") field(DTYP, "asynOctetWrite") @@ -12062,14 +12062,14 @@ record(stringout, "S03SIM-EA-FSCN-02:PVA:NDArrayPort") info(autosaveFields, "VAL") } -record(stringin, "S03SIM-EA-FSCN-02:PVA:NDArrayPort_RBV") +record(stringin, "BL03S-EA-FSCN-02:PVA:NDArrayPort_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.pva,0,1)NDARRAY_PORT") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-EA-FSCN-02:PVA:NDArrayAddress") +record(longout, "BL03S-EA-FSCN-02:PVA:NDArrayAddress") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -12078,7 +12078,7 @@ record(longout, "S03SIM-EA-FSCN-02:PVA:NDArrayAddress") info(autosaveFields, "VAL") } -record(longin, "S03SIM-EA-FSCN-02:PVA:NDArrayAddress_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:NDArrayAddress_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)NDARRAY_ADDR") @@ -12089,7 +12089,7 @@ record(longin, "S03SIM-EA-FSCN-02:PVA:NDArrayAddress_RBV") # These records control whether callbacks are enabled and # # minimum time between callbacks # ################################################################### -record(bo, "S03SIM-EA-FSCN-02:PVA:EnableCallbacks") +record(bo, "BL03S-EA-FSCN-02:PVA:EnableCallbacks") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -12100,7 +12100,7 @@ record(bo, "S03SIM-EA-FSCN-02:PVA:EnableCallbacks") info(autosaveFields, "VAL") } -record(bi, "S03SIM-EA-FSCN-02:PVA:EnableCallbacks_RBV") +record(bi, "BL03S-EA-FSCN-02:PVA:EnableCallbacks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)ENABLE_CALLBACKS") @@ -12111,7 +12111,7 @@ record(bi, "S03SIM-EA-FSCN-02:PVA:EnableCallbacks_RBV") field(SCAN, "I/O Intr") } -record(ao, "S03SIM-EA-FSCN-02:PVA:MinCallbackTime") +record(ao, "BL03S-EA-FSCN-02:PVA:MinCallbackTime") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -12123,7 +12123,7 @@ record(ao, "S03SIM-EA-FSCN-02:PVA:MinCallbackTime") info(autosaveFields, "VAL") } -record(ai, "S03SIM-EA-FSCN-02:PVA:MinCallbackTime_RBV") +record(ai, "BL03S-EA-FSCN-02:PVA:MinCallbackTime_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.pva,0,1)MIN_CALLBACK_TIME") @@ -12132,33 +12132,33 @@ record(ai, "S03SIM-EA-FSCN-02:PVA:MinCallbackTime_RBV") field(SCAN, "I/O Intr") } -record(ao, "S03SIM-EA-FSCN-02:PVA:MaxArrayRate") +record(ao, "BL03S-EA-FSCN-02:PVA:MaxArrayRate") { field(DTYP, "Soft Channel") - field(OUT, "S03SIM-EA-FSCN-02:PVA:MaxArrayRate_COUT PP") + field(OUT, "BL03S-EA-FSCN-02:PVA:MaxArrayRate_COUT PP") field(EGU, "Hz") field(PREC, "3") field(VAL, "0.0") info(autosaveFields, "VAL") } -record(calcout, "S03SIM-EA-FSCN-02:PVA:MaxArrayRate_COUT") +record(calcout, "BL03S-EA-FSCN-02:PVA:MaxArrayRate_COUT") { - field(INPA, "S03SIM-EA-FSCN-02:PVA:MaxArrayRate") + field(INPA, "BL03S-EA-FSCN-02:PVA:MaxArrayRate") field(CALC, "A=0?0:1.0/A") - field(OUT, "S03SIM-EA-FSCN-02:PVA:MinCallbackTime PP") + field(OUT, "BL03S-EA-FSCN-02:PVA:MinCallbackTime PP") } -record(calc, "S03SIM-EA-FSCN-02:PVA:MaxArrayRate_RBV") +record(calc, "BL03S-EA-FSCN-02:PVA:MaxArrayRate_RBV") { - field(INPA, "S03SIM-EA-FSCN-02:PVA:MinCallbackTime_RBV CP") + field(INPA, "BL03S-EA-FSCN-02:PVA:MinCallbackTime_RBV CP") field(CALC, "A=0?0:1.0/A") field(EGU, "Hz") field(PREC, "3") field(SCAN, "Passive") } -record(ao, "S03SIM-EA-FSCN-02:PVA:MaxByteRate") +record(ao, "BL03S-EA-FSCN-02:PVA:MaxByteRate") { field(PINI, "YES") field(DTYP, "asynFloat64") @@ -12170,7 +12170,7 @@ record(ao, "S03SIM-EA-FSCN-02:PVA:MaxByteRate") info(autosaveFields, "VAL") } -record(ai, "S03SIM-EA-FSCN-02:PVA:MaxByteRate_RBV") +record(ai, "BL03S-EA-FSCN-02:PVA:MaxByteRate_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.pva,0,1)MAX_BYTE_RATE") @@ -12182,7 +12182,7 @@ record(ai, "S03SIM-EA-FSCN-02:PVA:MaxByteRate_RBV") ################################################################### # This record contains the last execution time of the plugin # ################################################################### -record(ai, "S03SIM-EA-FSCN-02:PVA:ExecutionTime_RBV") +record(ai, "BL03S-EA-FSCN-02:PVA:ExecutionTime_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.pva,0,1)EXECUTION_TIME") @@ -12195,7 +12195,7 @@ record(ai, "S03SIM-EA-FSCN-02:PVA:ExecutionTime_RBV") # This record requests that the plugin execute again with the # # same NDArray # ################################################################### -record(bo, "S03SIM-EA-FSCN-02:PVA:ProcessPlugin") +record(bo, "BL03S-EA-FSCN-02:PVA:ProcessPlugin") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.pva,0,1)PROCESS_PLUGIN") @@ -12205,7 +12205,7 @@ record(bo, "S03SIM-EA-FSCN-02:PVA:ProcessPlugin") ################################################################### # These records control whether callbacks block or not # ################################################################### -record(bo, "S03SIM-EA-FSCN-02:PVA:BlockingCallbacks") +record(bo, "BL03S-EA-FSCN-02:PVA:BlockingCallbacks") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -12216,7 +12216,7 @@ record(bo, "S03SIM-EA-FSCN-02:PVA:BlockingCallbacks") info(autosaveFields, "VAL") } -record(bi, "S03SIM-EA-FSCN-02:PVA:BlockingCallbacks_RBV") +record(bi, "BL03S-EA-FSCN-02:PVA:BlockingCallbacks_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)BLOCKING_CALLBACKS") @@ -12226,7 +12226,7 @@ record(bi, "S03SIM-EA-FSCN-02:PVA:BlockingCallbacks_RBV") } -record(longout, "S03SIM-EA-FSCN-02:PVA:DroppedArrays") +record(longout, "BL03S-EA-FSCN-02:PVA:DroppedArrays") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -12234,53 +12234,53 @@ record(longout, "S03SIM-EA-FSCN-02:PVA:DroppedArrays") field(VAL, "0") } -record(longin, "S03SIM-EA-FSCN-02:PVA:DroppedArrays_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:DroppedArrays_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)DROPPED_ARRAYS") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-EA-FSCN-02:PVA:QueueSize") +record(longout, "BL03S-EA-FSCN-02:PVA:QueueSize") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.pva,0,1)QUEUE_SIZE") field(PINI, "YES") } -record(longin, "S03SIM-EA-FSCN-02:PVA:QueueSize_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:QueueSize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)QUEUE_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:QueueFreeLow") + field(FLNK, "BL03S-EA-FSCN-02:PVA:QueueFreeLow") field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-EA-FSCN-02:PVA:QueueFreeLow") { +record(calcout, "BL03S-EA-FSCN-02:PVA:QueueFreeLow") { field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:PVA:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:PVA:QueueFree.LOW") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:QueueUseHIGH") + field(INPA, "BL03S-EA-FSCN-02:PVA:QueueSize") + field(OUT, "BL03S-EA-FSCN-02:PVA:QueueFree.LOW") + field(FLNK, "BL03S-EA-FSCN-02:PVA:QueueUseHIGH") } # Set a HIGH warning level for the input queue fill level to 75% # of the full size of the queue -record(calcout, "S03SIM-EA-FSCN-02:PVA:QueueUseHIGH") { +record(calcout, "BL03S-EA-FSCN-02:PVA:QueueUseHIGH") { field(CALC, "A*0.75") - field(INPA, "S03SIM-EA-FSCN-02:PVA:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:PVA:QueueUse.HIGH") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:QueueUseHIHI") + field(INPA, "BL03S-EA-FSCN-02:PVA:QueueSize") + field(OUT, "BL03S-EA-FSCN-02:PVA:QueueUse.HIGH") + field(FLNK, "BL03S-EA-FSCN-02:PVA:QueueUseHIHI") } # Set a HIHI level for the input queue fill level to indicate an error # (MAJOR alarm) when it fills up to the full size of the queue (frames start dropping) -record(calcout, "S03SIM-EA-FSCN-02:PVA:QueueUseHIHI") { +record(calcout, "BL03S-EA-FSCN-02:PVA:QueueUseHIHI") { field(CALC, "A*1.0") - field(INPA, "S03SIM-EA-FSCN-02:PVA:QueueSize") - field(OUT, "S03SIM-EA-FSCN-02:PVA:QueueUse.HIHI") + field(INPA, "BL03S-EA-FSCN-02:PVA:QueueSize") + field(OUT, "BL03S-EA-FSCN-02:PVA:QueueUse.HIHI") } -record(longin, "S03SIM-EA-FSCN-02:PVA:QueueFree") +record(longin, "BL03S-EA-FSCN-02:PVA:QueueFree") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)QUEUE_FREE") @@ -12292,17 +12292,17 @@ record(longin, "S03SIM-EA-FSCN-02:PVA:QueueFree") } # Display the fill level on the plugins input queue -record(calc, "S03SIM-EA-FSCN-02:PVA:QueueUse") { +record(calc, "BL03S-EA-FSCN-02:PVA:QueueUse") { field(CALC, "A-B") - field(INPA, "S03SIM-EA-FSCN-02:PVA:QueueSize") - field(INPB, "S03SIM-EA-FSCN-02:PVA:QueueFree CP") + field(INPA, "BL03S-EA-FSCN-02:PVA:QueueSize") + field(INPB, "BL03S-EA-FSCN-02:PVA:QueueFree CP") field(SCAN, "Passive") field(HHSV, "MAJOR") field(HSV, "MINOR") field(HYST, "1") } -record(longout, "S03SIM-EA-FSCN-02:PVA:NumThreads") +record(longout, "BL03S-EA-FSCN-02:PVA:NumThreads") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.pva,0,1)NUM_THREADS") @@ -12310,14 +12310,14 @@ record(longout, "S03SIM-EA-FSCN-02:PVA:NumThreads") field(PINI, "YES") } -record(longin, "S03SIM-EA-FSCN-02:PVA:NumThreads_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:NumThreads_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)NUM_THREADS") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-02:PVA:MaxThreads_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:MaxThreads_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)MAX_THREADS") @@ -12327,7 +12327,7 @@ record(longin, "S03SIM-EA-FSCN-02:PVA:MaxThreads_RBV") ################################################################### # These records control output array sorting # ################################################################### -record(mbbo, "S03SIM-EA-FSCN-02:PVA:SortMode") { +record(mbbo, "BL03S-EA-FSCN-02:PVA:SortMode") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.pva,0,1)SORT_MODE") @@ -12337,7 +12337,7 @@ record(mbbo, "S03SIM-EA-FSCN-02:PVA:SortMode") { field(ONST, "Sorted") } -record(mbbi, "S03SIM-EA-FSCN-02:PVA:SortMode_RBV") { +record(mbbi, "BL03S-EA-FSCN-02:PVA:SortMode_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)SORT_MODE") field(ZRVL, "0") @@ -12347,7 +12347,7 @@ record(mbbi, "S03SIM-EA-FSCN-02:PVA:SortMode_RBV") { field(SCAN, "I/O Intr") } -record(ao, "S03SIM-EA-FSCN-02:PVA:SortTime") { +record(ao, "BL03S-EA-FSCN-02:PVA:SortTime") { field(PINI, "YES") field(DTYP, "asynFloat64") field(OUT, "@asyn(FSCN2.pva,0,1)SORT_TIME") @@ -12355,14 +12355,14 @@ record(ao, "S03SIM-EA-FSCN-02:PVA:SortTime") { field(VAL, "0.1") } -record(ai, "S03SIM-EA-FSCN-02:PVA:SortTime_RBV") { +record(ai, "BL03S-EA-FSCN-02:PVA:SortTime_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn(FSCN2.pva,0,1)SORT_TIME") field(PREC, "3") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-EA-FSCN-02:PVA:SortSize") +record(longout, "BL03S-EA-FSCN-02:PVA:SortSize") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.pva,0,1)SORT_SIZE") @@ -12370,15 +12370,15 @@ record(longout, "S03SIM-EA-FSCN-02:PVA:SortSize") field(PINI, "YES") } -record(longin, "S03SIM-EA-FSCN-02:PVA:SortSize_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:SortSize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)SORT_SIZE") - field(FLNK, "S03SIM-EA-FSCN-02:PVA:SortFreeLow") + field(FLNK, "BL03S-EA-FSCN-02:PVA:SortFreeLow") field(SCAN, "I/O Intr") } -record(longin, "S03SIM-EA-FSCN-02:PVA:SortFree") { +record(longin, "BL03S-EA-FSCN-02:PVA:SortFree") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)SORT_FREE") field(LLSV, "MAJOR") @@ -12388,13 +12388,13 @@ record(longin, "S03SIM-EA-FSCN-02:PVA:SortFree") { field(SCAN, "I/O Intr") } -record(calcout, "S03SIM-EA-FSCN-02:PVA:SortFreeLow") { +record(calcout, "BL03S-EA-FSCN-02:PVA:SortFreeLow") { field(CALC, "A*0.25") - field(INPA, "S03SIM-EA-FSCN-02:PVA:SortSize") - field(OUT, "S03SIM-EA-FSCN-02:PVA:SortFree.LOW") + field(INPA, "BL03S-EA-FSCN-02:PVA:SortSize") + field(OUT, "BL03S-EA-FSCN-02:PVA:SortFree.LOW") } -record(longout, "S03SIM-EA-FSCN-02:PVA:DroppedOutputArrays") +record(longout, "BL03S-EA-FSCN-02:PVA:DroppedOutputArrays") { field(PINI, "YES") field(DTYP, "asynInt32") @@ -12402,21 +12402,21 @@ record(longout, "S03SIM-EA-FSCN-02:PVA:DroppedOutputArrays") field(VAL, "0") } -record(longin, "S03SIM-EA-FSCN-02:PVA:DroppedOutputArrays_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:DroppedOutputArrays_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)DROPPED_OUTPUT_ARRAYS") field(SCAN, "I/O Intr") } -record(longout, "S03SIM-EA-FSCN-02:PVA:DisorderedArrays") +record(longout, "BL03S-EA-FSCN-02:PVA:DisorderedArrays") { field(DTYP, "asynInt32") field(OUT, "@asyn(FSCN2.pva,0,1)DISORDERED_ARRAYS") field(PINI, "YES") } -record(longin, "S03SIM-EA-FSCN-02:PVA:DisorderedArrays_RBV") +record(longin, "BL03S-EA-FSCN-02:PVA:DisorderedArrays_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn(FSCN2.pva,0,1)DISORDERED_ARRAYS") @@ -12433,7 +12433,7 @@ record(longin, "S03SIM-EA-FSCN-02:PVA:DisorderedArrays_RBV") # New records for NDPluginPva -record(waveform, "S03SIM-EA-FSCN-02:PVA:PvName_RBV") +record(waveform, "BL03S-EA-FSCN-02:PVA:PvName_RBV") { field(DTYP, "asynOctetRead") field(INP, "@asyn(FSCN2.pva,0,1)PV_NAME") diff --git a/tickit_devices/oav/db_files/EA-OAV.db b/tickit_devices/oav/db_files/EA-OAV.db index 11381d48..7a94439f 100755 --- a/tickit_devices/oav/db_files/EA-OAV.db +++ b/tickit_devices/oav/db_files/EA-OAV.db @@ -1,4 +1,4 @@ -record(stringout, "S03SIM-EA-OAV-01:FZOOM:ZOOMPOSCMD") +record(stringout, "BL03S-EA-OAV-01:FZOOM:ZOOMPOSCMD") { field(PINI, "YES") field(DTYP, "asynOctetWrite") diff --git a/tickit_devices/oav/db_files/MO-IOC.db b/tickit_devices/oav/db_files/MO-IOC.db index fbe1cea0..24664259 100644 --- a/tickit_devices/oav/db_files/MO-IOC.db +++ b/tickit_devices/oav/db_files/MO-IOC.db @@ -1,16 +1,21 @@ -record(waveform, "S03SIM-MO-SGON-01:X") -{ - field(DTYP, "asynOctetWrite") -} -record(waveform, "S03SIM-MO-SGON-01:X") -{ - field(DTYP, "asynOctetWrite") -} -record(waveform, "S03SIM-MO-SGON-01:X") -{ - field(DTYP, "asynOctetWrite") -} -record(waveform, "S03SIM-MO-SGON-01:OMEGA") -{ - field(DTYP, "asynOctetWrite") +record(longin, "BL03S-MO-SGON-01:X"){ + field(VAL, "0") + field(RBV, "0") + field(OFF, "0") + field(DIR, "0") + field(FOFF, "0") + field(SET, "0") + field(CELO, "0") + field(ACCL, "0") + field(EGU, "0") + field(MOVN, "0") + field(DMOV, "0") + field(HLS, "0") + field(LLS, "0") + field(HLM, "0") + field(LLM, "0") + field(TDIR, "0") + field(STOP, "0") + field(HOMF, "0") + field(HOMR, "0") } \ No newline at end of file diff --git a/tickit_devices/oav/oav_edge_detection.py b/tickit_devices/oav/oav_edge_detection.py index 81366a7f..3461faf6 100644 --- a/tickit_devices/oav/oav_edge_detection.py +++ b/tickit_devices/oav/oav_edge_detection.py @@ -1,8 +1,11 @@ +import random from dataclasses import dataclass +import numpy as np +from softioc import builder from tickit.adapters.composed import ComposedAdapter from tickit.adapters.epicsadapter import EpicsAdapter -from tickit.adapters.interpreters.command import CommandInterpreter +from tickit.adapters.interpreters.command import CommandInterpreter, RegexCommand from tickit.adapters.servers.tcp import TcpServer from tickit.core.adapter import Server from tickit.core.components.component import Component, ComponentConfig @@ -14,6 +17,30 @@ class OAVDevice(Device): + #: An empty typed mapping of device inputs + Inputs: TypedDict = TypedDict("Inputs", {}) + #: A typed mapping containing the current output value + Outputs: TypedDict = TypedDict("Outputs", {}) + + def __init__(self): + pass + + def update(self, time: SimTime, inputs: Inputs) -> DeviceUpdate[Outputs]: + """ + The device is only altered by adapters so take no inputs. + + Args: + time (SimTime): The current simulation time (in nanoseconds). + inputs (State): A mapping of inputs to the device and their values. + + Returns: + DeviceUpdate[Outputs]: + The produced update event. + """ + return DeviceUpdate(OAVDevice.Outputs(), None) + + +class OAVDeviceMXSC(Device): """Class for simulating the PVs in OAV relevant to edge detection. We won't try and implement any fancy logic (yet). Just get the PVs hosted. @@ -24,6 +51,31 @@ class OAVDevice(Device): #: A typed mapping containing the current output value Outputs: TypedDict = TypedDict("Outputs", {}) + def __init__(self, callback_period=1e9): + # the pin can be inserted at whatever orientation + self.callback_period = SimTime(callback_period) + widest_point = random.uniform(0, 180) + self.widest_points = (widest_point, widest_point - 180) + + # we arbitrarily decide the widest polynomial should be + # f(x) = -\frac{1}{360}(x - 180)^2 + 90 + self.widest_point_polynomial = -1 / 360 * (np.arange(0, 340) - 180) ** 2 + 90 + + self.omega = random.uniform(-180, 180) + + # For smargons, the limits are set to 0 since it can rotate indefinitely + self.high_limit_travel = 0 + self.low_limit_travel = 0 + + self.tip_x = int(random.uniform(10, 250)) + self.tip_y = int(random.uniform(300, 500)) + self.top = np.zeros(1024) + ln = np.log(np.arange(1, 1025 - self.tip_x)) + self.top[self.tip_x : 1024] = ln + self.tip_y + self.bottom = -self.top + + self.set_waveform_based_on_omega() + def update(self, time: SimTime, inputs: Inputs) -> DeviceUpdate[Outputs]: """Update method, will be unused since camera PVs won't change value without \ directly setting them. @@ -38,7 +90,48 @@ def update(self, time: SimTime, inputs: Inputs) -> DeviceUpdate[Outputs]: DeviceUpdate[Outputs]: The produced update event. """ - return DeviceUpdate(OAVDevice.Outputs(), None) + self.set_waveform_based_on_omega() + return DeviceUpdate(OAVDevice.Outputs(), SimTime(time + self.callback_period)) + + def get_omega(self): + """Getter for pv.""" + return self.omega + + def get_high_limit_travel(self): + """Getter for pv.""" + return self.high_limit_travel + + def get_low_limit_travel(self): + """Getter for pv.""" + return self.high_limit_travel + + def get_top(self) -> np.ndarray: + return self.top + + def get_bottom(self) -> np.ndarray: + return self.bottom + + def get_tip_x(self): + return self.tip_x + + def get_tip_y(self): + return self.tip_y + + def set_waveform_based_on_omega(self): + """The pin head is wider if omega is closest to a widest angle.""" + + # Get how close omega is to a widest angle. + # We need to modulo since self.omega could exceed 180 + distance_to_widest = min( + abs(self.omega - self.widest_points[0]) % 180, + abs(self.omega - self.widest_points[1]) % 180, + ) + + self.top[self.tip_x : self.tip_x + 340] = ( + self.widest_point_polynomial * (95 - distance_to_widest) / 90 + ) + self.tip_y + + self.bottom = -self.top class OAVTCPAdapter(ComposedAdapter): @@ -62,11 +155,117 @@ def __init__( ) -class OAVEpicsAdapter(EpicsAdapter): - """Epics Adapter. +class OAVTCPAdapterMXSC(ComposedAdapter): + device: OAVDeviceMXSC - Epics adapter for reading all Attributes as a PV - through channel access. + def __init__( + self, + server: Server, + ) -> None: + """OAV adapter, instantiates TcpServer with configured host and port. + + Args: + server (Server): The immutable data container used to configure a + server. + """ + super().__init__( + server, + CommandInterpreter(), + ) + + @RegexCommand(r"C=(\d+\.?\d*)", interrupt=True, format="utf-8") + async def set_top(self, value: float) -> None: + """Regex string command that sets the value of beam_current. + + Args: + value (int): The new value of beam_current. + """ + self.device.top = value + + @RegexCommand(r"C\?", format="utf-8") + async def get_top(self) -> bytes: + """Regex string command that returns the utf-8 encoded value of beam_current. + + Returns: + bytes: The utf-8 encoded value of beam_current. + """ + return str(self.device.top).encode("utf-8") + + @RegexCommand(r"C=(\d+\.?\d*)", interrupt=True, format="utf-8") + async def set_bottom(self, value: float) -> None: + """Regex string command that sets the value of beam_current. + + Args: + value (int): The new value of beam_current. + """ + self.device.bottom = value + + @RegexCommand(r"C\?", format="utf-8") + async def get_bottom(self) -> bytes: + """Regex string command that returns the utf-8 encoded value of beam_current. + + Returns: + bytes: The utf-8 encoded value of beam_current. + """ + return str(self.device.bottom).encode("utf-8") + + @RegexCommand(r"C=(\d+\.?\d*)", interrupt=True, format="utf-8") + async def set_tip_x(self, value: float) -> None: + """Regex string command that sets the value of beam_current. + + Args: + value (int): The new value of beam_current. + """ + self.device.tip_x = value + + @RegexCommand(r"C\?", format="utf-8") + async def get_tip_x(self) -> bytes: + """Regex string command that returns the utf-8 encoded value of beam_current. + + Returns: + bytes: The utf-8 encoded value of beam_current. + """ + return str(self.device.tip_x).encode("utf-8") + + @RegexCommand(r"C=(\d+\.?\d*)", interrupt=True, format="utf-8") + async def set_tip_y(self, value: float) -> None: + """Regex string command that sets the value of beam_current. + + Args: + value (int): The new value of beam_current. + """ + self.device.tip_y = value + + @RegexCommand(r"C\?", format="utf-8") + async def get_tip_y(self) -> bytes: + """Regex string command that returns the utf-8 encoded value of beam_current. + + Returns: + bytes: The utf-8 encoded value of beam_current. + """ + return str(self.device.tip_y).encode("utf-8") + + +class OAVEpicsAdapterMXSC(EpicsAdapter): + """ + Epics adapter for handling edge detection PVs. + """ + + device: OAVDeviceMXSC + + # Put all the PVs on EPICS + def on_db_load(self) -> None: + """Epics adapter for reading device values as a PV through channel access.""" + # self.device.set_waveform_based_on_omega() + self.link_input_on_interrupt(builder.aIn("MXSC:Top"), self.device.get_top) + self.link_input_on_interrupt(builder.aIn("MXSC:Bottom"), self.device.get_bottom) + self.link_input_on_interrupt(builder.aIn("MXSC:TipX"), self.device.get_tip_x) + self.link_input_on_interrupt(builder.aIn("MXSC:TipY"), self.device.get_tip_y) + + +class OAVEpicsAdapter(EpicsAdapter): + """ + Epics adapter for reading all Attributes as a PV through channel access. """ device: OAVDevice @@ -85,15 +284,15 @@ class OAV_DI_OAV(ComponentConfig): port: int = 25565 format: ByteFormat = ByteFormat(b"%b\r\n") db_file: str = "tickit_devices/oav/db_files/DI-OAV.db" - ioc_name: str = "S03SIM-DI-OAV-01" + ioc_name: str = "BL03S-DI-OAV-01" def __call__(self) -> Component: # noqa: D102 return DeviceSimulation( name=self.name, - device=OAVDevice(), + device=OAVDeviceMXSC(), adapters=[ - OAVTCPAdapter(TcpServer(self.host, self.port, self.format)), - OAVEpicsAdapter(self.db_file, self.ioc_name), + OAVTCPAdapterMXSC(TcpServer(self.host, self.port, self.format)), + OAVEpicsAdapterMXSC(self.db_file, self.ioc_name), ], ) @@ -103,10 +302,10 @@ class OAV_DI_IOC(ComponentConfig): """To hold DI-IOC PVs.""" host: str = "localhost" - port: int = 25565 + port: int = 25564 format: ByteFormat = ByteFormat(b"%b\r\n") db_file: str = "tickit_devices/oav/db_files/DI-IOC.db" - ioc_name: str = "S03SIM-DI-IOC-01" + ioc_name: str = "BL03S-DI-IOC-01" def __call__(self) -> Component: # noqa: D102 return DeviceSimulation( @@ -124,10 +323,10 @@ class OAV_EA_FSCN(ComponentConfig): """To hold EA-FSCN PVs.""" host: str = "localhost" - port: int = 25565 + port: int = 25563 format: ByteFormat = ByteFormat(b"%b\r\n") db_file: str = "tickit_devices/oav/db_files/EA-FSCN.db" - ioc_name: str = "S03SIM-EA-FSCN-01" + ioc_name: str = "BL03S-EA-FSCN-01" def __call__(self) -> Component: # noqa: D102 return DeviceSimulation( @@ -145,10 +344,10 @@ class OAV_EA_OAV(ComponentConfig): """To hold EA-OAV PVs.""" host: str = "localhost" - port: int = 25565 + port: int = 25562 format: ByteFormat = ByteFormat(b"%b\r\n") db_file: str = "tickit_devices/oav/db_files/EA-OAV.db" - ioc_name: str = "S03SIM-EA-OAV-01" + ioc_name: str = "BL03S-EA-OAV-01" def __call__(self) -> Component: # noqa: D102 return DeviceSimulation( @@ -166,10 +365,10 @@ class OAV_EA_BL(ComponentConfig): """To hold EA-BL PVs.""" host: str = "localhost" - port: int = 25565 + port: int = 25561 format: ByteFormat = ByteFormat(b"%b\r\n") db_file: str = "tickit_devices/oav/db_files/EA-BL.db" - ioc_name: str = "S03SIM-EA-BL-01" + ioc_name: str = "BL03S-EA-BL-01" def __call__(self) -> Component: # noqa: D102 return DeviceSimulation( @@ -187,10 +386,10 @@ class OAV_MO_IOC(ComponentConfig): """To hold MO-IOC PVs.""" host: str = "localhost" - port: int = 25565 + port: int = 25560 format: ByteFormat = ByteFormat(b"%b\r\n") db_file: str = "tickit_devices/oav/db_files/MO-IOC.db" - ioc_name: str = "S03SIM-MO-IOC-01" + ioc_name: str = "BL03S-MO-IOC-01" def __call__(self) -> Component: # noqa: D102 return DeviceSimulation( From ab972940e4fbe9ca53f7197a20f8492e92660ca9 Mon Sep 17 00:00:00 2001 From: Eva Lott Date: Mon, 5 Dec 2022 10:01:45 +0000 Subject: [PATCH 13/16] #26 Value changes to PVs --- tickit_devices/oav/db_files/DI-OAV.db | 2 ++ tickit_devices/oav/oav_edge_detection.py | 46 ++++++++++++++---------- 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/tickit_devices/oav/db_files/DI-OAV.db b/tickit_devices/oav/db_files/DI-OAV.db index 599cb44a..f3aacd47 100755 --- a/tickit_devices/oav/db_files/DI-OAV.db +++ b/tickit_devices/oav/db_files/DI-OAV.db @@ -5621,6 +5621,7 @@ record(bi, "BL03S-DI-OAV-01:OVER:1:Use_RBV") record(longin, "BL03S-DI-OAV-01:MJPG:ArraySize1_RBV") { + field(VAL, "1024") field(INP, "BL03S-DI-OAV-01:MJPG:Dim1SA_RBV") field(FLNK, "BL03S-DI-OAV-01:MJPG:Dim2SA_RBV") } @@ -5634,6 +5635,7 @@ record(longin, "BL03S-DI-OAV-01:MJPG:ArraySize2_RBV") { field(INP, "BL03S-DI-OAV-01:MJPG:Dim2SA_RBV") field(FLNK, "BL03S-DI-OAV-01:MJPG:Dim3SA_RBV") + field(VAL, "768") } record(stringout, "BL03S-DI-OAV-01:MJPG:NDArrayPort") { diff --git a/tickit_devices/oav/oav_edge_detection.py b/tickit_devices/oav/oav_edge_detection.py index 3461faf6..9f6c7f67 100644 --- a/tickit_devices/oav/oav_edge_detection.py +++ b/tickit_devices/oav/oav_edge_detection.py @@ -25,7 +25,9 @@ class OAVDevice(Device): def __init__(self): pass - def update(self, time: SimTime, inputs: Inputs) -> DeviceUpdate[Outputs]: + def update( + self, time: SimTime, inputs: Inputs, callback_period=int(1e9) + ) -> DeviceUpdate[Outputs]: """ The device is only altered by adapters so take no inputs. @@ -37,7 +39,7 @@ def update(self, time: SimTime, inputs: Inputs) -> DeviceUpdate[Outputs]: DeviceUpdate[Outputs]: The produced update event. """ - return DeviceUpdate(OAVDevice.Outputs(), None) + return DeviceUpdate(OAVDevice.Outputs(), SimTime(time + callback_period)) class OAVDeviceMXSC(Device): @@ -71,8 +73,10 @@ def __init__(self, callback_period=1e9): self.tip_y = int(random.uniform(300, 500)) self.top = np.zeros(1024) ln = np.log(np.arange(1, 1025 - self.tip_x)) - self.top[self.tip_x : 1024] = ln + self.tip_y + self.top[self.tip_x : 1024] = ln self.bottom = -self.top + self.top[self.tip_x :] += self.tip_y + self.bottom[self.tip_x :] += self.tip_y self.set_waveform_based_on_omega() @@ -106,15 +110,19 @@ def get_low_limit_travel(self): return self.high_limit_travel def get_top(self) -> np.ndarray: + """Getter for pv.""" return self.top def get_bottom(self) -> np.ndarray: + """Getter for pv.""" return self.bottom - def get_tip_x(self): + def get_tip_x(self) -> int: + """Getter for pv.""" return self.tip_x - def get_tip_y(self): + def get_tip_y(self) -> int: + """Getter for pv.""" return self.tip_y def set_waveform_based_on_omega(self): @@ -126,12 +134,10 @@ def set_waveform_based_on_omega(self): abs(self.omega - self.widest_points[0]) % 180, abs(self.omega - self.widest_points[1]) % 180, ) - - self.top[self.tip_x : self.tip_x + 340] = ( - self.widest_point_polynomial * (95 - distance_to_widest) / 90 - ) + self.tip_y - - self.bottom = -self.top + distance_to_widest = 0 + bulge = self.widest_point_polynomial * (95 - distance_to_widest) / 90 + self.top[self.tip_x : self.tip_x + 340] = bulge + self.tip_y + self.bottom[self.tip_x : self.tip_x + 340] = -bulge + self.tip_y class OAVTCPAdapter(ComposedAdapter): @@ -174,7 +180,7 @@ def __init__( ) @RegexCommand(r"C=(\d+\.?\d*)", interrupt=True, format="utf-8") - async def set_top(self, value: float) -> None: + async def set_top(self, value: np.ndarray) -> None: """Regex string command that sets the value of beam_current. Args: @@ -192,7 +198,7 @@ async def get_top(self) -> bytes: return str(self.device.top).encode("utf-8") @RegexCommand(r"C=(\d+\.?\d*)", interrupt=True, format="utf-8") - async def set_bottom(self, value: float) -> None: + async def set_bottom(self, value: np.ndarray) -> None: """Regex string command that sets the value of beam_current. Args: @@ -256,11 +262,15 @@ class OAVEpicsAdapterMXSC(EpicsAdapter): # Put all the PVs on EPICS def on_db_load(self) -> None: """Epics adapter for reading device values as a PV through channel access.""" - # self.device.set_waveform_based_on_omega() - self.link_input_on_interrupt(builder.aIn("MXSC:Top"), self.device.get_top) - self.link_input_on_interrupt(builder.aIn("MXSC:Bottom"), self.device.get_bottom) - self.link_input_on_interrupt(builder.aIn("MXSC:TipX"), self.device.get_tip_x) - self.link_input_on_interrupt(builder.aIn("MXSC:TipY"), self.device.get_tip_y) + self.link_input_on_interrupt( + builder.WaveformOut("MXSC:Top", self.device.top), self.device.get_top + ) + self.link_input_on_interrupt( + builder.WaveformOut("MXSC:Bottom", self.device.bottom), + self.device.get_bottom, + ) + self.link_input_on_interrupt(builder.aOut("MXSC:TipX"), self.device.get_tip_x) + self.link_input_on_interrupt(builder.aOut("MXSC:TipY"), self.device.get_tip_y) class OAVEpicsAdapter(EpicsAdapter): From ad92b7007957927c898f097ad4a5dad3850952e0 Mon Sep 17 00:00:00 2001 From: Eva Lott Date: Mon, 5 Dec 2022 16:17:24 +0000 Subject: [PATCH 14/16] #26 removed unneccessary smargon --- tickit_devices/oav/db_files/MO-IOC.db | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/tickit_devices/oav/db_files/MO-IOC.db b/tickit_devices/oav/db_files/MO-IOC.db index 24664259..e69de29b 100644 --- a/tickit_devices/oav/db_files/MO-IOC.db +++ b/tickit_devices/oav/db_files/MO-IOC.db @@ -1,21 +0,0 @@ -record(longin, "BL03S-MO-SGON-01:X"){ - field(VAL, "0") - field(RBV, "0") - field(OFF, "0") - field(DIR, "0") - field(FOFF, "0") - field(SET, "0") - field(CELO, "0") - field(ACCL, "0") - field(EGU, "0") - field(MOVN, "0") - field(DMOV, "0") - field(HLS, "0") - field(LLS, "0") - field(HLM, "0") - field(LLM, "0") - field(TDIR, "0") - field(STOP, "0") - field(HOMF, "0") - field(HOMR, "0") -} \ No newline at end of file From 83aededc21c3789a3662d18c654f6d16098b1586 Mon Sep 17 00:00:00 2001 From: Eva Lott Date: Thu, 15 Dec 2022 15:43:59 +0000 Subject: [PATCH 15/16] #26 Fixed RBV problems in the db --- tickit_devices/oav/db_files/DI-OAV.db | 31 +++++++++++------------- tickit_devices/oav/db_files/EA-OAV.db | 25 +++++++++++++++++++ tickit_devices/oav/oav_edge_detection.py | 30 ++++++++++++----------- 3 files changed, 55 insertions(+), 31 deletions(-) diff --git a/tickit_devices/oav/db_files/DI-OAV.db b/tickit_devices/oav/db_files/DI-OAV.db index f3aacd47..0d9ccb7a 100755 --- a/tickit_devices/oav/db_files/DI-OAV.db +++ b/tickit_devices/oav/db_files/DI-OAV.db @@ -561,6 +561,7 @@ record(longin, "BL03S-DI-OAV-01:CAM:ArraySizeX_RBV") field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)ARRAY_SIZE_X") field(SCAN, "I/O Intr") + field(VAL, 1024) } record(longin, "BL03S-DI-OAV-01:CAM:ArraySizeY_RBV") @@ -568,6 +569,7 @@ record(longin, "BL03S-DI-OAV-01:CAM:ArraySizeY_RBV") field(DTYP, "asynInt32") field(INP, "@asyn(OAV.CAM,0,1)ARRAY_SIZE_Y") field(SCAN, "I/O Intr") + field(VAL, 768) } record(longin, "BL03S-DI-OAV-01:CAM:ArraySizeZ_RBV") @@ -689,12 +691,12 @@ record(mbbo, "BL03S-DI-OAV-01:CAM:ColorMode") field(SVST, "YUV421") field(SVVL, "7") info(autosaveFields, "VAL") + field(FLNK, "BL03S-DI-OAV-01:CAM:ColorMode_RBV PP") } record(mbbi, "BL03S-DI-OAV-01:CAM:ColorMode_RBV") { - field(DTYP, "asynInt32") - field(INP, "@asyn(OAV.CAM,0,1)COLOR_MODE") + field(INP, "BL03S-DI-OAV-01:CAM:ColorMode") field(ZRST, "Mono") field(ZRVL, "0") field(ONST, "Bayer") @@ -1077,37 +1079,32 @@ record(bi, "BL03S-DI-OAV-01:CAM:ReverseY_RBV") record(ao, "BL03S-DI-OAV-01:CAM:AcquireTime") { field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.CAM,0,1)ACQ_TIME") field(PREC, "3") field(VAL, "1.0") info(autosaveFields, "VAL") + field(FLNK, "BL03S-DI-OAV-01:CAM:AcquireTime_RBV PP") } record(ai, "BL03S-DI-OAV-01:CAM:AcquireTime_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.CAM,0,1)ACQ_TIME") field(PREC, "3") field(SCAN, "I/O Intr") + field(INP, "BL03S-DI-OAV-01:CAM:AcquireTime") } record(ao, "BL03S-DI-OAV-01:CAM:AcquirePeriod") { field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.CAM,0,1)ACQ_PERIOD") field(PREC, "3") field(VAL, "0") info(autosaveFields, "VAL") + field(FLNK, "BL03S-DI-OAV-01:CAM:AcquirePeriod_RBV PP") } record(ai, "BL03S-DI-OAV-01:CAM:AcquirePeriod_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.CAM,0,1)ACQ_PERIOD") field(PREC, "3") - field(SCAN, "I/O Intr") + field(INP, "BL03S-DI-OAV-01:CAM:AcquirePeriod") } record(ai, "BL03S-DI-OAV-01:CAM:TimeRemaining_RBV") @@ -1123,20 +1120,16 @@ record(ai, "BL03S-DI-OAV-01:CAM:TimeRemaining_RBV") ################################################################### record(ao, "BL03S-DI-OAV-01:CAM:Gain") { - field(PINI, "YES") - field(DTYP, "asynFloat64") - field(OUT, "@asyn(OAV.CAM,0,1)GAIN") field(VAL, "1.0") field(PREC, "3") info(autosaveFields, "VAL") + field(FLNK, "BL03S-DI-OAV-01:CAM:Gain_RBV PP") } record(ai, "BL03S-DI-OAV-01:CAM:Gain_RBV") { - field(DTYP, "asynFloat64") - field(INP, "@asyn(OAV.CAM,0,1)GAIN") field(PREC, "3") - field(SCAN, "I/O Intr") + field(INP, "BL03S-DI-OAV-01:CAM:Gain") } ################################################################### @@ -2164,6 +2157,7 @@ record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize1") { field(INP, "BL03S-DI-OAV-01:MXSC:Dim1SA") field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim2SA") + field(VAL, 1024) } record(subArray, "BL03S-DI-OAV-01:MXSC:Dim2SA") @@ -2180,6 +2174,7 @@ record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize2") { field(INP, "BL03S-DI-OAV-01:MXSC:Dim2SA") field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim3SA") + field(VAL, 768) } record(subArray, "BL03S-DI-OAV-01:MXSC:Dim3SA") @@ -2334,6 +2329,7 @@ record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize1_RBV") { field(INP, "BL03S-DI-OAV-01:MXSC:Dim1SA_RBV") field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim2SA_RBV") + field(VAL, 1024) } record(subArray, "BL03S-DI-OAV-01:MXSC:Dim2SA_RBV") @@ -2350,6 +2346,7 @@ record(longin, "BL03S-DI-OAV-01:MXSC:ArraySize2_RBV") { field(INP, "BL03S-DI-OAV-01:MXSC:Dim2SA_RBV") field(FLNK, "BL03S-DI-OAV-01:MXSC:Dim3SA_RBV") + field(VAL, 768) } record(subArray, "BL03S-DI-OAV-01:MXSC:Dim3SA_RBV") diff --git a/tickit_devices/oav/db_files/EA-OAV.db b/tickit_devices/oav/db_files/EA-OAV.db index 7a94439f..12cd70c0 100755 --- a/tickit_devices/oav/db_files/EA-OAV.db +++ b/tickit_devices/oav/db_files/EA-OAV.db @@ -5,4 +5,29 @@ record(stringout, "BL03S-EA-OAV-01:FZOOM:ZOOMPOSCMD") field(OUT, "@asyn(OAV.MXSC,0,1)NDARRAY_PORT") field(VAL, "1.0x") info(autosaveFields, "VAL") +} + +record(mbbo, "BL03S-EA-OAV-01:FZOOM:MP:SELECT") { + field(DESC, "Zoom positioner") + field(SCAN, "Passive") + field(DTYP, "Soft Channel") + field(ZRST, "1.0x") + field(ONST, "2.5x") + field(TWST, "5.0x") + field(THST, "7.5x") + field(FRST, "10.0x") + field(FVST, "") + field(SXST, "") + field(SVST, "") + field(EIST, "") + field(NIST, "") + field(TEST, "") + field(ELST, "") + field(PINI, "YES") + field(DISV, "2") + field(VAL, "0") + field(TVST, "") + field(TTST, "") + field(FTST, "") + field(FFST, "") } \ No newline at end of file diff --git a/tickit_devices/oav/oav_edge_detection.py b/tickit_devices/oav/oav_edge_detection.py index 9f6c7f67..a1dc26a6 100644 --- a/tickit_devices/oav/oav_edge_detection.py +++ b/tickit_devices/oav/oav_edge_detection.py @@ -1,4 +1,5 @@ import random +import subprocess from dataclasses import dataclass import numpy as np @@ -59,7 +60,7 @@ def __init__(self, callback_period=1e9): widest_point = random.uniform(0, 180) self.widest_points = (widest_point, widest_point - 180) - # we arbitrarily decide the widest polynomial should be + # We arbitrarily decide the widest polynomial should be # f(x) = -\frac{1}{360}(x - 180)^2 + 90 self.widest_point_polynomial = -1 / 360 * (np.arange(0, 340) - 180) ** 2 + 90 @@ -69,8 +70,8 @@ def __init__(self, callback_period=1e9): self.high_limit_travel = 0 self.low_limit_travel = 0 - self.tip_x = int(random.uniform(10, 250)) - self.tip_y = int(random.uniform(300, 500)) + self.tip_x = int(random.uniform(200, 400)) + self.tip_y = int(random.uniform(250, 450)) self.top = np.zeros(1024) ln = np.log(np.arange(1, 1025 - self.tip_x)) self.top[self.tip_x : 1024] = ln @@ -94,6 +95,9 @@ def update(self, time: SimTime, inputs: Inputs) -> DeviceUpdate[Outputs]: DeviceUpdate[Outputs]: The produced update event. """ + self.omega = int( + subprocess.check_output("caget BL03S-MO-SGON-01:OMEGA", shell=True) + ) self.set_waveform_based_on_omega() return DeviceUpdate(OAVDevice.Outputs(), SimTime(time + self.callback_period)) @@ -179,7 +183,7 @@ def __init__( CommandInterpreter(), ) - @RegexCommand(r"C=(\d+\.?\d*)", interrupt=True, format="utf-8") + @RegexCommand(r"TOP=(\d+\.?\d*)", interrupt=True, format="utf-8") async def set_top(self, value: np.ndarray) -> None: """Regex string command that sets the value of beam_current. @@ -188,7 +192,7 @@ async def set_top(self, value: np.ndarray) -> None: """ self.device.top = value - @RegexCommand(r"C\?", format="utf-8") + @RegexCommand(r"TOP\?", format="utf-8") async def get_top(self) -> bytes: """Regex string command that returns the utf-8 encoded value of beam_current. @@ -197,7 +201,7 @@ async def get_top(self) -> bytes: """ return str(self.device.top).encode("utf-8") - @RegexCommand(r"C=(\d+\.?\d*)", interrupt=True, format="utf-8") + @RegexCommand(r"BOTTOM=(\d+\.?\d*)", interrupt=True, format="utf-8") async def set_bottom(self, value: np.ndarray) -> None: """Regex string command that sets the value of beam_current. @@ -206,7 +210,7 @@ async def set_bottom(self, value: np.ndarray) -> None: """ self.device.bottom = value - @RegexCommand(r"C\?", format="utf-8") + @RegexCommand(r"BOTTOM\?", format="utf-8") async def get_bottom(self) -> bytes: """Regex string command that returns the utf-8 encoded value of beam_current. @@ -215,7 +219,7 @@ async def get_bottom(self) -> bytes: """ return str(self.device.bottom).encode("utf-8") - @RegexCommand(r"C=(\d+\.?\d*)", interrupt=True, format="utf-8") + @RegexCommand(r"TIPX=(\d+\.?\d*)", interrupt=True, format="utf-8") async def set_tip_x(self, value: float) -> None: """Regex string command that sets the value of beam_current. @@ -224,7 +228,7 @@ async def set_tip_x(self, value: float) -> None: """ self.device.tip_x = value - @RegexCommand(r"C\?", format="utf-8") + @RegexCommand(r"TIPX\?", format="utf-8") async def get_tip_x(self) -> bytes: """Regex string command that returns the utf-8 encoded value of beam_current. @@ -233,7 +237,7 @@ async def get_tip_x(self) -> bytes: """ return str(self.device.tip_x).encode("utf-8") - @RegexCommand(r"C=(\d+\.?\d*)", interrupt=True, format="utf-8") + @RegexCommand(r"TIPY=(\d+\.?\d*)", interrupt=True, format="utf-8") async def set_tip_y(self, value: float) -> None: """Regex string command that sets the value of beam_current. @@ -242,7 +246,7 @@ async def set_tip_y(self, value: float) -> None: """ self.device.tip_y = value - @RegexCommand(r"C\?", format="utf-8") + @RegexCommand(r"TIPY\?", format="utf-8") async def get_tip_y(self) -> bytes: """Regex string command that returns the utf-8 encoded value of beam_current. @@ -274,9 +278,7 @@ def on_db_load(self) -> None: class OAVEpicsAdapter(EpicsAdapter): - """ - Epics adapter for reading all Attributes as a PV through channel access. - """ + """Epics adapter for reading all Attributes as a PV through channel access.""" device: OAVDevice From 9c748547efb5456a549415681f2aee3e1f733b7d Mon Sep 17 00:00:00 2001 From: Eva Lott Date: Mon, 19 Dec 2022 13:20:36 +0000 Subject: [PATCH 16/16] #26 Changed into inheritance structure and made other suggested PR changes --- s03_configs/oav.yaml | 28 +++-- tickit_devices/oav/db_files/MO-IOC.db | 0 tickit_devices/oav/oav_edge_detection.py | 131 +++++------------------ 3 files changed, 50 insertions(+), 109 deletions(-) delete mode 100644 tickit_devices/oav/db_files/MO-IOC.db diff --git a/s03_configs/oav.yaml b/s03_configs/oav.yaml index 4fc2eba8..a6b1fd73 100644 --- a/s03_configs/oav.yaml +++ b/s03_configs/oav.yaml @@ -1,16 +1,30 @@ - tickit_devices.oav.oav_edge_detection.OAV_DI_OAV: name: oav_di_oav inputs: {} - port: 25565 -- tickit_devices.oav.oav_edge_detection.OAV_DI_IOC: + ioc_name: "BLO3S-DI-OAV-01" + db_file: "tickit_devices/oav/db_files/DI-OAV.db" + port: 25570 +- tickit_devices.oav.oav_edge_detection.OAV_DEVICE_DEFAULT: name: oav_di_ioc inputs: {} - port: 25564 -- tickit_devices.oav.oav_edge_detection.OAV_EA_FSCN: + ioc_name: "BLO3S-DI-IOC-01" + db_file: "tickit_devices/oav/db_files/DI-IOC.db" + port: 25569 +- tickit_devices.oav.oav_edge_detection.OAV_DEVICE_DEFAULT: name: oav_ea_fscn inputs: {} - port: 25563 -- tickit_devices.oav.oav_edge_detection.OAV_EA_OAV: + ioc_name: "BLO3S-EA-FSCN-01" + db_file: "tickit_devices/oav/db_files/EA-FSCN.db" + port: 25568 +- tickit_devices.oav.oav_edge_detection.OAV_DEVICE_DEFAULT: name: oav_ea_oav inputs: {} - port: 25562 + ioc_name: "BLO3S-EA-OAV-01" + db_file: "tickit_devices/oav/db_files/EA-OAV.db" + port: 25567 +- tickit_devices.oav.oav_edge_detection.OAV_DEVICE_DEFAULT: + name: oav_ea_bl + inputs: {} + ioc_name: "BL03S-EA-BL-01" + db_file: "tickit_devices/oav/db_files/EA-BL.db" + port: 25566 diff --git a/tickit_devices/oav/db_files/MO-IOC.db b/tickit_devices/oav/db_files/MO-IOC.db deleted file mode 100644 index e69de29b..00000000 diff --git a/tickit_devices/oav/oav_edge_detection.py b/tickit_devices/oav/oav_edge_detection.py index a1dc26a6..28278249 100644 --- a/tickit_devices/oav/oav_edge_detection.py +++ b/tickit_devices/oav/oav_edge_detection.py @@ -16,6 +16,8 @@ from tickit.utils.byte_format import ByteFormat from tickit.utils.compat.typing_compat import TypedDict +_MXSC_WAVEFORM_WIDTH = 1024 + class OAVDevice(Device): #: An empty typed mapping of device inputs @@ -73,8 +75,8 @@ def __init__(self, callback_period=1e9): self.tip_x = int(random.uniform(200, 400)) self.tip_y = int(random.uniform(250, 450)) self.top = np.zeros(1024) - ln = np.log(np.arange(1, 1025 - self.tip_x)) - self.top[self.tip_x : 1024] = ln + ln = np.log(np.arange(1, _MXSC_WAVEFORM_WIDTH + 1 - self.tip_x)) + self.top[self.tip_x : _MXSC_WAVEFORM_WIDTH] = ln self.bottom = -self.top self.top[self.tip_x :] += self.tip_y self.bottom[self.tip_x :] += self.tip_y @@ -138,7 +140,6 @@ def set_waveform_based_on_omega(self): abs(self.omega - self.widest_points[0]) % 180, abs(self.omega - self.widest_points[1]) % 180, ) - distance_to_widest = 0 bulge = self.widest_point_polynomial * (95 - distance_to_widest) / 90 self.top[self.tip_x : self.tip_x + 340] = bulge + self.tip_y self.bottom[self.tip_x : self.tip_x + 340] = -bulge + self.tip_y @@ -289,37 +290,18 @@ def on_db_load(self) -> None: @dataclass -class OAV_DI_OAV(ComponentConfig): - """To hold DI-OAV PVs.""" - - host: str = "localhost" - port: int = 25565 - format: ByteFormat = ByteFormat(b"%b\r\n") - db_file: str = "tickit_devices/oav/db_files/DI-OAV.db" - ioc_name: str = "BL03S-DI-OAV-01" - - def __call__(self) -> Component: # noqa: D102 - return DeviceSimulation( - name=self.name, - device=OAVDeviceMXSC(), - adapters=[ - OAVTCPAdapterMXSC(TcpServer(self.host, self.port, self.format)), - OAVEpicsAdapterMXSC(self.db_file, self.ioc_name), - ], - ) - - -@dataclass -class OAV_DI_IOC(ComponentConfig): - """To hold DI-IOC PVs.""" +class OAV_DEVICE_DEFAULT(ComponentConfig): + """Parent class for various OAV devices.""" + name: str + db_file: str + port: int + ioc_name: str host: str = "localhost" - port: int = 25564 format: ByteFormat = ByteFormat(b"%b\r\n") - db_file: str = "tickit_devices/oav/db_files/DI-IOC.db" - ioc_name: str = "BL03S-DI-IOC-01" - def __call__(self) -> Component: # noqa: D102 + def __call__(self) -> Component: + """Set up simulation.""" return DeviceSimulation( name=self.name, device=OAVDevice(), @@ -331,84 +313,29 @@ def __call__(self) -> Component: # noqa: D102 @dataclass -class OAV_EA_FSCN(ComponentConfig): - """To hold EA-FSCN PVs.""" - - host: str = "localhost" - port: int = 25563 - format: ByteFormat = ByteFormat(b"%b\r\n") - db_file: str = "tickit_devices/oav/db_files/EA-FSCN.db" - ioc_name: str = "BL03S-EA-FSCN-01" - - def __call__(self) -> Component: # noqa: D102 - return DeviceSimulation( - name=self.name, - device=OAVDevice(), - adapters=[ - OAVTCPAdapter(TcpServer(self.host, self.port, self.format)), - OAVEpicsAdapter(self.db_file, self.ioc_name), - ], - ) - - -@dataclass -class OAV_EA_OAV(ComponentConfig): - """To hold EA-OAV PVs.""" - - host: str = "localhost" - port: int = 25562 - format: ByteFormat = ByteFormat(b"%b\r\n") - db_file: str = "tickit_devices/oav/db_files/EA-OAV.db" - ioc_name: str = "BL03S-EA-OAV-01" - - def __call__(self) -> Component: # noqa: D102 - return DeviceSimulation( - name=self.name, - device=OAVDevice(), - adapters=[ - OAVTCPAdapter(TcpServer(self.host, self.port, self.format)), - OAVEpicsAdapter(self.db_file, self.ioc_name), - ], - ) - - -@dataclass -class OAV_EA_BL(ComponentConfig): - """To hold EA-BL PVs.""" - - host: str = "localhost" - port: int = 25561 - format: ByteFormat = ByteFormat(b"%b\r\n") - db_file: str = "tickit_devices/oav/db_files/EA-BL.db" - ioc_name: str = "BL03S-EA-BL-01" - - def __call__(self) -> Component: # noqa: D102 - return DeviceSimulation( - name=self.name, - device=OAVDevice(), - adapters=[ - OAVTCPAdapter(TcpServer(self.host, self.port, self.format)), - OAVEpicsAdapter(self.db_file, self.ioc_name), - ], - ) - - -@dataclass -class OAV_MO_IOC(ComponentConfig): - """To hold MO-IOC PVs.""" +class OAV_DI_OAV(ComponentConfig): + """To hold DI-OAV PVs.""" + name: str + db_file: str + port: int + ioc_name: str host: str = "localhost" - port: int = 25560 format: ByteFormat = ByteFormat(b"%b\r\n") - db_file: str = "tickit_devices/oav/db_files/MO-IOC.db" - ioc_name: str = "BL03S-MO-IOC-01" - def __call__(self) -> Component: # noqa: D102 + def __call__(self) -> Component: + """Set up simulation.""" return DeviceSimulation( name=self.name, - device=OAVDevice(), + device=OAVDeviceMXSC(), adapters=[ - OAVTCPAdapter(TcpServer(self.host, self.port, self.format)), - OAVEpicsAdapter(self.db_file, self.ioc_name), + OAVTCPAdapterMXSC( + TcpServer( + self.host, + self.port, + self.format, + ) + ), + OAVEpicsAdapterMXSC(self.db_file, self.ioc_name), ], )